Automatiser la connection ADOConnection [Résolu]

Signaler
Messages postés
270
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
5 mai 2015
-
Messages postés
270
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
5 mai 2015
-
Bonjour,

Quelqu'un peut m'expliquer, ou un bout de code, comment faire pour automatiser une connection ADOConnection vers une base access à partir d'un OpenDialog?

Je m'explique: ce que je cherche à faire c'est soit au démarrage ou en cours d'utilisation de l'appli de pouvoir sélectionner ou changer, à partir d'un opendialog, de base access.

Dans l'attente

Cordialement

Codial

9 réponses

Messages postés
133
Date d'inscription
mercredi 4 janvier 2006
Statut
Membre
Dernière intervention
7 septembre 2010

1 - {A partir d'ici, comment tu fais pour rcuperer ta table ? }
--- mais je n'ai pas bien saisi le sens de la question:
Mon code fonctionne si la table a le meme nom pour toutes tes bases access .... CQFD

2 - Sinon c'est bon ça à l'air de fonctionner!!!
Penses alors à cliquer sur reponse acceptée ...
Messages postés
133
Date d'inscription
mercredi 4 janvier 2006
Statut
Membre
Dernière intervention
7 septembre 2010

et tu comptes faire comment pour recuperer ta table dans ton fichier mdb ? car sinon voici un bout de code ...
if opendialog1.execute then
assignfile(F,opendialog1.filename)
else exit;
ADOConnection1.LoginPrompt := False;//Pas de mot de passe exigé
ADOConnection1.Mode := cmReadWrite;//Mode lecture/ecriture
ADOConnection1.ConnectionString:='provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilepath(application.ExeName)+ 'MaBase.MDB;mode=readwrite;Persist Security Info=False';
ADOConnection1.Connected:=True;
{Composant ADOTable : Connection de la table}
ADOTable1.connection:=ADOconnection1;
ADOTable1.TableName:='table1';
ADOTable1.Active:=True;
Messages postés
133
Date d'inscription
mercredi 4 janvier 2006
Statut
Membre
Dernière intervention
7 septembre 2010

Autant pour moi :
Pour recuperer ta base *.mdb :

opendialog1.execute;
ADOConnection1.LoginPrompt := False;//Pas de mot de passe exigé
ADOConnection1.Mode := cmReadWrite;//Mode lecture/ecriture
ADOConnection1.ConnectionString:='provider=Microsoft.Jet.OLEDB.4.0;Data Source='+OpenDialog1.FileName+';mode=readwrite;Persist Security Info=False';
ADOConnection1.Connected:=True;
{Composant ADOTable : Connection de la table}
ADOTable1.connection:=ADOconnection1;

{A partir d'ici, comment tu fais pour rcuperer ta table ? }
ADOTable1.TableName:='compte';
ADOTable1.Active:=True;
Messages postés
270
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
5 mai 2015
1
Bonjour,

merci pour ta réponse, mais je n'ai pas bien saisi le sens de la question:

{A partir d'ici, comment tu fais pour rcuperer ta table ? }
ADOTable1.TableName:='compte';
ADOTable1.Active:=True;


il me semble que la réponse est dans la question, non ?

Sinon c'est bon ça à l'air de fonctionner!!!

Cordialement

Codial
Messages postés
270
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
5 mai 2015
1
Bonjour,

Oui c'est exact et c'est le cas, il faut que toutes les bases access aient les mêmes tables avec les même structures. En fait je dois pouvoir créer une nouvelle base ( ce que je fais à partir d'un modèle) ou lire des bases archives, lesquelles, il est vrai, ont la même struture.

Une question encore:

je cherche à faire un test au démarrage de l'appli pour voir si la base access existe mais je ne trouve pas le bon code! Tu as une idée ?


D'avance merci


Codial
Messages postés
270
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
5 mai 2015
1
Encore une question sur mon problème initial:

Est qu'il y a moyen de mettre à jour la ConnectionString du TADOConnection après l'OpenDialog1.FileName de manière à garder la même base au prochain lancement?

Cordialement

Codial
Messages postés
133
Date d'inscription
mercredi 4 janvier 2006
Statut
Membre
Dernière intervention
7 septembre 2010

var filename:string;
begin
// opendialog1.execute;
filename:='MaBase.mdb';
ADOConnection1.LoginPrompt := False;//Pas de mot de passe exigé
ADOConnection1.Mode := cmReadWrite;//Mode lecture/ecriture
ADOConnection1.ConnectionString:='provider=Microsoft.Jet.OLEDB.4.0;Data Source='+FileName+';mode=readwrite;Persist Security Info=False';
if FileExists(filename) then
begin { le fichier existe }
ADOConnection1.Connected:=True;
{Composant ADOTable : Connection de la table}
ADOTable1.connection:=ADOconnection1;
ADOTable1.TableName:='compte';
ADOTable1.Active:=True
end
else // le fichier n'existe pas
exit;
Messages postés
133
Date d'inscription
mercredi 4 janvier 2006
Statut
Membre
Dernière intervention
7 septembre 2010

Est qu'il y a moyen de mettre à jour la ConnectionString du TADOConnection après l'OpenDialog1.FileName de manière à garder la même base au prochain lancement?

A part de sauvegarder dans un fichier et de le rappeler lorsque tu demarres ton appli ...
Messages postés
270
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
5 mai 2015
1
Bonsoir,

merci pour tes réponses :

A part de sauvegarder dans un fichier et de le rappeler lorsque tu demarres ton appli ...

oui c'est ce que je pensais aussi!

cordialement a+

Codial