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?