Connexion access visual basic

Résolu
mich8569 Messages postés 68 Statut Membre -  
 Infozig -
Bonjour,

Je dois réaliser une application Visual Basic qui utilise une base de donnée Access. J'ai cherché sur internet comment se connecter à Access sous Visual Basic et comment récupérer le résultat de requêtes mais je n'ai réussi à rien faire, même pas à me connecter à Access.

Est-ce que certains ont déjà fait cela? Si oui est-ce que vous auriez des liens ou alors est-ce que vous pourriez me montrer comment on se connecte et on effectue une requete en récupérant les résultat??

Merci d'avance ;)

21 réponses

  • 1
  • 2
Résumé de la discussion

La demande porte sur la connexion de Visual Basic à une base de données Access et sur l'exécution de requêtes pour récupérer des résultats. Plusieurs réponses expliquent qu'il faut choisir entre DAO et ADO, et détaillent l'ajout de références comme Microsoft DAO 3.6 Object Library ou OLE Automation, avec des remarques selon la version d'Access. Des exemples de code montrent l'utilisation de ADODB.Connection et ADODB.Recordset ou l'emploi de DAO avec OpenDatabase et OpenRecordset, ainsi que l'insertion et la récupération de données via diverses syntaxes. En cas de besoin, certains suggèrent d'utiliser un DataGrid pour lier directement les données, et d'adapter les références selon la version d'Access et le type de base (.mdb vs .accdb).

