S.O.S : problème d'accès à une DB avec contrôle ADODC !

websmiley Messages postés 27 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 13 août 2009 - 25 mai 2006 à 12:00
websmiley Messages postés 27 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 13 août 2009 - 25 mai 2006 à 13:58
Bonjour à tous,
je solicite encore une fois votre talent pour me donner un petit coup de main.

Voilà la situation:

J'ai différents FORM sur lesquels sont mis des contrôles ADODC pour accéder à des DB access. Le problème est assez simple:
Comment je peux lui donner le chemin de la DB en sachant qu'il changera en fonction du répertoire d'installation du programme?

Par exemple, au début j'avais mis ca pour un ADODC (dans les propriétés, pas dans le code):

adodc1.ConnectionString= Provider="Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\VB\contacts.mdb;Persist Security Info=False"

la tout fonctionnait correctement, mais ca impose de mettre le programme dans C:\Program Files\VB\ ... Alors, après quelques tests, j'ai modifié la chaîne de connexion comme ceci:

adodc1.ConnectionString=Provider="Microsoft.Jet.OLEDB.4.0;Data Source=contacts.mdb;Persist Security Info=False"

Et là ca fonctionne toujours (du moins sur mon poste...) mais dès que je fais le test sur un autre poste, il me recherche ma DB contact.mdb sur C:\ et non dans le app.path comme je le pensais...

Ma question est donc la suivante:
Est-il possible de déclarer un chemin du style
adodc1.ConnectionString=Provider="Microsoft.Jet.OLEDB.4.0;Data Source= "& app.path &"\ contacts.mdb;Persist Security Info =False"

 dans le ConnectionString des propiétés de mon ADODC ??? Je n'arrive pas à trouver la mise en forme correcte.

Petite précision, j'ai environ 30 form différents avec des contrôles ADODC, remplacer tous mes accès ADODC par des accès en code de type ADODB.connection,recordset,etc... serait certes plus simple (et certainement plus fiable ...), mais à vu de nez ca me prendrait une semaine de job non-stop... Alors si y'a moyen de contourner celà grâce à quelques propriétés à changer je suis preneur...

Merci mille fois de votre précieuse aide....

3 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
25 mai 2006 à 12:10
Salut,

essai cette méthode :

adodc1.Provider = "Microsoft.Jet.OLEDB.4.0"
adodc1.ConnectionString = "Data Source=" & App.Path & "\contacts.mdb"
adodc1.Open

@++
Mortalino
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
25 mai 2006 à 12:29
Je suis en train de penser, à la limite, tu peux mettre ces trois lignes dans une procédure, placée dans un module.

Comme ça, t'as plus qu'à appeler la procédure (Call QuelqueChose => 1 seule ligne, au lieu de trois à chaque fois)

++
Mortalino
0
websmiley Messages postés 27 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 13 août 2009
25 mai 2006 à 13:58
Ce serait une solution... Mais y'a juste un petit problème, j'ai des datacombo et autres qui nécessite l'ADODB pour se remplir, c pour cette raison que j'aurais aimé changer uniquement la ligne dans les propriétés et non dans du code...

Tu aurais une autre idée?
0
Rejoignez-nous