OVH Cloud OVH Cloud

Message d'erreur inédit

14 réponses
Avatar
pierre.rivet
Bonjour,

Dans une application faisant appel à une base de données en Access, un de
mes utilisateurs reçoit le message suivant:
"L'ensemble des lignes ne prend pas en charge le défilement arrière"

Apparemment, il voit un fichier de patients sous forme d'un contrôle
Datagrid, et quand il veut afficher les renseignements du patient, il
obtient une fiche vierge.

Quelqu'un a-t-il déjà eu ce message ?

Merci à l'avance de votre aide,

Pierre

4 réponses

1 2
Avatar
pierre.rivet
Bonjour Jean Marc,

=>Je crois que nous pouvons dire que nous avons passé le week end
ensemble...par logiciel VB6 interposé...
....

La syntaxe correcte pour ton cas est au choix:
Dim CD As ADODB.Connection, CT As ADODB.Connection





=> J'ai revu quasiment toutes les feuilles avec les déclarations en tête de
page....


Perso, je m'assurerais que la base (le .mdb) n'est pas en lecture seule,
par accident :




=> J'ai utilisé ta fonction. Bien évidemment, je n'ai pas de réponse me
disant que la base n'est pas en lecture seule

Pour info, plein de trucs utiles dans cet article de notre FAQ:
http://faq.vb.free.fr/index.php?question2




=> Excellente, la FAQ. Je l'ai beaucoup fréquentée au début où je
travaillais avec VB6, mais depuis un moment, "ça baignait"....ou plutôt, je
croyais que ça baignait. L'informatique est vraiment une école d'humilité.

Les caractères accentués sont une source d'erreur bien connue, et.....




Ceci dit je ne pense pas que ce soit le problème dans le cas qui nous
occupe.




=> je me raccroche à ce petit bout de phrase comme un naufragé à son
radeau....

TextCoup.text = Str$(Coup)




=> C'est exactement ce que j'ai écrit

- rectifier la déclaration de CT




=> OK, et dans toutes mes feuilles

- Vérifier (au moment le plus opportun) que le .mdb n'est pas en lecture
seule




=>Je l'ai fait à l'aide d'un petit programme auxiliaire, mais ai-je intérêt
à le mettre dans mon logiciel ? Un fichier peut-il se mettre
accidentellement en lecture seule ?


- Comme tu opères le débuggage à distance, il va falloir écrire du code
de débuggage qui tienne la route.




=> J'ai fait exactement ce que tu m'as dit.
Ote moi d'un doute. J'obtiens le fichier log.txt suivant:

26/11/2007-13:50:55 Avant SET PA
26/11/2007-13:50:55 Après SET PA
26/11/2007-13:50:55 Après Open
26/11/2007-13:50:55 Après PA!Coup
26/11/2007-13:50:55 Après PA.Update
26/11/2007-13:50:55 Après PA.Close
26/11/2007-13:50:55 Après impression du nombre de coups

Il n'y a rien d'autre. Je suppose que c'est parce que tout s'est bien passé
?

Puis tu demandes à ton utilisateur de t'envoyer le log file.




=> j'attends ta réponse avant de lui renvoyer le dernier exécutable

Merci encore,

Pierre
Avatar
jean-marc
"pierre.rivet" wrote in message
news:474ac543$0$5097$
Bonjour Jean Marc,



Hello Pierre,

=>Je crois que nous pouvons dire que nous avons passé le week end
ensemble...par logiciel VB6 interposé...
....



Oui :-)

Je ne garde que les parties utiles pour la réponse:


- Vérifier (au moment le plus opportun) que le .mdb n'est pas en lecture
seule




=>Je l'ai fait à l'aide d'un petit programme auxiliaire, mais ai-je
intérêt à le mettre dans mon logiciel ? Un fichier peut-il se mettre
accidentellement en lecture seule ?



Je pense qu'il est sage de le mettre dans le logiciel.
La loi de murphy affirme que SI une erreur peut se
produire, ALORS elle se produira.

En bonne méthodologie, on fait du "Defensive Programming":
- ne jamais faire de suppositions sur ce que peut être l'état
du système à l'autre bout.

Donc oui, un test dans le logiciel avec un truc du genre:

If IsLectureSeule( ... ) then
msgbox "Erreur. Fichier XXX en lecture seule"
Endif



- Comme tu opères le débuggage à distance, il va falloir écrire du code
de débuggage qui tienne la route.




=> J'ai fait exactement ce que tu m'as dit.
Ote moi d'un doute. J'obtiens le fichier log.txt suivant:

26/11/2007-13:50:55 Avant SET PA
26/11/2007-13:50:55 Après SET PA
26/11/2007-13:50:55 Après Open
26/11/2007-13:50:55 Après PA!Coup
26/11/2007-13:50:55 Après PA.Update
26/11/2007-13:50:55 Après PA.Close
26/11/2007-13:50:55 Après impression du nombre de coups

Il n'y a rien d'autre. Je suppose que c'est parce que tout s'est bien
passé ?



Tout à fait. Dans le log envoyé par ton client, tu devrais
normalement voir que qq chose manque, ce qui te dira quelle
ligne provoque l'erreur.


Puis tu demandes à ton utilisateur de t'envoyer le log file.




=> j'attends ta réponse avant de lui renvoyer le dernier exécutable



Je crois que c'est bon comme ça :-)
Au vu de tes autres modifs, je dirais que c'est okay.

Merci encore,




De rien, et bonne journée !

--
jean-marc
Avatar
pierre.rivet
Bonjour Jean Marc,

Bien dormi, mais réveil avec la gueule de bois....
Je vais devenir enragé.....

ci-dessous, copie du mail que j'ai reçu ce matin de mon client....
J'ai mis mes commentaires et mes questions en dessous...


****************************************************************************************************

Mr Rivet,

De retour du Cab, ça n'a pas fonctionné.

Sur le serveur , aucun probléme, tout fonctionne toujours trés bien (il
comptabilise chaque ouverture), avant et aprés le bug poste client.

Sur le poste client,j'ai eu le message d'erreur ci-joint (j'espere que vous
parviendrez à le lire, je l'ai imprimé au cabinet puis scanner pour le
joindre).

Il a répété trois fois le même message en changeant le n° de coup1,2,puis 3
avant de fermer l'application

Je vous joint également le mouchard que j'ai recupéré sur le serveur :

26/11/2007-21:23:38 Avant SET PA
26/11/2007-21:23:38 Après SET PA
26/11/2007-21:23:38 Après Open
26/11/2007-21:23:38 Après PA!Coup
26/11/2007-21:23:38 Après PA.Update
26/11/2007-21:23:38 Après PA.Close
26/11/2007-21:23:38 Après impression du nombre de coups
26/11/2007-21:34:15 Avant SET PA
26/11/2007-21:34:15 Après SET PA
26/11/2007-21:34:15 Après Open
26/11/2007-21:34:15 Après PA!Coup
26/11/2007-21:34:15 Après PA.Update
26/11/2007-21:34:15 Après PA.Close
26/11/2007-21:34:15 Après impression du nombre de coups
26/11/2007-21:35:45 Avant SET PA
26/11/2007-21:35:45 Après SET PA
26/11/2007-21:35:45 Après Open
26/11/2007-21:35:45 Après PA!Coup
26/11/2007-21:35:45 Après PA.Update
26/11/2007-21:35:45 Après PA.Close
26/11/2007-21:35:45 Après impression du nombre de coups

En fait, à sa lecture, je comprend (comprendre est un bien grand mot) qu'il
vous faut le mouchard du poste client donc un aller retour au cab ( les
voyage forment la jeunesse)
et le voici :

26/11/2007-21:26:21 Avant SET PA
26/11/2007-21:26:21 Après SET PA
26/11/2007-21:26:21 Après Open
26/11/2007-21:30:15 Avant SET PA deuxième ouverture avec
adOpenStatic,adLockOptimistic
26/11/2007-21:30:15 Après SET PA deuxième ouverture avec
adOpenStatic,adLockOptimistic
26/11/2007-21:30:15 après deuxième ouverture de OSTEOPARAM
26/11/2007-21:30:37 Avant SET PA troisième ouverture avec
adOpenStatic,adLocPessimistic
26/11/2007-21:30:37 Après SET PA troisième ouverture avec
adOpenStatic,adLocPessimistic
26/11/2007-21:30:37 après troisième ouverture de OSTEOPARAM
26/11/2007-21:31:21 Avant SET PA
26/11/2007-21:31:21 Après SET PA
26/11/2007-21:31:21 Après Open
26/11/2007-21:31:26 Avant SET PA deuxième ouverture avec
adOpenStatic,adLockOptimistic
26/11/2007-21:31:26 Après SET PA deuxième ouverture avec
adOpenStatic,adLockOptimistic
26/11/2007-21:31:26 après deuxième ouverture de OSTEOPARAM
26/11/2007-21:31:46 Avant SET PA troisième ouverture avec
adOpenStatic,adLocPessimistic
26/11/2007-21:31:46 Après SET PA troisième ouverture avec
adOpenStatic,adLocPessimistic
26/11/2007-21:31:46 après troisième ouverture de OSTEOPARAM

C'est beaucoup plus parlant..................

Bonne lecture

Hervé
***************************************************************************************************************
Le texte du message d'erreur est le suivant:
[Erreur dans MAJ_NOMBRE_COUPS_1 (puis 2, puis 3) Numéro!47217911
Description=Mise à jour impossible. La base de données ou l'objet est en
lecture seule]

Questions:

a) j'ai bien mis une procédure de recherche de l'état de la base en lecture
seule en tête du programme. Il ne m'en a pas parlé....Je viens de l'avoir au
téléphone. Il n'a rien eu. On n'aurait quand même pas une base de données se
mettant en lecture seule d'une page à l'autre ? Dans ce cas, il ne pourrait
plus redémarrer avec le serveur ? Je sais bien qu'il y a ce brave Murphy,
mais quand même...

b) pourquoi la même instruction "passe" sur le serveur, et pas sur le poste
client ?

c) d'après le mouchard, l'instruction qui bloque est la suivante:
PA!Coup=Coup
alors que la variable Coup est déclarée dans le module de la façon suivante:
Public Coup as Integer
=>peut-être un problème ici ? avec le nom de la variable qui est le même que
celui du champ ?

Quelques lignes plus haut, j'ai l'instruction
Coup=PA!Coup
et Coup=Coup+1
J'avais mis un msgbox dans une version précédente, affichant le nombre de
coups. Ce message s'affichait bien.

d) veux-tu que je t'envoie en fichier joint ma page en question ? A quelle
adresse ?
Ou peut-être la procédure Form_Load() avec les sous-procédures utilisées ?

Merci encore de t'intéresser à mon sort,

Pierre
Avatar
jean-marc
"pierre.rivet" wrote in message
news:474bd3d3$0$25909$
Bonjour Jean Marc,

Bien dormi, mais réveil avec la gueule de bois....
Je vais devenir enragé.....

ci-dessous, copie du mail que j'ai reçu ce matin de mon client....
J'ai mis mes commentaires et mes questions en dessous...



<je coupe>
Questions:

a) j'ai bien mis une procédure de recherche de l'état de la base en
lecture seule en tête du programme. Il ne m'en a pas parlé....Je viens de
l'avoir au téléphone. Il n'a rien eu. On n'aurait quand même pas une base
de données se mettant en lecture seule d'une page à l'autre ? Dans ce cas,
il ne pourrait plus redémarrer avec le serveur ? Je sais bien qu'il y a ce
brave Murphy, mais quand même...



non ça c'est ok.

b) pourquoi la même instruction "passe" sur le serveur, et pas sur le
poste client ?



Aucune idée.

c) d'après le mouchard, l'instruction qui bloque est la suivante:
PA!Coup=Coup
alors que la variable Coup est déclarée dans le module de la façon
suivante: Public Coup as Integer
=>peut-être un problème ici ? avec le nom de la variable qui est le même
que celui du champ ?



Non c'est ok. Meme si personnellement je n'aime pas
l'opérateur "!" (opérateur BANG), c'est okay dans ce
contexte.

d) veux-tu que je t'envoie en fichier joint ma page en question ? A quelle
adresse ?
Ou peut-être la procédure Form_Load() avec les sous-procédures utilisées ?



Je dois décliner :-(

Je n'ai pas le temps de faire du débuggage en
profondeur, d'autant que ça à l'air particulièrement
tricky (client/serveur, tout ça)...

En fait je n'ai pas d'idée. Ceci dit, le problème
semble maintenant être différent de ce que tu avais
à l'origine:
"L'ensemble des lignes ne prend pas en charge le défilement arrière"

Le seul vrai moyen que je vois, c'est d'essayer de reproduire
chez toi le symptome avec une configuration identique
(poste client, poste serveur, etc.). Pas nécessairement
simple :-((

Bon courage!

--
Jean-marc
1 2