Micro-projet qui montre comment ouvrir une base Access ou bien la créer si elle est absente ainsi que ses champs.
Un tutorial PDF est fourni avec le source : création de l'interface et relation des composants avec la bdd.
Accessoirement petit programme pour référencer une vidéothèque ( DVD ou K7 ).
Programme basé sur les articles suivants :
-
http://delphi.developpez.com/faq/?page=access
-
http://delphi.about.com/od/database/l/aa072401b.htm
Source / Exemple :
{===============================================================================
Code source : BEAUMONT Christophe
Version : 1.0.0
Date : 16 Mars 2010
Micro-projet 04 - Création et gestion d'une base de données Access 2000 sous la
forme d'une vidéothèque. Ajout, edition, création des enregistrements gérés par
un TDBNavigator, création d'une BDD vide si celle-ci n'existe pas. Tri par titre
ou numéro. Mettre "ComObj" dans la partie "Uses" pour utiliser CreateOLEObject.
Retrouvez ces sources également sur mon site : "www.delphinautes.fr"
===============================================================================}
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, OleServer, ADOX_TLB, Grids, DBGrids, ComObj, XPMan,
ExtCtrls, DBCtrls, StdCtrls, Mask;
type
Tf_main = class(TForm)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOCommand1: TADOCommand;
LabTitre: TLabel;
DBTitre: TDBEdit;
DBNum: TDBEdit;
LabNum: TLabel;
DBAnnee: TDBEdit;
DBDuree: TDBEdit;
DBSite: TDBEdit;
LabAnnee: TLabel;
LabDuree: TLabel;
LabSite: TLabel;
DBActeurs: TDBMemo;
DBNavigator1: TDBNavigator;
DBSynopsis: TDBMemo;
XPLook: TXPManifest;
LabActeurs: TLabel;
LabSynopsis: TLabel;
DBRealisateur: TDBEdit;
LabRealisateur: TLabel;
TriBox: TRadioGroup;
procedure FormCreate(Sender: TObject);
procedure TriBoxClick(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
f_main: Tf_main;
implementation
{$R *.dfm}
procedure Tf_main.FormCreate(Sender: TObject);
var
Catalog : OLEVariant;
BDPath, BDOld, BDNew, BDStruct : string;
begin
// On définit le chemin de notre répertoire pour la bdd
BDPath := GetCurrentDir+'\Films.mdb';
// Paramètres pour la base de données existante
BDOld := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + BDPath + ';' +
'User ID=Admin;' +
'Persist Security Info=False;' +
'Mode=ReadWrite;Extended Properties="";' +
'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";' +
// Définit le type de la bdd : 5=access 2000 ; 4=access 1997
'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;' +
'Jet OLEDB:Database Locking Mode=1;' +
'Jet OLEDB:Global Partial Bulk Ops=2;' +
'Jet OLEDB:Global Bulk Transactions=1;' +
'Jet OLEDB:New Database Password="";' +
'Jet OLEDB:Create System Database=False;' +
'Jet OLEDB:Encrypt Database=False;' +
'Jet OLEDB:Don''t Copy Locale on Compact=False;' +
'Jet OLEDB:Compact Without Replica Repair=False;' +
'Jet OLEDB:SFP=False';
// Paramètres pour la base de données à créer
BDNew := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + BDPath + ';' +
'User ID=Admin;' +
'Mode=Share Deny None;Extended Properties="";' +
'Jet OLEDB:Engine Type=5;';
// Structure des champs de notre base de données
BDStruct := 'CREATE TABLE Films (' +
'id COUNTER PRIMARY KEY,' +
'Numero INTEGER,' +
'Titre VARCHAR(80),' +
'annee INTEGER,' +
'duree INTEGER,' +
'site VARCHAR(150),' +
'acteurs MEMO,' +
'realisateur VARCHAR(80),' +
'synopsis MEMO)';
// On vérifie si le fichier Films.mdb existe dans notre répertoire
if FileExists(BDPath) then
begin
// Si oui, on déclare ses paramètres dans notre composant TADOConnection
ADOConnection1.ConnectionString := BDOld ;
// Et on active son affichage
ADOTable1.Active := True;
end
// Si le fichier n'existe pas alos
else
begin
// crée un objet unique non initialisé de la classe ADOX.Catalog
// cette méthode évite d'importer adox.catalog dans la palette d'outils
Catalog := CreateOLEObject('ADOX.Catalog');
// On créé notre base vide
Catalog.Create(BDNew);
// on déclare ses paramètres dans notre composant TADOConnection
ADOConnection1.ConnectionString := BDOld ;
// on n'affiche pas l'écran du mot de passe
ADOConnection1.LoginPrompt := False;
// la base est prête à fonctionner
ADOConnection1.Connected := True ;
// On ouvre la commande
ADOCommand1.Connection := ADOConnection1;
// Et on applique la requête de création de nos champs
ADOCommand1.CommandText := BDStruct;
// On créé les champs de la base de données
ADOCommand1.Execute;
// On active son affichage
ADOTable1.Active := True;
end;
end;
procedure Tf_main.TriBoxClick(Sender: TObject);
begin
// Si le bouton radio "Numero" est sélectionné on définit le tri
if TriBox.ItemIndex = 0 then ADOTable1.IndexFieldNames := 'Numero'
// Sinon c'est le bouton radio "Titre" qui est sélectionné
else ADOTable1.IndexFieldNames := 'Titre';
end;
end.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.