Comment créer une base access, créer table, lire colonne, en quelques lignes vb5-vb6

Description

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

Codes Sources

A voir également

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.