cboin
Messages postés9Date d'inscriptionvendredi 2 septembre 2005StatutMembreDernière intervention10 janvier 2007
-
5 mai 2006 à 16:22
haoudam
Messages postés3Date d'inscriptionlundi 5 septembre 2005StatutMembreDernière intervention30 janvier 2007
-
30 janv. 2007 à 13:14
Bonjour à tous,
je débute dans la programmation en VB et dans l'ensemble de mes recherches, je n'ai pas trouvé comment utiliser un contrôle ADODC, une DataGrid liée au contrôle ADODC et faire en sorte que la chaîne de connection soit activée au démarrage de l'application et non pas avant la compilation. En effet, le principale obstacle que je rencontre est le suivant : VB génère un message d'erreur si la propriété connectionstring du contrôle ADODC n'est pas renseignée avant la compilation...
Pourtant, utiliser un contrôle ADODC et le lier à une DataGrid permet simplement et rapidement d'afficher une table sans aucun code...
L'environnement du problème est le suivant :
En réseau (local), je souhaite connecter une base de donnée Access sur un dossier partagé d'un serveur de données via une application "cliente" installée sur une station de travail en utilisant les contrôles ADODC et DataGrid...
Par ailleurs, je voudrais pouvoir paramétrer à l'aide d'un fichier de configuration le chemin d'accès à la base de données.
J'arrive sans problème à me connecter à la base de données avec le contrôle ADODC si elle est dans le même répertoire que l'application mais ce cas de figure ne me convient pas pour le réseau.
yoh_bur
Messages postés24Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention 9 février 2007 9 mai 2006 à 14:46
J'utilise exactement le meme type d'architecture et de programtion.
J'accede a une bdd Access sur un lecteur reseau via des adodc pour afficher mes resultats.
Tu peux tout a fait mettre ta connectionstring en variable et la passer a l'adodc par une simple ligne de code.
Ce système te permet meme de changer les resultats affichés dans ton datagrid a tout moment en redefinissant la chaine de connection et/ou les variables de connexions (requete, etc..)
cboin
Messages postés9Date d'inscriptionvendredi 2 septembre 2005StatutMembreDernière intervention10 janvier 2007 9 mai 2006 à 18:07
Merci Alain 31 et Yoh_bur pour vos réponses.
Effectivement, je peux déclarer une connection string et la modifier par code (ce que j'ai fait) mais mon problème se produit au démarrage : a priori, Visual Basic n'accepte pas que je spécifie une chaîne de connection vide que je modifierais ensuite au démarrage. Et si je spécifie une chaîne de connection par défaut, le chemin de la base de donnée qui est enregistré "pointe" sur un chemin correspondant à un dossier local dans lequel j'ai mis ma base de test. Ainsi, si je démarre sans base de donnée dans le dossier local, le logiciel génère une erreur...
Pour simplifier : lorsque j'ai fait les essais avec la chaine de connection en variable, je devais avoir (pour le démarrage) une base de donnée en locale sinon cela plantait. Par ailleurs, je ne crois pas que cela soit très propre de procéder avec une base locale qui ne sert qu'au démarrage...
Si vous pouvez m'éclairer à ce sujet ou m'envoyer un exemple de code simple avec juste une table, un contrôle adodc et une datagrid pour afficher la table, peut être que je comprendrais mieux ce que vous voulez m'expliqer et comment procéder correctement.
amine_de_smi
Messages postés1Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention10 janvier 2007 10 janv. 2007 à 15:11
salut j ai le prob suivant et veulliez m aider j ai changer le repertoir de mon projet et j aimerai modifie le chemin de la base de donnnee pour qu il accede et je utilise la notion de ADODC et le lier à une DataGrid pour gerer la base de donnee
Vous n’avez pas trouvé la réponse que vous recherchez ?
cboin
Messages postés9Date d'inscriptionvendredi 2 septembre 2005StatutMembreDernière intervention10 janvier 2007 10 janv. 2007 à 19:22
Bonjour,
la solution que j'ai trouvé est de créer un fichier de paramétrage et de définir le chemin d'accès à la base dans ce fichier.
Ensuite, je charge la chaine de connection dans le contrôle ADODC au démarrage de l'application.
Puis je fait un Refresh du contrôle pour ouvrir la connection et afficher la table dans le Datagrid qui est lié.
Dans la propriété DataSource du DataGrid, je rentre le nom du contrôle Adodc : exemple : Adodc1_tbl_commandes_vitrages
Exemple avec un fichier "Parametrage.txt" (A la racine de l'application)
J'ai créé une fonction qui permet d'aller chercher dans ce fichier de paramétrage le nom du répertoire de la base de données.
Ce répertoire est affecté à la variable "RepertoireBDD"
Ensuite je crée la chaine de connection comme ceci :
<<
chaine = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RepertoireBDD & "\Commande_vitrages.mdb;Persist Security Info=False"
>>
(Commande_Vitrage.mdb est la nom de fichier de la base de données)
Ensuite j'affecte la chaine de connection au contrôle ADODC de la form :
<<
frm_Principale.Adodc1_tbl_commandes_vitrages.ConnectionString = chaine
>>
puis j'actualise le contrôle Adodc ce qui actualise par liaison le datagrid :
<<
frm_Principale.Adodc1_tbl_commandes_vitrages.Refresh
>>
Tout cela est dans le code de chargement de la fenêtre principale.