acceder a partir de VB a base de donnée en Access - VB/VBA/VBS - Programmation
Marsh Posté le 14-10-2003 à 21:38:39
as tu inclu les dll activex pour dao ou ado dans tes références de projet ?
Marsh Posté le 14-10-2003 à 21:43:54
oui il fallai inclure la librairie dao 3.5
maintenant g le meme probleme mais pour le recordset.
comment on fait pour savoir quelle librairie lui associer ?
Marsh Posté le 14-10-2003 à 22:20:39
c bon ca marche, javais oublier le d a recordset
par contre vb plante kan je lance ca...
Dim DBnom As Database
Dim RSnom As Recordset
Dim SNnom As Recordset
Dim comptnom As String
Private Sub Form_Load()
On Error Resume Next
'DBnom pour l'ouverture de la base de données
Set DBnom = OpenDatabase(App.Path & "\annuaire.mdb" )
'RSnom pour l'accès au menu de la Base
Set RSnom = DBnom.OpenRecordset("Select * from annuaire" )
'SNnom pour l'accès à un critère du menu
Set SNnom = DBnom.OpenRecordset("Select repertoire from annuaire" )
TextAfficher.Text = RSnom(0)
RSnom.MoveLast
texttotal = RSnom.RecordCount
While Not SNnom.EOF // ca doit etre vers ici le probleme
Listnom.AddItem SNnom(0)
SNnom.MoveNext
Wend
End Sub
Private Sub Listnom_Click()
comptnom = Listnom
End Sub
voici ma table annuaire | repertoire |
---------
dupont
henry
robert
lol
normalement ca devré mafficher les noms dans une fenetre "listnom" et ca me plante mon vb
Marsh Posté le 15-10-2003 à 09:06:38
trace. ça rentre dans le while ?
Marsh Posté le 15-10-2003 à 09:22:37
ça merde parfois avec DAO
Essaye plutot avec ADO (Mettre dans les références : Microsoft ActiveX Data Object 2.X Library)
Dim Connection_Str As String
Dim texttotal As Integer
Private Sub Form_Load()
Dim rs As New ADODB.Recordset
Connection_Str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\" & "annuaire.mdb" & ";Persist Security Info=False"
' ouverture de la db avec la requette
rs.Open "Select repertoire from annuaire", Connection_Str, 3, 3
texttotal = rs.RecordCount
TextAfficher.Text = rs.Fields(0)
While Not rs.EOF
DoEvents ' Toujours mettre un "Doevents" (Au moins pous les tests) pour pouvoir reprendre la main si la boucle est sans fin
Listnom.AddItem rs.Fields(0)
rs.MoveNext
Wend
End Sub
Private Sub Listnom_Click()
comptnom = Listnom
End Sub
Marsh Posté le 15-10-2003 à 16:18:06
Je plussoie pour ADO, parce que DAO va purement et simplement être abandonné.
Et vire ces On Error Resume Next, ça fait tache
Marsh Posté le 14-10-2003 à 20:10:31
Bon alors voila, je débute en VB.
Je voudrais acceder a une base de donnée toute simple en Acces qui comporte une table "annuaire".
// déclaration des variable
Dim DBnom As Database // probleme
Dim RSnom As recorset
Dim comptnom As String
des la premiere ligne, il me met set erreur
"erreur de compilation. type défini par lutilisateur non défini."
J'ai pourtant pris ca sur un exemple ki marche sur mon pc mais lorsque c'est moi qui crée le programe, il veut pas.
Pouvez vous me donner un exemple pour acceder a une base de donnée?