fredpop37
Messages postés2Date d'inscriptionjeudi 6 septembre 2007StatutMembreDernière intervention17 septembre 2007
-
6 sept. 2007 à 10:48
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 2013
-
18 sept. 2007 à 10:05
Bonjour,
Débutant, j'ai un sérieux problème avec le code très court qui suit :
Option Explicit
Public db As Database
Public rs As Recordset
Public sql As String
Private Sub Form_Load()
Set db = OpenDatabase(App.Path & "\requisition.mdb")
sql = "select*from Agents"
Set rs = db.OpenRecordset(sql, dbOpenSnapshot) <-- sur cette ligne erreur "type incompatible"
Lst_agents.AddItem rs.Fields("nom")
End Sub
C'est un code succint destiné a tester l'accès a un base de donnée access.
Je ne comprend pas d'où vient l'erreur, quelles sont les causes possibles.
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 20137 17 sept. 2007 à 14:26
Salut,
Je ne sais pas si ça vient de là mais mets des espaces dans ta requête.
sql = "select * from Agents"
Et pour ajouter ensuite la ligne que tu as écrites ne suffira pas :
with rs
If .RecordCount <> 0 Then
.MoveFirst
Do While Not .EOF 'puis parcourt les enregistrements jusqu'au dernier
'Ajout des différents choix de la listbox
Lst_agents.AddItem .Fields("nom")
.MoveNext
Loop
end with
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 20137 18 sept. 2007 à 10:05
Re,
Il vaut mieux toujours déclarer les variables..
Et comme ceci??
Public Sql As String
Public base As Database
Public MonEspace As Workspace
Public rs As Recordset
nomBase = App.Path + "\base_mas.mdb" 'initialisation et ouverture de la base
Set MonEspace = DBEngine.Workspaces(0)
Set base = MonEspace.OpenDatabase(nomBase)
sql = "select*from Agents"
Set rs = MonEspace.OpenRecordset(sql, dbOpenSnapshot)