Incompatibilité de type Access [Résolu]

Signaler
Messages postés
3
Date d'inscription
mardi 19 juin 2007
Statut
Membre
Dernière intervention
25 juin 2007
-
Messages postés
2
Date d'inscription
mardi 11 avril 2006
Statut
Membre
Dernière intervention
20 juin 2008
-
Salut à tous !
J'en peux plus !!!

Je suis en train d'utiliser les ListView sur Access. Et c'est la première fois que je rencontre un problème d' "incompatibilité de type" en utilisant un recordset.
Mon recordset porte sur un Autonumber, un Texte et un mémo.
Ci-desssous un bout du programme et en rouge là où ca bug...

Merci pour votre aide
Dim LstObj As ListItem<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

Dim Rst As Recordset

Dim StringTest As String

    Me.ListViewComments.ListItems.Clear

    StringTest = "SELECT T_GeneralComment.IdComment, T_GeneralComment.CommentName, T_GeneralComment.Comment FROM T_GeneralComment ORDER BY T_GeneralComment.CommentName"

    Set Rst = CurrentDb.OpenRecordset(StringTest)

    If Rst.RecordCount > 0 Then

        Do

            Set LstObj = Me.ListViewComments.ListItems.Add(, , Rst!CommentName)

            LstObj.Tag = Rst!IdComment

            LstObj.SubItems(1) = Rst!Comment

            Rst.MoveNext

        Loop Until Rst.EOF

    End If

Me.RecordSource = ("SELECT T_CommentSpec.* FROM T_CommentSpec")

Me.SelectPartNumber.RowSource = ("SELECT T_RMSpecification.PartName, T_RMSpecification.PartNumber FROM T_RMSpecification")

7 réponses

Messages postés
3
Date d'inscription
mardi 19 juin 2007
Statut
Membre
Dernière intervention
25 juin 2007

Ca y est j'ai trouvé !!!


La nuit doit porter conseil...
En fait, bien que le même programme ne m'est pas posé de problème auparavant, l'incompatibilité de type venait de mon recordset.

Il a donc suffit que je transforme mon "Rst" en "object" plutôt qu'en "recordset".Access parfois fait donc ses caprices... Parce que lorsque je suis en object, il comprend mon Rst comme un recordset... Allez savoir.

Merci quand même et à mon tour de donner un coup de main !
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Salut,
Peut être à cause du paramètre manquant



Set Rst CurrentDb.OpenRecordset(StringTest,dbOpenSnapshot)<?xml:namespace prefix o ns = "urn:schemas-microsoft-com:office:office" /??>
















<hr />

® l l i n g , l' agité du bocal : 
   ...quotes, double quotes, crochets ou parenthèses ?
   Ah si je pouvais rester dans mes charentaises !
Messages postés
3
Date d'inscription
mardi 19 juin 2007
Statut
Membre
Dernière intervention
25 juin 2007

Malheureusement non ...
C'est d'ailleurs bizarre parce qu'il ne reconnait pas l'argument dbopensnapshot (Argument Non valide).
Comment pourrais je tester mon "string" sinon ?
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bien vu ! 
Honnêtement, je n' aurai jamais pensé à ça ...

Bonne continuation
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Je pense que ça peut arriver si tu crées une référence à ADO  ET  à DAO

Il faut alors spécifier le type de Recordset
ex: 
Dim rst As DAO.Recordset
ou
Dim rst As ADODB.Recordset

MPi
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Salut MPi,
vrai , Exact et tout à fait ...
Si tu tapes Dim rs As recordse
et que tu regardes dans  la liste de choix tu as toujours
deux , voir même trois fois Recordset .
Le quel choisir ? tout dépend : Dao ou Ado.

Reste à savoir pourquoi Dim rs As Objet
étant donné que Objet c' est vaste ...et vague ?!


C' est pourquoi je n' aurai jamais declarer un recordset comme Objet


<hr />

® l l i n g , l' agité du bocal : 
   ...quotes, double quote, crochets ou parenthèses ?
   Ah si je pouvais rester dans mes charentaises !
Messages postés
2
Date d'inscription
mardi 11 avril 2006
Statut
Membre
Dernière intervention
20 juin 2008

Milles merci j'y aurais pas pensé non plus.

mpi
Je pense que ça peut arriver si tu crées une référence à ADO  ET  à DAO

Il faut alors spécifier le type de Recordset
ex: 
Dim rst As DAO.Recordset
ou
Dim rst As ADODB.Recordset

je n'utilise pas de référence multiples et j'ai eu ce probleme pour la première fois en intégrant mes propres objets dans access. Je ne sais pas si ca à un lien.

En tout cas, même si c'est vraiment sale de faire comme ca, chez moi c'est le seul truc ki marche et vu ce que je gagne à intégrer mes objets dans access, je vais opter pour cela.

En tout cas, merci pour ces infos et encore bravo pour l'illumination somnambulesque