2016-03-02 65 views
-1

我最近做了一個非常基本的「客戶端」DBGrid,它顯示來自Access數據庫(連接ADOQuery,DataSource,ADOConnection和ADOTable)的信息。我想知道是否有一種方法可以搜索特定記錄(例如名稱),並將該記錄的「付款」表添加到一起,並在按下按鈕時將其顯示在備忘錄中。如何搜索DBGrid中的值並將它們用於等式?

我已經尋求幫助的範圍很廣,我找不到任何合乎邏輯的東西,對某位專家來說這可能是一個愚蠢的問題,但我覺得這非常困難,所以請善待。

+1

您不在DBGrid中搜索。您使用該表或查詢的Locate方法在連接到網格的表或查詢中進行搜索。我不知道你的意思是*將該記錄的「付款」表一起添加並在備忘錄*中顯示。幫助文件包含有關如何在數據集中搜索數據的教程。你看過那裏嗎? –

+0

@KenWhite說什麼。 Plus:你的哪個數據集連接到網格?您的AdoQuery是從單個表格還是連接表格中選擇記錄? – MartynA

+0

我的意思是爲我搜索的人顯示的數額應該加在一起(如付款+付款)這些都在dbgrid中。當我按下按鈕時,它會查看我搜索並顯示的內容(但是,在備忘錄或showmessage或ecs中)此人已支付了總額。我不知道該怎麼做,我尋求幫助,但他們說我需要一個datamodule,這使得這個任務變得更加複雜。 –

回答

0

搜索應通過ADOTable方法Locate()完成。 如果您使用ADOQuery,您也可以重新編寫SQL進行搜索(如果可能,請不要忘記注入並使用參數) 如果您需要在按下按鈕時顯示一些額外信息 - 從AdoTable獲取所需的鍵值並應用作爲相關查詢的參數

1

我沒有很好地理解您的問題,我請您確定您的問題並正確解釋,以便我們更容易地幫助您。

爲表中的客戶名稱 - 要搜索如下:

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

定位選項:loCaseInsensitive,loPartialKey。

您還可以通過ADOQuery這裏搜索是一個例子:

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

或者你可以使用ADOQuery參數就像這樣:

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

好運。

相關問題