Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DELPHI ET ACCESS /DBGRID


Information sur la source

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é: 10 999 / 1 812

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
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

Pour les "Membres Club", vous pouvez 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

Commentaires et avis

signaler à un administrateur
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

signaler à un administrateur
Commentaire de cantador le 05/12/2007 19:00:49

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

signaler à un administrateur
Commentaire de kahloch le 01/02/2008 01:03:39 7/10

tres bien

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 vrachid ] bonjour à touspouvez vous me dire pq je n'arrive pas créer une table access avec le module de base de donnée il me demande tj un user et un mot de pas 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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.