begin process at 2012 02 05 00:28:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > DELPHI ET ACCESS /DBGRID

DELPHI ET ACCESS /DBGRID


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de Donnees Classé sous :delphi, Access, dbgrid, filtre, date Niveau :Débutant Date de création :01/12/2007 Vu / téléchargé :17 912 / 3 046

Auteur : aghtor

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Ayant cherché à nombreuse reprise sur le net sans de rééel conclusion une explication d'accés à access et à l'interconnexion avec une dbgrid, j'ai enfin réussi à faire une synthése de quelques trucs.
Le source suivant donne les informations suivantes :
Accés à la base de données access
Connexion à une DBGRid
Filtre sur des dates (et c'est pas du kuxe d'avoir un vrai exemple)
    Between
    Filtre date précise
Filtre Texte (plus simple)

Pour les novice, comme moi, il faudra, cliquer sur l'icone ADO dans l'onglet Design de l'éditeur Delphi
A gauche vous avez dans objectInspector zone Database ConnectionString cliquez sur ....
          Boite de dialogue
          cliquez sur Build
          Onglez connexion
          cliquez sur ...de la zone 1 et pointez sur la base de données DataBase.mdb
          Cliquez sur testez la connexion
          Message de dialogue de victoire


Source

  • unit Unit1;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, ADODB, DB, Grids, DBGrids, StdCtrls;
  • type
  • TForm1 = class(TForm)
  • DBGrid1: TDBGrid;
  • ADOConnection1: TADOConnection;
  • ADOQuery1: TADOQuery;
  • DataSource1: TDataSource;
  • Button1: TButton;
  • Button2: TButton;
  • Button3: TButton;
  • Button4: TButton;
  • procedure Button4Click(Sender: TObject);
  • procedure Button3Click(Sender: TObject);
  • procedure Button2Click(Sender: TObject);
  • procedure Button1Click(Sender: TObject);
  • private
  • { Private declarations }
  • public
  • { Public declarations }
  • end;
  • var
  • Form1: TForm1;
  • implementation
  • {$R *.dfm}
  • // Pour fonctionner directement il faut que la requete soit active : Miscellaneous Active TRUE
  • procedure TForm1.Button1Click(Sender: TObject);
  • begin
  • AdoQuery1.SQL.Clear;
  • AdoQuery1.SQL.Add('Select * From TableTest Where ChampTXT='+QuotedStr('TEST1'));
  • AdoQuery1.Open;
  • end;
  • procedure TForm1.Button2Click(Sender: TObject);
  • begin
  • AdoQuery1.SQL.Clear;
  • AdoQuery1.SQL.Add('Select * From TableTest');// Where ChampTXT='+QuotedStr('*'));
  • AdoQuery1.Open;
  • end;
  • procedure TForm1.Button3Click(Sender: TObject);
  • Var
  • Chaine : String;
  • Date : TDateTime;
  • Year,Month,Day : Word;
  • Hour,Min,Sec,MSec : Word;
  • begin
  • Date := StrToDateTime('11/11/2007 11:09:05');
  • DecodeDate (Date,Year,Month,Day);
  • DecodeTime (Date,Hour,Min,Sec,MSec);
  • // FONCTIONNE AdoQuery1.SQL.Clear;
  • // FONCTIONNE AdoQuery1.SQL.Add('Select * From TableTest Where ChampDate=#03/03/2007#');
  • AdoQuery1.SQL.Clear;
  • // INFO FORUM WHERE (Cdate(checktime) = Date()) And Hour(checktime) > 11 And Minute(checktime) > 11 And Second(checktime) > 43;
  • // Marche pas AdoQuery1.SQL.Add('Select * From TableTest Where ChampDate=#11/11/2007 11:09:05#');
  • // FONCTIONNE AdoQuery1.SQL.Add('Select * From TableTest Where (Int(ChampDate)=#11/11/2007#)');// And Hour(ChampDate)>11');
  • // FONCTIONNE AdoQuery1.SQL.Add('Select * From TableTest Where (Int(ChampDate)=#11/11/2007#) And (Hour(ChampDate)=11)');
  • // FONCTIONNE AdoQuery1.SQL.Add('Select * From TableTest Where (Int(ChampDate)=#11/11/2007#) And (Hour(ChampDate)=11) And (Minute(ChampDate)=09)And (Second(ChampDate)=05)');
  • AdoQuery1.SQL.Add('Select * From TableTest Where (Int(ChampDate)=#'+
  • IntToStr(Day)+'/'+
  • IntToStr(Month)+'/'+
  • IntToStr(Year)+'#)'+
  • 'And (Hour(ChampDate)='+IntToStr(Hour)+') '+
  • 'And (Minute(ChampDate)='+IntToStr(Min)+')'+
  • 'And (Second(ChampDate)='+IntToStr(Sec)+')');
  • AdoQuery1.Open;
  • end;
  • procedure TForm1.Button4Click(Sender: TObject);
  • begin
  • AdoQuery1.SQL.Clear;
  • AdoQuery1.SQL.Add('Select * From TableTest ' +
  • 'Where ((Int(ChampDate)>#10/10/2007#) And ' +
  • '(Int(ChampDate)<#12/11/2007#)) Or ' +
  • '(Int(ChampDate)=#10/10/2007#) Or ' +
  • '(Int(ChampDate)=#12/10/2007#)');
  • AdoQuery1.Open;
  • end;
  • end.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ADODB, DB, Grids, DBGrids, StdCtrls;

