Bonjour,
Toute proportions gardées je programme un gestionnaire de base de données au format Access.
Mon logiciel doit être capable de créer des bases de données, de modifier des bases de données : ajout de tables et de requêtes, d'ajouter des champs aux tables et bien sur d'éditer des données. Un peu comme le Module de base de données dans Delphi 7 que j'utilise.
Le but est d'initialiser des bases qui vont servir dans et avec d'autres applications.
Voilà mon problème :
J'ai les procédure suivantes : créer une table (ADOX), ouvrir une base, Connexion et ajout d'une table "Agents",
Quand je crée une BD et que sans fermer l'application j'ajoute une table : tout se passe très bien.
Quand je crée une BD et que je ferme l'application, quand je rouvre la BD et que je tente d'ajouter une table, j'ai le message d'erreur : EOleExeption "Echec de l'authentification"
J'ai également ce message quand dans une base où j'ai réussi a ajouter des tables (et même saisi des données), je n'arrive pas à rouvrir la table, j'ai la même erreur ; pourtant ma saisie est visible avec MS Access.
Je ne comprends pas ce qui se passe après la fermeture de l'application, j'ai rien trouvé dans la FAQ et sur avec Gouguelle j'ai essayé plein de trucs ... rien de terrible, merci de votre aide des vos idées ...
Avec ça, je vais passer un mauvais Noël
Jean-Michel
Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 // Création BD Access avec ADOX function CreateAccessDatabase(FileName: string): string; var catalog: OLEVariant; begin catalog := CreateOleObject('ADOX.Catalog'); catalog.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + ';'); catalog := NULL; end; // Crée une nouvelle base de données procedure TForm1.Nouvellebase1Click(Sender: TObject); begin If SaveDialog1.Execute then begin sFichierBase:=SaveDialog1.FileName; CreateAccessDatabase(sFichierBase); OuvreBase; end; end; // Ouvre un fichier de base procedure TForm1.Ouvrirbase1Click(Sender: TObject); begin If OpenDialog1.Execute then begin sFichierBase:=OpenDialog1.FileName; OuvreBase; end; end; // Connecte la base ADOConnection procedure TForm1.OuvreBase; begin ADOConnection1.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;' +'Data Source='+sFichierBase+';' +'Persist Security Info=False'; ADOConnection1.Mode := cmReadWrite; ADOConnection1.Provider:='Microsoft.Jet.OLEDB.4.0'; ADOConnection1.LoginPrompt := False; end; // Ajouter la table "Agents" procedure TForm1.AjouterTable1Click(Sender: TObject); begin ADOCommand1.Connection := ADOConnection1; ADOCommand1.CommandText := 'CREATE TABLE Agents (nom TEXT(50),email TEXT(40),matricule TEXT(10))'; ADOCommand1.Execute; ADODataSet1.Connection:=ADOConnection1; ADODataSet1.CommandText:='SELECT * FROM Agents'; ADODataSet1.Active:=true; end;
Partager