Généré automatiquement par IA
sur la base des meilleures réponses
  1. mich8569 Messages postés 68 Statut Membre 39
     
    Bon et bien ca y est ca marche

    En fait ca vient des références, il faut rajouter la référence Microsoft DAO 3.6 Object Library
    En gros à la fin, on doit avoir les références suivantes :
    - Microsoft DAO 3.6 Object Library
    - OLE Automation
    - Visual Basic Objects and procedure
    - Visual Basic runtime Objects and procedure
    - Visual Basic For Application

    Pour info, j'ai Access 2000 alors peut etre qu'avec des versions antérieures ca marchera pas, qu'il faudra référencer une version antérieure de Microsoft DAO 3.6 Object Library

    Sinon le code que j'ai mis plus haut c'est exactement celui la ;)
    24
    1. bakato
       
      slut mich juste pour te dire ke j ai eu le meme probleme ke toi ,je n arrivais pas a faire la jonction entre vb et mon access d'abord j'ai changé d'office pour me passer du 2003 au 2000 mais rien il manké kelke chose .ensuite j'ai converti access 2000 en 97 dans la boite a outil dudit .mais y avait encore un lou alors je me suis mis a fouiller(je nai pas la chance de pouvoir me connecter easy et demander de l aide online bikoze ke c 'est cher et seulementr dans les 6ber)
      donc j ai fouillé sur lpc et j ai abouti a la meme solution ke toi
      je suis passé de MS DAO 3.5 au 3.6 et la ca a marché.
      je sui dans une formation de programmation et c'etait une colle qu'on nous avait laissé
      ca marche et la tu me rassure.
      0
      1. HEISIENE > bakato
         
        bj,moi aussi j ai un projet a realiser et il s agit d la connexion entre visuel basic et access et j arrive pas a resoudre le probleme.s il vous plais si vous pouvez m aider ça sera gentil.j ai creé les fenetres en vb et les fichiers en acceess et il m reste le lien entre eux par un code que j connai pa.drai
        0
    2. nino
       
      pk moi pour moi ne marche pa je comprend pa
      0
  2. bucher55
     
    bon c'est facile
    tout d'ab:
    vous ajoutez au code ses lignes:
    Private Sub Form_Load()
    chaine = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\....\nom de votre base.mdb;Persist Security Info=False"
    Set dtBase = New ADODB.Connection
    Set rst = New ADODB.Recordset
    dtBase.Open chaine
    Me.Refresh
    End Sub
    ensuite vous faites les declarations suivantes:
    Dim dtBase As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim chaine As String
    puis vous faite les affectations que vous avez fait comme suit:
    dtBase.Execute " insert into nom_tableau (les variables déclarés dans la base) Values ( '" & var1 & "','" & var2 & "',..)
    est comme sa vous avez enserre des variables dans votre base access.
    pour récuperer des données de votre base vous pouver la parcourir par le curseur rstcomme suit:
    rst!var1 (var1 est le champ associer dans votre tableau)
    9
    1. Infozig
       
      Salut "bucher55", je vous remercie pour les explications que vous avez apporter.
      Quant à moi, j'utilise Access 2007 sur Visual Basic 2010. Et j'aimerais utilisé des données dans ma base de donné pour effectuer des opérations. Maintenant je ne sais quel travail faire dans Access et quel autre faire dans Visual Basic 2010( il s'agit en faite d'une société de commerce qui gère des clients)/ Merci d'avance.
      0
  3. molh Messages postés 8 Statut Membre 6
     
    salut
    je vais essayer de vous repondre a cette question; mais avant je vous pose qlq question concernant votre besoin:
    cette conexion est ce que c'est pour lire les données de la base de donnée et aussi entrer les données a la base de données. c'est le cas alors suivere les etapes suivantes.
    ajouter a la feuille des zonne de text qui corespond aux nombre de chaps de la table

    ajouter le controle data a la feuille
    modifier les deux propriétésdatabasename:selectionner la base de donnée et recordsource=nom de la table
    pour ajouter les données ajouter une commandet ecrire le code suivant;
    data1.recordset.addnew
    data1.recordset(0)=text1.text
    ..
    ...
    ...
    data.recordset.update
    bon c'est ça votre probleme je peux vous donner plus d'information sur ce type de connexion et aussi sur l'utilisation de datagrid.
    6
    1. mounsouf Messages postés 1 Statut Membre
       
      j'ai un probleme Mme\Mr avec la connexion base de donnes avec access ( data),
      j'ai ecrit cette code la :

      Private Sub Form_Load()
      Dim dbs As Database
      Dim rst As Recordset
      Dim wrk As Workspace
      Set wrk = CreateWorkspace("", "admin", "", dbUseJet)
      Set dbs = wrk.OpenDatabase("C:\Documents and Settings\MS SCHOCKMANN\Bureau\Total Projet vb6\soufiane.mdb", False)
      Set rst = dbs.OpenRecordset("clients", dbOpenDynaset)

      If rst.RecordCount <> 0 Then
      MsgBox "parfait"
      Else
      MsgBox "error"
      End If

      'pour charger datagrid
      Set DataGrid1.DataSource = rst

      End Sub



      mais il fonctione pas Mme\Mr ,
      error affiche

      Type mismatch







      comment doit faire Mme\Mr .
      Repondez vous moi svp mounsouf@hotmail.com , c'est urgent ,





      Merci
      0
  4. mich8569 Messages postés 68 Statut Membre 39
     
    Bonjour, voici ce que j'ai testé mais ca ne marche toujours pas :

    Dim bds As Database, qdf As QueryDef
    Dim re As Recordset

    'on ouvre la base de données
    Set bds = OpenDatabase("F:\micka\cours\Appli\dossier programmation\Appli\appli.mdb")
    Set re = bds.OpenRecordset("Select * From [article]")
    If re.RecordCount <> 0 Then ' Enregistrement trouvé avec le Bon Mot de Passe et le Bon Login'Accés
    MsgBox ("parfait")
    Else
    MsgBox ("erreur")
    End If

    Lorsque je veux executer, ca me dit que j'ai une erreur au niveau de :
    Set re = bds.OpenRecordset("Select * From [article]")

    Je comprends pas, c'est exactement ce que j'ai trouvé sur d'autres sites...

    Est-ce que quelqu'un voit d'ou peut venir l'erreur??
    4
    1. layemory
       
      Salut ,il faut au prealable que ta base de donne ait un format 97
      pour cela convertissez la en cliquant sur le menu
      outil- utilitaire de base de donnee- convertir la base vers un format 97
      puis enregistrer sous un autre nom.

      D'autres part vous pouvez utilise la connexion ADO en faisant le sdeclarations suivantes

      Dim con as new adodb.connection
      Dim rs as new adodb.recordset
      dim req as string
      procedez ensuite a la connection
      con.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=chemin d'acces\nombase.mdb "
      req="select * from nomtable"
      rs.open req,con,adopenkeyset
      msgbox rs.recordcount

      Pas besion de convertir la base. je pense que ca doit marcher
      0
      1. Audoli07 > layemory
         
        Bonjour,

        Seriez-vous m'aidez, je souhaiterais faire un lin de Access a visual basic mais je n'y arrive pas. J'ai la version de Acces 2007 et visual basic 2008 mais rien ne fais ca ne marche pas.

        Merci de m'aider svp
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. raro Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   37
     
    petit détail :
    tu peux aussi écrire ta requète directement dans ton code vb
    dans cet exemple je veux que les classes d'un collège apparaissent dans une listbox et faire mon choix en cliquant sur une des classes
    Private Sub list1_Change()
    Set rs1 = db.OpenRecordset(requete1)
    'initialiser requete1
    requete1 = ""
    'emission de  la requete1
    'selectionner l'enregistrement en cours  de la table classe qui s'affichera dans la list1
    'requete1 = "select lib_classe, code_classe from CLASSECODE order by code_classe = '" + List1.Text + "'"
    requete1 = "select lib_classe from CLASSECODE  = '" + List1.Text + "'"
    'aller a l'enregistrement suivant
    rs1.MoveFirst
    
    
    Exit Sub
    


    c'est valable lorsque tu sais que tu n'utiliseras cette requète qu'une seule fois
    3
  7. lsetenet Messages postés 2 Statut Membre 3
     
    il a plusieurs méthodes de connection(ADO, DAO, RDO)
    avec DAO tu ajoute d'abord la bibliothèque en cochant:
    projet----references--Microsoft data active object
    Ensuite tu place les différents controles sur lza feuille form et tu pars sous le code
    a l'évènement form_load :
    dim db as databse
    dim rs as recordset
    set db=opendatabase("chemin de la base de donnée)
    set rs=db.openrecordset("nom de la table)
    pour enregistrer
    sl="insert into nom_table values(' " & nom_controle.text & " ')"
    db.execute(sl)
    pour de plus amples informations écris moi à cette adresse
    lsetenet@yahoo.fr
    3
    1. maxou91
       
      Je recherche une personnel pour creer un logiciel de suivi des travaux dans le bâtiments en access et suivre le coût des travaux par corps de métier. Je vous remunererai pour votre temps de travail .
      Je vous en remercie d'avance
      0
      1. s-pas > maxou91
         
        Salut Maxou, pour créer une base de données tu peux prendre contact avec moi : spastore at free.fr .
        0
      2. r2c2 > maxou91
         
        Si tu as besoin d'une application avec access, contacte moi par mail : r2c2@free.fr
        0
    2. naval
       
      bonjour, j fè un projet circulation doc d'une e/se sur access et j' veux excuter les commandes suivants sur vb: situation du livre(disponible ou pas), les doc que pôssède le detenteur en entrant son N°matricule,...
      merci de me repondre
      0
    3. stan
       
      si c pour connection access-vb avec dao 3.6 voici le code
      procedure: d'abord click project-references
      ajouter microsfot dao 3.6 object library.
      dans le forme load ajouter le code suivant
      dim db as database
      dim rs as recodset
      set db=dbengine.opendatabase("chemin\nomdatabase.mdb")
      set rs=db.openrecordset("nom table")
      rs.addnew
      rs!nomchamp1=text1.text(exemple)
      rs!nomchamp2=text2.text(exemple)
      rs.update
      0
  8. siado
     
    Bonjour,

    Je dois réaliser une application Visual Basic qui utilise une base de donnée Access. J'ai cherché sur internet comment se connecter à Access sous Visual Basic et comment récupérer le résultat de requêtes mais je n'ai réussi à rien faire, même pas à me connecter à Access.

    Est-ce que certains ont déjà fait cela? Si oui est-ce que vous auriez des liens ou alors est-ce que vous pourriez me montrer comment on se connecte et on effectue une requete en récupérant les résultat??

    Merci d'avance ;)69 message(s) posté(s) depuis le vendredi 2 juillet 2004
    3
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      bonjour,

      Pas mal le copier/coller ... es-tu sûr d'avoir pris la peine de lire ce qu'il y a sur ce topic ?

      ;o)
      0
      1. chrisbaby12 Messages postés 11 Statut Membre 2 > Polux31 Messages postés 7219 Statut Membre
         
        Bonjour Polux31,
        je cherche à controler la redondance dans mes tables access à partir de Visual basic,
        je le fais par nom comme index de la table, mais il ya plusieurs personnes de meme nom.
        comment prendre en compte tous les champs de la table dans l'evaluation de la redondance ?
        Merci d'avance
        0
  9. zenon Messages postés 729 Statut Membre 180
     
    Je pense qu'il suffit d'intégrer un DataGrid au form en création et que un assistant s'ouvre alors pour permettre de définir l'origine des données.
    (il y a longtemps que j'ai utilisé VB)

    Sinon, il doit y avoir moyen d'indiquer le chemin d'accès quelque part dans la liste des propriétés...
    2
  10. DOU
     
    Pour répondre à ton message je: il faut ajouter un Data Environnement dans ton projet puis il y’aura une connexion qui te permettra de te connecter à la base de données Access de même cette connexion te permettra aussi de spécifier les données que tu veut afficher sur le DataGrid.
    2
  11. franck
     
    salut

    moi j'execute ce que tu as dit seulement au niveau de datasource qd je clique il me dit pilote IAM introuvable et donc je n'accede pas à ma table mais à ma base si avc databasename en suivant mon chemin d'acces.
    2
  12. sosonapoli
     
    bjr tt le monde;g realisé une application sous vb 3 avec une base de données sous access;g installé mn application sur 3 poste;le probleme c que je vx que les modifications apportées sur la base sur n'importe quel poste seront affchées ds la base et je sé po comment faire.svp aider moi;
    merci d'avance
    2
  13. MYRIAM
     
    comment je fais en detail svp)
    pour se connecter a une base de données acess a partir d'une interface graphique devlopée sur vb6
    je veux encore avoir le code source pour afficher des images gif,jpeg dans une base de données apartir d'un fichier al' exterieur de ma base
    est ce que je dois ouvrir la conection vers la base achaque fois que je viens de consulter,modifier... ma base de données
    2
  14. arse
     
    bjr,je voulai savoir c'est quoi vb et ça sert à quoi.
    Merci
    1
  15. lasaucisse Messages postés 3 Statut Membre 1
     
    Bonjour je suis débutant en visual basic et j'ai réalisé un formulaire en access.
    Probléme, je ne sais pas le traduire.
    J'ai une table en access commune.mdb

    et 2 requetes:
    COMMUNE_IU Requête RECHERCHE CODE:

    SELECT COMMUNE_IU.LIB_COMMUN
    FROM COMMUNE_IU
    WHERE (((COMMUNE_IU.CODE_COM)=[forms]![Interfacegraphique]![codepostal])) OR (((COMMUNE_IU.LIB_COMMUN)=[forms]![Interfacegraphique]![COMMUNEl]));

    COMMUNE_IU Requête RECHERCHE EST NORD:

    SELECT COMMUNE_IU.[EST], COMMUNE_IU.NORD
    FROM COMMUNE_IU
    WHERE LIB_COMMUN=forms!Interfacegraphique!COMMUNE;

    Est ce que quequ'un pourrait m aider svp.

    Voila le code

    Option Compare Database

    Private Sub Commande12_Click()
    On Error GoTo Err_Commande12_Click

    Dim stDocName As String

    stDocName = "COMMUNE_IU Requête RECHERCHE CODE"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

    Exit_Commande12_Click:
    Exit Sub

    Err_Commande12_Click:
    MsgBox Err.Description
    Resume Exit_Commande12_Click

    End Sub
    Private Sub Commande13_Click()
    On Error GoTo Err_Commande13_Click

    Dim stDocName As String

    stDocName = "COMMUNE_IU Requête RECHERCHE CODE"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

    Exit_Commande13_Click:
    Exit Sub

    Err_Commande13_Click:
    MsgBox Err.Description
    Resume Exit_Commande13_Click

    End Sub
    Private Sub Commande16_Click()
    On Error GoTo Err_Commande16_Click

    Dim stDocName As String

    stDocName = "COMMUNE_IU Requête RECHERCHE CODE"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

    Exit_Commande16_Click:
    Exit Sub

    Err_Commande16_Click:
    MsgBox Err.Description
    Resume Exit_Commande16_Click

    End Sub
    Private Sub Commande19_Click()
    On Error GoTo Err_Commande19_Click

    Dim stDocName As String

    stDocName = "COMMUNE_IU Requête RECHERCHE CODE"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

    Exit_Commande19_Click:
    Exit Sub

    Err_Commande19_Click:
    MsgBox Err.Description
    Resume Exit_Commande19_Click

    End Sub
    Private Sub Commande21_Click()
    On Error GoTo Err_Commande21_Click

    Dim stDocName As String

    stDocName = "COMMUNE_IU Requête PAR CODE POSTAL"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

    Exit_Commande21_Click:
    Exit Sub

    Err_Commande21_Click:
    MsgBox Err.Description
    Resume Exit_Commande21_Click

    End Sub
    Private Sub Commande22_Click()
    On Error GoTo Err_Commande22_Click

    Dim stDocName As String

    stDocName = "COMMUNE_IU Requête PAR CODE POSTAL"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

    Exit_Commande22_Click:
    Exit Sub

    Err_Commande22_Click:
    MsgBox Err.Description
    Resume Exit_Commande22_Click

    End Sub
    Private Sub Commande28_Click()
    On Error GoTo Err_Commande28_Click

    Dim stDocName As String

    stDocName = "COMMUNE_IU Requête PAR CODE POSTAL"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

    Exit_Commande28_Click:
    Exit Sub

    Err_Commande28_Click:
    MsgBox Err.Description
    Resume Exit_Commande28_Click

    End Sub
    Private Sub Commande31_Click()
    On Error GoTo Err_Commande31_Click

    Dim stDocName As String

    stDocName = "COMMUNE_IU Requête RECHERCHE EST NORD"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

    Exit_Commande31_Click:
    Exit Sub

    Err_Commande31_Click:
    MsgBox Err.Description
    Resume Exit_Commande31_Click

    End Sub
    1
    1. DTD
       
      1-LES MSG +ERR+EXIT sont la pour etre executes en cas de bug a l'execution; au lieu ke programme plante tu aura pluto un Msg Box(boite) ki sera deploye
      -2les select appartienent au lanagage sql ke tu doit chercher a apprendre si tu veut comprendre les base de donnee)
      3-les requete ou recherche sont execute sur des forms(formulaire) ressemblant un peu a une interface graphique organise
      4le details des parametrestes acnormal, acedit sont explique si tu tape"open_quey" dans la boite de recherche de l'aide(alt+F11/& F1 );
      DTD
      0
    2. emna4 Messages postés 1 Statut Membre
       
      s'il vous plaît j'ai du mal avec mon projet, ben voila je travaille sur vb.NET, et je ne connais plus les étapes pour faire une connexion avec ma base de données sur Access merci de me répondre sur ma boîte e-mails dans les plus proches délais: fadhoul3000@hotmail.com
      Merci d'avance
      0
    3. toto
       
      chercher sur mon amie www.google.com ou .fr lol et vous trouverez surrement plus precisement ce que vous chercher sur http://www.developpez.com/
      bon courage
      0
  16. castrovel
     
    je veux faire un projet de gestion d'ecole sur vb et access ;je sollicite donc des orientations de votre part;s'il faut être clair des idées(nbre de feuilles,composants et autres...)
    1
    1. OUDET
       
      tu v gere ql genre d' ecole (lycée,.....)
      0
  17. anis
     
    ecoute essaye de m'envoyer ton num de gsm dans ma boite email et jte dirai coment il faut faire
    1
  18. mich8569 Messages postés 68 Statut Membre 39
     
    et est-ce que tu connais les quelques lignes de code qui permettent de se connecter à Access et faire des requêtes stp?
    Parce que moi j'ai cherché mais rien n'a marché... :(
    0
    1. bigtsiry
       
      moi aussi je cherche les codes et si tu les as, pliz envoi le a mon adresse e-mail: tsirylal@yahoo.fr
      0
  19. diouf-daouda Messages postés 1 Statut Membre
     
    salut tout le monde mon nom c daouda et j'habite au senegal mon adresse c diouf.daouda@yahoo.fr
    0
    1. Christ
       
      Que cherche tu exatement?
      Une maniere de demander a certaines personnes de quoi il est capable.....
      Boujour C'est Achille du Cameroun
      tu cherche tu et donne ton opignons sur certains sujets......
      0
  • 1
  • 2