acceder a partir de VB a base de donnée en Access

acceder a partir de VB a base de donnée en Access - VB/VBA/VBS - Programmation

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?

Reply

Marsh Posté le 14-10-2003 à 20:10:31   

Reply

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 ?

Reply

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 ?

Reply

Marsh Posté le 14-10-2003 à 22:20:39    

c bon ca marche, javais oublier le d a recordset   :pt1cable:  
 
 
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


Message édité par figo91 le 14-10-2003 à 22:21:16
Reply

Marsh Posté le 15-10-2003 à 09:06:38    

trace. ça rentre dans le while ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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

Reply

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 :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed