Connexion BDD access

moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007 - 30 juil. 2007 à 09:35
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 - 31 juil. 2007 à 22:24
salut, j'utilise actuellement le access 2002 je voudrai savoir si il y a des tuto pour les connexion au base de données, comment utiliser des tables de differentes bases, se connection a une base importer, ou un lien d'une base etc.

SVP aidez moi, c'est pour mon stage et je suis actuellement bloqué

12 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 juil. 2007 à 09:41
Salut,
Je pense que tu peux essayer de regarder du côté d'ADO qui te permettras de faire tout ce que tu souhaites.

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
30 juil. 2007 à 14:29
Salut,

allez, un petit exemple histoire de te montrer un peu à quoi ca ressemble:

Aller dans Outils puis référence et cochez MicroSoft Active Data Object 2.? (? = 5 ou plus).

Ensuite le code:

Dim acn As New ADODB.connection
Dim rs As New ADODB.recordset

acn.CursorLocation = adUseClient
acn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Chemin_DataSource 'Chemin du fichier .mdb
rs.Open "SELECT * FROM Nom_Table", acn, adOpenDynamic, adLockReadOnly  

Tu n'as plus qu'à remplacer le chemin et le nom de la table et c'est parti.
Par contre, si ta base est protegé avec un mode de passe, ca change la connexion.

Je pense qu'avec ca, tu peux partir avec une base.

Encore une chose, si tu codes en VBA Access (ton sujet) et dans la meme base que ta table, tu n'as plus besoin de la connexion, juste de :

rs.Open "SELECT * FROM Nom_Table", CurrentProject.Connction, adOpenDynamic, adLockReadOnly 

Enfin, j'attends que tu essaies ca.

A+ 
0
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
30 juil. 2007 à 15:10
salut, merci pour vos reponse

une ptite question pour toi nicko11


je code en VBA Access et dans la meme base que ma table
il suffit donc de faire ce que t'as dit a la fin, mais comment je pourrait afficher le resultat dans une liste deroulante par exemple ( desolé je suis vraiment debutant dans access et vba)
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
30 juil. 2007 à 15:52
Alors la, c'est bien plus facile. Utilise ADO seulement pour des traitements un peu complexes ou pour des connexions a des bases externes.

Donc, oui, la derniere solution est envisageable mais la meilleur (si tu t'y connais) est de créer des requetes SQL.

Pour la mettre en source de ta liste, tu vas dans le mode création de ton formulaire.

Tu vas dans les propriétés de ta liste et tu choisis Table/requete pour la propriété Origine Source.
Ensuite tu tapes la requete SQL dans la propriété Contenu:
"SELECT Champ1, Champ1 AS toto, Champ1 AS tata FROM Ta_Table''

Faut remplacer le nom des champs que tu veux affichier (* pour  tous les champs) et le nom de la table.
Le AS ... sert a modifier les entetes de colonnes dans la liste (si propriété Entete colonne a OUI).

Est ce que cette méthode te convient ou tu veux vraiment passer par ADO ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
30 juil. 2007 à 16:14
euh peut tu me dire comment passer par ado: mettre la requete dans le code vba
req= "select * from A"???
0
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
30 juil. 2007 à 16:52
desolé pour ce double poste, mais j'aimerai aussi savoir comment faire pour recuperer la valeur selectionner dans une liste deroulante...
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
31 juil. 2007 à 08:32
Tu as aussi le choix de faire:

SQL = "select * from A"

DoCmd.RunSQL  SQL

Si tu veux passer par un recordset, c'est la premiere solution que je t'ai donnée

Dim acn As New ADODB.connection
Dim rs As New ADODB.recordset

acn.CursorLocation = adUseClient
acn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Chemin_DataSource 'Chemin du fichier .mdb
rs.Open "SELECT * FROM Nom_Table", acn, adOpenDynamic, adLockReadOnly

La requete est en gras, mais je vois pas pourquoi tu veux passer par ADO dans ce cas, contrairement a ta precedante reponse.


 


Pour reccupérer l'item selectionner de ta liste, soit tu fais,



Nom_Controle_Liste.Value (remplacer par le mon du controle)

Soit cherché une propriété de ton controle du genre Sel ou Selected.
0
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
31 juil. 2007 à 09:25
en fait, je doit mettre deux liste deroulante , qd je change la premiere la deuxieme doit changer... la premiere liste est la liste du departement et la deuxieme est la ville

si je prend la premiere solution, je ne pourrai changer la requete , alors que je peux placer la deuxieme requete dans le onchange de la premiere.


qd je fais le        rs.Open "SELECT * FROM Nom_Table", acn, adOpenDynamic, adLockReadOnly

comment je fait pour placer tout ces ligne dans la liste deroulante???

merci beaucoup nicko pour tout ton aide
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
31 juil. 2007 à 10:49
Je ne comprends pas exactement la facon de faire que tu recherches. Je te preposes de faire par requete car c'est bien plus simple que de passer par ADO.

"comment je fait pour placer tout ces ligne dans la liste deroulante???"

Regarde mon post du "30/07/2007 15:52:16" et tu auras ta reponse.

Ensuite pour la 2eme liste tu fais la meme chose en rajoutant une clause Where.

"SELECT ville FROM A WHERE departement =[Nom_De_la_premiere_liste];"
0
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
31 juil. 2007 à 14:14
merci t super
0
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
31 juil. 2007 à 15:07
une derniere question nicko :D


y'a un truc qui marche pas la, en fait j'ai un boutton, quand je l'appui je doit faire des operations, et parmis ces operation je doit parcourir une table et afficher les resultats.


j'ai essayer d'utiliser tes reponses mais ils marche pas la...


voila ce que j'ai fait:


pour le bouton sur evenement souris apuyé j'ai créée un Sub

dans ce sub j'ai mis:

    Dim lignes As Recordset
    Dim acn As New ADODB.Connection


    acn.CursorLocation = adUseClient
    acn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "d:\D341958\Bureau\baseAccess\baseTest.mdb" 'Chemin du fichier .mdb


    lignes.Open "SELECT * FROM A", acn, adOpenDynamic, adLockReadOnly
    lignes.MoveFirst
    MsgBox (dtmaj)

ils me disent variable with non definie...
comment faire pour que ca marche??

est ce que je peut creer un module connection pour etablir une seul fois la connexion a la ase de donnée??
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
31 juil. 2007 à 22:24
Je pense que le pb viens de la mauvaise declaration:

    Dim lignes As New ADODB.Recordset
    Dim acn As New ADODB.Connection

Par contre, pour tes listes, ca fonctionne nickel, c'est bon.
0
Rejoignez-nous