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.
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 ...
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;
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;
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 ?
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?
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;
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 ...