[VBA]Type incompatible

Résolu
Bonjour

Voici le code tout simple que j'utilise ..

Private Sub Txt_codecole_LostFocus()
Dim bdenquete As Database
Dim reqecole As String
Dim rsecole As Recordset

Set bdenquete = DBEngine.Workspaces(0).OpenDatabase(App.Path & "/enquete.mdb")
reqecole = "select commune from ecoles where numecole = '" & txt_codecole.Text & "' "
Set rsecole = bdenquete.OpenRecordset(reqecole, dbOpenSnapshot)
rsecole.MoveFirst
Lb_Nomecole.Caption = rsecole("nomecole")
Lb_Commune.Caption = rsecole("commune")

End Sub


A l'exécution il me met le message d'erreru :

erreur d'exécution 13'
Type incompatible
Il s'arrête sur
set rsecole=bdenquete.dbopenrecordset(reqecole,dbopendynaset)


J'ai besoin d'aide !!

Aidez-moi
Merci

5 réponses

  1. Sauf erreur dans ta BD numecole est de type numérique?!
    Il me semble que tu peux supprimer les guillemet autour du num. de ecole, ce qui donne :

    reqecole = "select commune from ecoles where numecole = " & txt_codecole.Text

    Suis pas certain, mes dernières lignes en VB ou VBA datent d'il ya 5 ans environ... mais c'est dans cette voie.
    1. bonjour, Merci Beaucoup Mr enzito je chercher cette astuce depuis deux jour et maintenant je lé trouver dans votre reponse merci b1 Mr enzito j'aime b1 si vous ajouté mon email chez vs for_blue@hotmail.fr
  2. Slt,

    reqecole = "Select commune from [ecoles] where [numecole] = " & """" & txt_codecole.Text & """"

    Lupin
    1. Le numecole n'est pas de type numérique mais est bien de type alphanumérique.

      Merci
      1. Modérateur
        Salut,

        quelle version d'access ? XP ?

        C'est sans doute dû à une référence non validée pour le code, genre DAO x.xx... (dans le menu outils/référence, de la fenêtre de code)

        Pour en être sûr :

        déclarer la variable rsecole en variant (Dim rsecole) et relancer...
        1. Slt,

          J'ai access 2000 et je suis sous xp.
          Sinon en référence, j'ai DAO 2.5/3.5

          Merci encore
        2. Modérateur
          Et il n'est pas en référence manquante (la case est bien cochée) ?

          As-tu fait le test en variant ? résultat ?
        3. @bluxen variant ça marche !!

          Merci beaucoup

          Pkoi la référence ne marche pas, mystère !!!!

          Encore merci
        4. Modérateur
          @bluxPeut-être une version de DAO trop ancienne ?

          J'ai 3.6 en ACCESS 2002 sous XP...
        5. Pourquoi rsecole("nomecole") et where numecole =.... ?
      2. C'est bien un problème de référence,

        j'ai résolu le problème en prenant la ref :

        Microsoft ActiveX Data Objects 2.8 Library

        (j'utilisai la 2.1)
        1. Vous avez également résolu mon problème merci.