Erreur 424

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

  1. 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.
    1. 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
      1. Modérateur
        Salut,

        quelle ligne est signalée ?
        Ce ne serait pas des fois un recordset qui aurait été oublié dans la bibliothèque DAO ?
        1. 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
          1. Modérateur
            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...
        2. 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.
          1. tous les objets DAO semblent correctement utilisés. Question bête, le nom de ta QueryDefs est-il bien orthographié ??