Vb-Access

Résolu
Signaler
Messages postés
5
Date d'inscription
lundi 8 juin 2009
Statut
Membre
Dernière intervention
24 septembre 2011
-
Messages postés
5
Date d'inscription
lundi 8 juin 2009
Statut
Membre
Dernière intervention
24 septembre 2011
-
Comment créer la connexion depuis VB6 avec Access 2007?

Onjadev

10 réponses

Messages postés
5
Date d'inscription
lundi 8 juin 2009
Statut
Membre
Dernière intervention
24 septembre 2011

Merci a vous. Mon problem est resolu.
Maitenant une autre, comment créer une menu via Access 2007.


Onjadev
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
Qu'est-ce que tu appelles une connexion depuis VB6 avec ACCESS ?

S'il s'agit d'interroger/piloter une base ACCESS depuis une application VB6, un objet ADO suffira. VBFrance est truffé de tutoriels et de posts sur l'ADO.

Tu crées une connexion ADO.
Tu crées des Recordset avec des requêtes SQL.
Pas besoin d'autre chose je pense.

Molenn
Messages postés
5
Date d'inscription
lundi 8 juin 2009
Statut
Membre
Dernière intervention
24 septembre 2011

Mon problem ce que j'ai deja entamé ce demarche et lorsque j'execute le projet, il debogue toujour avec comme erreur: format de base introuvable alors ke le base se trouve dans un meme fichier que lo prijet. j'ai utilisé comme extention du fichier ".accdb", est k ca peut aller avec ou ..


Onjadev
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
Bonjour à vous aussi,

Peut-être un problème dans ta chaîne de connexion. Va voir ici pour la bonne chaîne: [ http://www.connectionstrings.com/]

Calade
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
Quand j'ai un soucis pour créer la chaîne de connexion, je triche parfois :)

Je crée un fichier .txt standard, je change l'extension en .udl. Et j'ouvre ce fichier .udl : je remplis tous les champs et j'enregistre.

Me reste plus qu'à utiliser le fichier .udl en tant que tel, ou l'ouvrir avec notepad et récupérer la ligne de connexion pour l'intégrer dans mon code.

Molenn
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
Il n'y a pas besoin de tricher pour avoir la bonne chaîne de connexion. Il suffit de suivre ce que dit le lien que je t'ai donné et tout ira bien.

En plus ce sera beaucoup moins lourd.


Calade
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
@Calade
Juste pour savoir (ne va pas mal interpréter mon propos ), mais comme les chaînes de connexion et moi, ça fait deux et que je n'y ai jamais réellement compris quelque chose : en quoi ca serait moins lourd de suivre le lien ?

Je veux créer une connexion à une base ACCESS, je suis ton lien et j'arrive donc à trouver ma chaîne :

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;

Je crée mon fichier .udl à présent, je l'ouvre, avec l'interface graphique, je peux sélectionner ma base, définir le mode de lecture, rentrer le login et le password sans me poser de question, je valide mon fichier et je récupère la chaîne de connexion :

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Nouveau Application Microsoft Office Access.mdb;Mode=Read;Persist Security Info=False


En quoi c'est plus lourd ?
Ca dépend de ta connexion internet, mais mon fichier .udl ne me prend pas forcément plus de temps qu'aller sur le site Web, défiler 2 pages pour faire un copier coller. Et ça, c'est quand tu as une connexion internet. Mon fichier .udl, il fonctionne aussi en local.
Sans compter que je peux l'utiliser en tant que tel dans l'appli au lieu de mettre la chaine de connexion en dur dans mon code.

Molenn
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
Je persiste et signe.

Moi non plus je ne cherche pas à retenir la chaîne in extenso:

En 3 lignes que tu mets dans un module à insérer dans chacun de tes projets tu as la même chose:

Dim cnnDBConnect As ADODB.Connection
Set cnnDBConnect = New ADODB.Connection
cnnDBConnect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.CurrentDb.Name

et si tu es VB6 pur (et non VBA), tu mets ce code (légèrement étoffé) dans une fonction intégrée dans une DLL tu passes en paramètre le nom de la DB et tu récupères la chaîne elle-même.

En 10 ans que j'utilise cette dernière façon de faire, je n'ai modifié ma fonction qu'une seule fois, quand j'ai changé de serveur et que mon serveur SQL avait changé de non. Tu n'as pas ce problème avec Access. Et tu peux tout aussi bien passer les noms et mot de passe de l'user en paramètre de ta fonction.


Calade
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
La différence doit venir de là, je fais surtout du VBA maintenant, j'ai plus trop le temps pour le VB6 (mettons plutôt que le VBA est au boulot alors que VB6, c'est pour m'amuser chez moi ^^).

Donc, au boulot, hors de question de compiler une .dll (j'ai pas de licence pour, etc ... mais pire que ça, je ne suis pas admin local de mon poste alors :) )

Quant à ACCESS ...

Dim cnnDBConnect As ADODB.Connection
Set cnnDBConnect = New ADODB.Connection
cnnDBConnect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.CurrentDb.Name

Tu as encore plus simple à faire :p
Dim objConnexionBase As ADODB.Connection
Set objConnexionBase = CurrentProject.Connection
Même pas besoin de s'embêter.

Moi je n'utilise mon fichier .udl que lorsque j'utilise un fichier EXCEL pour aller taper dans une base ACCESS ou SQL Server.

Molenn
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
>> Set objConnexionBase = CurrentProject.Connection

J'aurais appris quelque chose, je ne connaissais pas cette commande.

>> Moi je n'utilise mon fichier .udl que lorsque j'utilise un fichier
>> EXCEL pour aller taper dans une base ACCESS ou SQL Server

Là effectivement, on est obligé de passer le nom de la DB (les modules VBA Access et Excel étant tout à fait compatible pourquoi se gêner.

Moi itou, je travaille sous VBA au bureau et en VB6 à la maison, par contre je suis quand même admin de mon poste. Le problème est que j'avais déjà bien travaillé en VB6 avant de passer en VBA alors je suis souvent très frustré. Menfin, dans quelques mois, je jetterais VBA aux oubliettes pour ne plus me consacrer qu'à VB6 (vive la retraite).

Calade