onjapoon
Messages postés5Date d'inscriptionlundi 8 juin 2009StatutMembreDernière intervention24 septembre 2011
-
25 févr. 2010 à 06:24
onjapoon
Messages postés5Date d'inscriptionlundi 8 juin 2009StatutMembreDernière intervention24 septembre 2011
-
5 mars 2010 à 09:03
Comment créer la connexion depuis VB6 avec Access 2007?
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 25 févr. 2010 à 08:57
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.
onjapoon
Messages postés5Date d'inscriptionlundi 8 juin 2009StatutMembreDernière intervention24 septembre 2011 25 févr. 2010 à 09:16
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 ..
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 25 févr. 2010 à 11:10
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és797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 25 févr. 2010 à 14:14
@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 :
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.
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 25 févr. 2010 à 15:15
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.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 25 févr. 2010 à 15:22
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.
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 25 févr. 2010 à 15:40
>> 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).