C'est un code très simple qui dépannera des nouveaux j'en suis sur.
Il réponds à ces questions (en DAO):
- comment creer une base Access sous VB
- comment creer une table Access sous VB
- comment lire les données d'une table / requêtes Access sous VB
1- crée un formulaire très simple :
--> attention, tu dois respecter les noms des 4 obets suivant,
--> c'est une bonne habitude de bien nommer tes contrôles !
boutons: cmdCreer, cmdTester, et cmdQuitter
combo: cboAccess
2- dans le menu projet, menu références, coche :
Microsoft DAO 3.5 Object Library
(te permet d'utiliser le dao pour accéder à ta base access 97)
3- copie le code dans le formulaire :
Source / Exemple :
Option Explicit
Const MA_BASE_ACCESS As String = "z.mdb"
Private Sub cmdCreer_Click()
Dim db As DAO.Database
'Création d'une base vide (plus simple tu meurs !)
Set db = DAO.Workspaces(0).CreateDatabase(MA_BASE_ACCESS, dbLangGeneral)
'Création d'une table avec une requête (simple non ?)
db.Execute "CREATE TABLE [TableY] ( [ColonneX] Text(50) );"
'On crée une ligne dans cette table
db.Execute "INSERT INTO TableY ( ColonneX ) values ('Ceci est un test');"
'On crée une seconde ligne dans cette table
db.Execute "INSERT INTO TableY ( ColonneX ) values ('Une autre ligne');"
'Referme la base proprement
db.Close
'Libère l'objet (très important et souvent oublié)
Set db = Nothing
End Sub
Private Sub cmdTester_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Me.cboAccess.Clear
'Pas de mot de passe,
'ouverture la plus simple en mode partagé
Set db = DAO.Workspaces(0).OpenDatabase(MA_BASE_ACCESS, False, False)
'Ouverture d'une requête sur la table,
'dbForwardOnly = lecture en avant = plus rapide
Set rs = db.OpenRecordset("select * from [TableY];", , dbForwardOnly)
'Tant qu'il en reste
Do While Not rs.EOF
'Ajout dans la combo
'du premier champ de la requête
Me.cboAccess.AddItem rs.Fields(0).Value
'passe au suivant
rs.MoveNext
Loop
'On affiche le premier élément
'de la liste comme sélectionné
If Me.cboAccess.ListCount > 0 Then
Me.cboAccess.ListIndex = 0
End If
'Referme la requête proprement
rs.Close
'Referme la base proprement
db.Close
'Libère l'objet (très important et souvent oublié)
Set rs = Nothing
'Libère l'objet (très important et souvent oublié)
Set db = Nothing
End Sub
Private Sub cmdQuitter_Click()
'On referme tout et fini
Unload Me
End
End Sub
Conclusion :
Modification du 25-08-2002 : le fichier zip est corrigé, un nouveau bouton permet la création d'une table et de champs par l'utilisation de tabledefs et fields.
voilà
Bigane@tiscalinet.ch
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.