Incompatibilité de type!!

Résolu
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007 - 1 août 2007 à 11:44
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 - 1 août 2007 à 16:54
voila mon probleme, tout ce que je veut faire c'est afficher des ligne d'une table, j'ai inseré ce code la :



Dim ligne As New ADOB.Recordset
Set lignes = curentDB.OpenRecordset("Select * from Niveau where niveau=1", dbOpenDynaset)

lignes.movefirst
do while ligne.EOF = FALSE
   'mes operations
loop

la il m'affiche: Erreur d'execution '13':  Incompatibilité de type

et il m'indique la ligne 2......

j'ai regarder dans tout le forum , y'a plein de gens qui ont ce probleme mais aucun n'a eu une solution, j'ai presque tout essayer, j'ai essayer avec

dim db as database
ou
des ecritures differentes de OpenRecordset

le DAO 2.5 est coché.... et les tables sont presents dans le meme ficher ou je code....

je vous en prie aider moi

11 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
1 août 2007 à 13:21
Salut,
Si tu utilises DAO pourquoi déclares tu lignes en ADOB
Essaie peu être de mettre

Dim Lignes As New DAO.Recordset
ou simplement
Dim Lignes As DAO.Recordset

@+: Ju£i?n
Pensez: Réponse acceptée
3
kalobit Messages postés 169 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 avril 2008 2
1 août 2007 à 12:03
Salut,

Regarde un peu mieux la déclaration de tes variables :

Dim ligne as New ADOB.Recordset

et ensuite

set lignes =curentDB.OpenRecordset("Select * from Niveau where niveau=1", dbOpenDynaset)

pas étonnant qu'un variant soit icompatible avec un objet.

Parfois la solution est sous nos yeux, rajoute un s à ligne dans ta déclaration et dans ton Do While et ça devrait miieux aller.

@+++

[mailto:K@lobit K@lobit] < Ne pas clicker ici
Mon Site < Mais ici
0
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
1 août 2007 à 13:03
desolé je me suis trompé juste en ecrivant sur le forum (vu que je travaille sur 2 ordis je ne fais pas des copier coller)

dans mon code il y a le "s" mais ca marcha pas qd meme...
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
1 août 2007 à 13:26
Si tu déclares ADO et que DAO est coché, pas étonnant qu'une ligne comme Dim DB as database ne fonctionne pas.

Déjà, choisi quel type de connection tu veux faire et décoche la la référence que tu ne veux pas utiliser.

Ensuite, c'est peut être lié encore à une erreur de recopie dans ton post mais ce n'est pas CurentDB, mais CurRentDB

Molenn
0

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

Posez votre question
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
1 août 2007 à 13:31
Salut,



Set lignes = curentDB.OpenRecordset("Select * from Niveau where niveau=1", dbOpenDynaset)



Tu as une table Niveau avec un champ qui s'appelle niveau dedans??Essaye peut-être de changer le nom de ton champ.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
1 août 2007 à 13:45
Il me semble que j'ai deja vu ton pb. Meme si en effet, ADO est preferable, je pense que le pb vient de l'argument AdOpenDynaset

Essaies avec AdOpenTable (je crois que c'est ca).
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
1 août 2007 à 13:45
Ou dbOpentable
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
1 août 2007 à 13:49
Moi, je l'ai utilisé de cette maniere:


Dim rs As Recordset


Set rs= CurrentDb.OpenRecordset("A", dbOpenTable) 'A est le nom de la table
rs.MoveNext
.
.
.
.
Set rs= Nothing
0
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
1 août 2007 à 13:49
salut, deja merci pour toute vos reponse

oui dans ma table niveau y'a aussi une colonne niveau, mais bon j'ai deja essayer avec une autre table c la meme chose

oui j'avait bien ecrit currentDb et non pas curentDb, desolé encore une fois pour cette erreur sur le forum


en fait je ne voit pas du tout la difference entre DAO et ADOB c'est quoi la difference? comment on utilise chacune de ces deux methode et surtout qu'est ce que je doit cocher pour que ca marche?? 
0
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
1 août 2007 à 13:55
ca marche, g juste remplacer ma ligne par la ligne proposé par jirvet:



Dim Lignes As DAO.Recordset


mais je vois pas encor la difference entre dao et adob....
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
1 août 2007 à 16:54
Si tu as la curiosité d'aller voir comment se connecter a une base en ADO, tu verras bien la difference.
0
Rejoignez-nous