2016-03-02 1 views
-1

J'ai récemment créé un DBGrid "Client" très basique qui affiche des informations à partir d'une base de données Access (connectée avec ADOQuery, DataSource, ADOConnection et ADOTable). Je voudrais savoir s'il y a un moyen que je peux rechercher des enregistrements spécifiques (comme juste un nom) et ajouter la table de «paiement» de cet enregistrement et l'indiquer dans un mémo quand j'appuie sur un bouton.Comment puis-je rechercher des valeurs dans un DBGrid et les utiliser pour une équation?

J'ai cherché de l'aide au loin et je ne pouvais pas trouver quelque chose de logique, ce peut être une question stupide à quelqu'un qui est un expert, mais je trouve cela très difficile, alors s'il vous plaît soyez gentil.

+1

Vous ne recherchez pas dans le DBGrid. Vous effectuez une recherche dans la table ou la requête connectée à la grille à l'aide de la méthode Locate de la table ou de la requête. Je n'ai aucune idée de ce que vous entendez par * ajouter le tableau "Paiement" de cet enregistrement ensemble et le montrer dans un mémo *. Le fichier d'aide contient des didacticiels sur la façon de rechercher des données dans un ensemble de données. Avez-vous regardé là? –

+0

Ce que dit @KenWhite. Plus: Lequel de vos ensembles de données est connecté à la grille? Et votre AdoQuery sélectionne-t-il des enregistrements à partir d'une seule table ou de tables jointes? – MartynA

+0

Je veux dire les montants qui sont affichés pour la personne que j'ai recherchée devraient être ajoutés ensemble (Comme paiement + paiement) ceux-ci sont dans le dbgrid. Et quand j'appuie sur un bouton, il regarde ce que j'ai cherché et affiche (cependant, dans un mémo ou un showmessage ou ecs.) Que cette personne a payé un montant total. Je ne sais pas comment faire ça, j'ai cherché de l'aide mais ils m'ont dit que j'avais besoin d'un datamodule qui rendrait cela beaucoup plus compliqué pour une tâche simple. –

Répondre

0

La recherche doit être effectuée via les méthodes ADOTable Locate(). Si vous utilisez ADOQuery, vous pouvez également réécrire SQL pour la recherche (ne pas oublier de protéger contre les injections et utiliser des paramètres si possible) Si vous avez besoin d'afficher des informations supplémentaires en appuyant sur un bouton - obtenir la valeur de clé nécessaire d'AdoTable comme paramètre pour une requête dépendante

1

Je n'ai pas très bien compris votre question, je vous demande d'identifier votre problème et d'expliquer précisément pour nous faciliter la tâche.

recherche un nom -Pour client dans le tableau est la suivante:

If Not ADOTable1.Locate('Name',Edit1.Text,[]) then 
    MessageDlg('The customer does not exist !',mtInformation,[mbOK],0); 

Localiser Options: loCaseInsensitive, loPartialKey.

Vous pouvez également effectuer une recherche par ADOQuery Voici un exemple:

ADOQuery1.Close; 
ADOQuery1.SQL.Text := 'Select * From YourTable Where Name ='+QuotedStr(Edit1.Text); 
ADOQuery1.Open; 

Ou vous pouvez utiliser ADOQuery Paramètres Comme ceci:

ADOQuery1.Close; 
ADOQuery1.Parameters.ParamByName('Term').Value:=Edit1.Text; 
ADOQuery1.SQL.Text := 'Select * From YourTable Where Name=:Term'; 
ADOQuery1.Open; 

Bonne chance.