type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Pour fonctionner directement il faut que la requete soit active : Miscellaneous Active TRUE



procedure TForm1.Button1Click(Sender: TObject);
begin
 AdoQuery1.SQL.Clear;
 AdoQuery1.SQL.Add('Select * From TableTest Where ChampTXT='+QuotedStr('TEST1'));
 AdoQuery1.Open;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 AdoQuery1.SQL.Clear;
 AdoQuery1.SQL.Add('Select * From TableTest');// Where ChampTXT='+QuotedStr('*'));
 AdoQuery1.Open;
end;

procedure TForm1.Button3Click(Sender: TObject);
Var
  Chaine : String;
  Date   : TDateTime;
  Year,Month,Day : Word;
  Hour,Min,Sec,MSec : Word;

begin
 Date := StrToDateTime('11/11/2007 11:09:05');
 DecodeDate (Date,Year,Month,Day);
 DecodeTime (Date,Hour,Min,Sec,MSec);

 // FONCTIONNE AdoQuery1.SQL.Clear;
 // FONCTIONNE AdoQuery1.SQL.Add('Select * From TableTest Where ChampDate=#03/03/2007#');
 AdoQuery1.SQL.Clear;
 // INFO FORUM WHERE (Cdate(checktime) = Date()) And Hour(checktime) > 11 And Minute(checktime) > 11 And Second(checktime) > 43;
 // Marche pas AdoQuery1.SQL.Add('Select * From TableTest Where ChampDate=#11/11/2007 11:09:05#');
 // FONCTIONNE AdoQuery1.SQL.Add('Select * From TableTest Where (Int(ChampDate)=#11/11/2007#)');// And Hour(ChampDate)>11');
 // FONCTIONNE AdoQuery1.SQL.Add('Select * From TableTest Where (Int(ChampDate)=#11/11/2007#) And (Hour(ChampDate)=11)');
 // FONCTIONNE AdoQuery1.SQL.Add('Select * From TableTest Where (Int(ChampDate)=#11/11/2007#) And (Hour(ChampDate)=11) And (Minute(ChampDate)=09)And (Second(ChampDate)=05)');
 AdoQuery1.SQL.Add('Select * From TableTest Where (Int(ChampDate)=#'+
    IntToStr(Day)+'/'+
    IntToStr(Month)+'/'+
    IntToStr(Year)+'#)'+
    'And (Hour(ChampDate)='+IntToStr(Hour)+') '+
    'And (Minute(ChampDate)='+IntToStr(Min)+')'+
    'And (Second(ChampDate)='+IntToStr(Sec)+')');

 AdoQuery1.Open;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
 AdoQuery1.SQL.Clear;
 AdoQuery1.SQL.Add('Select * From TableTest ' +
 'Where ((Int(ChampDate)>#10/10/2007#) And ' +
 '(Int(ChampDate)<#12/11/2007#)) Or ' +
 '(Int(ChampDate)=#10/10/2007#) Or ' +
 '(Int(ChampDate)=#12/10/2007#)');

 AdoQuery1.Open;
end;

end.

 Conclusion

J'espére que ce source servira à ceux qui comme moi on galérait pour trouver un fonctionnement plus ou moins sympatique entre Delphi

Comme c'est mon premier source pardon pour les écarts avec la régle.
Je ferais mieux la prochaine fois.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   BaseAccess
    • DataBase.mdbTélécharger ce fichier [Réservé aux membres club]147 456 octets
    • Project1.bdsprojTélécharger ce fichier [Réservé aux membres club]8 475 octets
    • Project1.bdsproj.localTélécharger ce fichier [Réservé aux membres club]902 octets
    • Project1.cfgTélécharger ce fichier [Réservé aux membres club]Voir ce fichier492 octets
    • Project1.dprTélécharger ce fichier [Réservé aux membres club]Voir ce fichier188 octets
    • Project1.resTélécharger ce fichier [Réservé aux membres club]4 396 octets
    • Unit1.dcuTélécharger ce fichier [Réservé aux membres club]6 936 octets
    • Unit1.dfmTélécharger ce fichier [Réservé aux membres club]2 157 octets
    • Unit1.pasTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 959 octets

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture STOCKEUR CODE SOURCE par PythonGreg
Source avec Zip Source avec une capture EXEMPLE UTILISATION DBGRID par HAFTARIFOUAD
Source avec Zip EXPORTE TABLE VER EXCEL par apcmorsott
Source avec Zip Source avec une capture BAK_RESORT POUR SGBD INTERBASE par solitair
Source avec Zip Source avec une capture GESTION DES CODE POSTAUX AVEC UNE BASE ACCESS par AlexFr23

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture FIREMONKEY : PATHDATA ET FORMAT SVG par Christophe67
Source avec Zip Source avec une capture FIREMONKEY : ROTATION CUBE par Christophe67
Source avec Zip Source avec une capture MOTEUR PHYSIQUE 2D CHIPMUNK.. EN DELPHI! par Bacterius
Source avec Zip Source avec une capture EXEMPLE UTILISATION DBGRID par HAFTARIFOUAD
Source avec Zip Source avec une capture TRI PAR SIMPLE CLICK ET FILTRE PAR DATE DANS UN DBGRID par braWeb

