Erreur 424

Mila23 -  
platypus69 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai une erreur d'exécution 424 quand je lance mon programme auriez vous des idées ? Merci d'avance.


Dim db As Database
Dim Dossier As String
Dim NomPatient As String
Dim PrenomPatient As String
Dim Jma As Date
Dim FichierBrut As String
Dim q As QueryDef, d As Recordset
Dim Resultat As String
Dim Autres As String
Dim i As Integer
Dim j As Integer
Dim TestComp As Integer



rrr = MsgBox("Début", vbOKOnly)

Set db = CurrentDb()
Set q = db.QueryDefs("FB_Index Requête")
Set d = q.OpenRecordset()

d.MoveFirst

i = 0

Do Until i = 10

If (Mid$(d![FichierBrut], 3, 1) = "2") Then
Resultat = (d![NomPatient] & " " & d![PrenomPatient])
i = i + 1
Else
Autres = (d![NomPatient] & " " & d![PrenomPatient])

TestComp = StrComp(Resultat, Autres, CompareMethod.Text)
If (TestComp = 0) Then


Else

End If

End If


d.MoveNext

Loop

End Function

7 réponses

monday1999 Messages postés 563 Date d'inscription   Statut Membre Dernière intervention   81
 
Bonjour aller sur https://support.microsoft.com/fr-fr/help/163475

Cordialement
0
platypus69 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   7
 
bonjour,


rrr = MsgBox("Début", vbOKOnly)

cette variable n'est pas défini dans le début de ton code, cela peut venir de la.
0
Tessel75
 
Bonjour,
rrr = MsgBox("Début", vbOKOnly) / cette variable n'est pas défini dans le début de ton code, cela peut venir de la.

Etant un autodidacte complet, je ne déclare JAMAIS mes variables, parce que je n'ai pas appris et que je n'y pense pas et que ça m'enm...., et mes plantages ne viennent quasiment jamais d'une déclaration de variable.
Mieux vaut faire un pas à pas et voir quelle ligne accroche, ou plus simplement demander à ouvrir le VBA quand le code s'arrête, la ligne est mise en surbrillance jaune.
Bonne suite
0
blux Messages postés 27137 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

quelle ligne est signalée ?
Ce ne serait pas des fois un recordset qui aurait été oublié dans la bibliothèque DAO ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tessel75
 
ReB_
Je crois avoir trouver un os.
Tu écris:
i = 0
Do Until i = 10

If ... Then
Resultat = ...
i = i + 1
Else
Autres =...
End If
d.MoveNext
Loop

Càd que si la condition If... est fausse, il saute à la ligne Else mais alors l'index ne s'incrémente pas et malgré tout tu lui demande de continuer la boucle Do until sans lui donner aucune voie de sortie au cas où l'index n'aurait pas atteint la valeur 10.
A approfondir. j'spère avoir été clair
Bonne suite
0
blux Messages postés 27137 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Pour moi, on n'est pas dans une boucle infinie, si on trouve 10 résultats dans le recordset, on sort.
Par contre, si on ne les trouve pas et qu'on est à la fin du recordset, on plante sur le d.movenext...
Donc, dans tous les cas, ça s'arrête à un moment ou à un autre...
0
Tessel75
 
Bonjour Blux,
Tu as peut-être raison. De toutes façons , j'avais dit "A approfondir"
Maintenant, c'est un peu stupide (à commencer par moi) de chercher dans cette direction, mieux vaut aller dans le sens indiquer par Monday, erreur 424 est une erreur de bibliothèque DAO, mais c'est hors de mes connaissances ou bien en étant guider pas à pas par un spécialiste.
Après qu'il y ait une erreur de code, peut-être oui, peut être non.
0
platypus69 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   7
 
tous les objets DAO semblent correctement utilisés. Question bête, le nom de ta QueryDefs est-il bien orthographié ??
0