Pb de recorset: Type incompatible...

mateo - 21 nov. 2001 à 19:52
cs_maciass Messages postés 44 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 19 octobre 2009 - 9 avril 2008 à 03:07
bonjour,
je suis à la recherche d'un sauveur:
je souhaite faire un lien avec ma base de données, lancer une requete et afiicher son résultat dans un combobox.

voici le code de mon module:

voici le code de mon formulaire:

C'est ou que ca merde???
merci de me répondre

4 réponses

bonjour,
je suis à la recherche d'un sauveur:
je souhaite faire un lien avec ma base de données, lancer une requete et afiicher son résultat dans un combobox.

voici le code de mon module:

Option Explicit
Public vbpetrol As Database
Sub main()
On Error Resume Next
Err = 0
Set vbpetrol = OpenDatabase(App.Path & "\petrol97.mdb")
If Err <> 0 Then
MsgBox Err.Description
End
End If
mdiaccueil.Show
End Sub

voici le code de mon formulaire:

Private Sub Form_Load()
Dim requete As Variant
Dim recar As Recordset
requete = "select code_carburant from carburants"
Set recar = vbpetrol.OpenRecordset(requete, dbOpenSnapshot)
While Not recar.EOF = True
cmbtycar.AddItem recar
recar.MoveNext
Wend
End Sub

C'est ou que ca merde???
merci de me répondre

ps: un message d'erreur s'affiche dans une fenetre de débogage et il me dit:
type incompatible en me mettant en surbrillance la ligne du formulaire

Set recar = vbpetrol.OpenRecordset(requete, dbOpenSnapshot)
0
Essaies ça:

Private Sub Form_Load()
Dim requete As String 'Variant changé en String
Dim recar As Recordset
requete = "select code_carburant from carburants"
Set recar = vbpetrol.OpenRecordset(requete, dbOpenSnapshot)
recar.MoveFirst 'Rajouté pour se placer au début
While Not recar.EOF = True
cmbtycar.AddItem recar 'Voir plus bas ***
recar.MoveNext
Wend
End Sub

*** Normalement, tu as:
object.AddItem item [, index]
Sur la ligne AddItem, l'item doit être une chaîne de caractères.
Or, toi, tu mets recar (définit comme recordset)
En espèrant t'avoir aidé.
SG
0
c'est vrai qu'il faut mettre
cmbtycar.AddItem cstr(recar(0)) ou cstr(recar!code_carburant)

Mais ici, le problème est plus haut:
il faut déclarer
dim requete as string

ou alors
Set recar = vbpetrol.OpenRecordset(cstr(requete), dbOpenSnapshot)

pour convertir du variant vers du string

Jos
0
cs_maciass Messages postés 44 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 19 octobre 2009
9 avril 2008 à 03:07
slt
svp j ai un probeleme  avec mon programme VB  qui utilise une base de donnée(acces) et qui ne s execute pas en m affichant comme erreur " type incompatible". est ce qu il s agit d un problem de compatibilité entre vb6 et l office( j ai l office 2007) si c ca le problem pouvez vous me dire la version de l office compatible avec vb6 et ou je peux la trouver si c possible(meme en version d essai).
si qlq un peut m aider je serai trés reconnaissant.
0
Rejoignez-nous