Commentaires et avis

Commentaire de yvessimon le 03/12/2007 09:11:53

Bonjour,

Bon exemple ACCESS avec SQL

Par contre initialiser  ADOConnection1.ConnectionString à l'exécution si la base access existe
Ce qui permet en plus de chamger de base ACCESS.
Voir pour cela mon exemple avec excel.
redimentionner la dggrille afin qu'elle soit lisible dbgrid1.Columns[i].width := 1...

Salutations

Commentaire de cantador le 05/12/2007 19:00:49 administrateur CS

Salut aghtor,

C'est un exercice sur les requêtes SQL ACCESS..
Il y a bcp de tutos à ce sujet un peu partout sur le net..
Le mieux est encore d'utiliser des requêtes paramétrées :
"Where ChampDate =:param"
AdoQuery1.ParamByName('param').Value := DonneeDateHeure;
ce qui offre un traitement plus aisé des données et une simplification du SQL..
et peut-être même un poil de rapidité en plus à l'exécution..

Commentaire de kahloch le 01/02/2008 01:03:39 7/10

tres bien

Commentaire de vrachid le 12/12/2009 09:27:56

bonjour à tous,
j'ai le même probleme de filtrage par date dans requete sql,
j'ai essayé la solution proposé par cantador, mais sans résultat, je reçois toujours un message d'erreur indiquant paramètre introuvable ('param') que j'ai créé sur l'AdoQuery
par contre quand je met deux paramètre et j'utilise la requete BETWEEN :parm1 and param2, ça marche.

voici le code qui fonctionne:
begin
Close;
SQL.Clear;
SQL.Add('SELECT * From recette where Date BETWEEN :Date1 and :Date2');
Parameters.ParseSQL(QrCaisse.SQL.Text, True);
Parameters.ParamByName('Date1').Value:=DateTimePicker1.Date;
Parameters.ParamByName('Date2').Value:=DateTimePicker2.Date;
Open;
ExecSql;
end;

et celui qui ne fonctionne pas
begin
Close;
SQL.Clear;
SQL.Add('SELECT * From recette where Date :=Date1');
Parameters.ParseSQL(QrCaisse.SQL.Text, True);
Parameters.ParamByName('Date1').Value:=DateTimePicker1.Date;
Open;
ExecSql;
end;

merci pour votre aide.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Probleme access & DELPHI [ par dede_367 ] Bonjour,J'ai un probleme concernant delphi et access sur le format de la date.Voici le code :beginQ1.Close;Q1.SQL.Clear;Q1.sql.add('SELECT COUNT(refop Création d'une table dans access via DELPHI [ par yvessimon ] Bonjour,Ma base de donnée sous ACCESS est gérée avec DELPHI.Dans cette base de données ACCESS je souhaite ajouter une colonne à ma table via DELPHI.Es Access excel table delphi [ par rachid_fes ] bonjourjj espere que je trouve un coup de poussevoila je cherche une methode qui permet de prentre ma table ou dbgrid et l envoyer en access et excel projet delphi -> access = impossible !!! [ par picolo5 ] Salut !J' ai fait un projet sous delphi qui utilise une dll de communicatons avec un materiel spécifique.cette dll s'occupe du dialogue tcp/ip, elle e delphi&access [ par tchen ] Salut, j'ai une merde.. J'ai dans un dblookupcombobox qui contient la liste de medecin et un composant DTpicker pour la date, le but c'est d'afficher Effectuer plusieurs filtrages dans un DBGrid [ par DGPat ] Bonjour,Je voudrais éffectuer plusieurs filtrages dans un DBGridVoici ma méthode pour filtrer ma table Paradox dans un DBGridprocedure TFmFactC.Edit4C Installer un prog Delphi 5 et base Access avec InstallShield [ par timeplus ] Bonjour,Je sais que le sujet a déjà fait l'objet de questions et de réponses mais je n'ai pas encore trouvé le truc pour me dépanner.Je voudrais insta GESTION DU SON AVEC DELPHI : RECHERCHE D'UN FILTRE DE FREQUENCE [ par jamy02 ] Merci &#224; KENAVO qui m'a donn&#233; l'adresse d'un composant WaveIn qui m'a permis de g&#233;rer unnWavedans Delphi.En creusant au niveau du compos Probleme DBGrid Delphi selection cellule [ par xeben ] Saloute tlm, voila j'ai une appli a faire en Delphi et j'ai un ptit probleme avec un DBgrid: je me demandais s'il etait possible d'associer un evenne


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales