全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1180
推到 Plurk!
推到 Facebook!

使用ADO元件連接Access資料庫??

尚未結案
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-27 02:00:53 IP:219.81.xxx.xxx 未訂閱
1. 我有一個Access資料庫,我想用ADO元件去取得資料庫的內容,使用SQL與法取出我要的欄位資料後,把他秀在我要的Label上...請問這該怎麼做?有比較實際的範例嗎? 2.如果我的Access資料庫是放在其他電腦內,那我該如何去連結到它? * 希望各位幫忙我解決這些問題並給我一些可參考的範例,感激不盡!
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-27 10:38:30 IP:203.204.xxx.xxx 未訂閱
nlj859, 您好 1.可使用ADOQuery元件,將ADOQuery的Connecion屬性設為ADOConnecion, 亦可直接設定ADOQuery的ConnecionString,其方法與第2個解答相同。 取出所要欄位的資料方法如下: ADOQuery->Close(); ADOQuery->SQL->Clear(); ADOQuery->SQL->Text = "select * from TableNmae"; // TableName為您的Table名稱 ADOQuery->Open(); Label->CAption = ADOQuery->FieldByName("FieldName")->AsString; // FieldByName為您的欄位名稱    2.可透過ADOConnection連結,然後其他ADO元件再透過ADOConnection動作, ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Jet OLEDB:Database Password=";  // filename為您的Access路徑    您的兩個問題在本站裡應該都有討論過了, 望您善用本站的搜尋系統, 相信您會得到更多東西。    ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-27 12:28:21 IP:219.81.xxx.xxx 未訂閱
引言: nlj859, 您好 1.可使用ADOQuery元件,將ADOQuery的Connecion屬性設為ADOConnecion, 亦可直接設定ADOQuery的ConnecionString,其方法與第2個解答相同。 取出所要欄位的資料方法如下: ADOQuery->Close(); ADOQuery->SQL->Clear(); ADOQuery->SQL->Text = "select * from TableNmae"; // TableName為您的Table名稱 ADOQuery->Open(); Label->CAption = ADOQuery->FieldByName("FieldName")->AsString; // FieldByName為您的欄位名稱 2.可透過ADOConnection連結,然後其他ADO元件再透過ADOConnection動作, ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" filename ";Jet OLEDB:Database Password="; // filename為您的Access路徑 您的兩個問題在本站裡應該都有討論過了, 望您善用本站的搜尋系統, 相信您會得到更多東西。 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
再請問一下,下面那一句可以直接下條件where xxx=yyy嗎? ADOQuery->SQL->Text = "select * from TableNmae"; 如果再上面SQL已輸入FieldName,那還需不需要用FieldbyName? 或是一定要使用這種來表示? Label->Caption = ADOQuery->FieldByName("FieldName")->AsString; 我都已試過,都還是有問題,不曉得是哪裡有問題了.. 請幫忙一下,謝謝.
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-29 21:22:33 IP:61.62.xxx.xxx 未訂閱
引言: 再請問一下,下面那一句可以直接下條件where xxx=yyy嗎? ADOQuery->SQL->Text = "select * from TableNmae"; 如果再上面SQL已輸入FieldName,那還需不需要用FieldbyName? 或是一定要使用這種來表示? Label->Caption = ADOQuery->FieldByName("FieldName")->AsString; 我都已試過,都還是有問題,不曉得是哪裡有問題了.. 請幫忙一下,謝謝.
Hi, 當然是可以再加上 where 的條件子句沒有問題. 你可以自行試試. SQL 中寫的是 SQL Command , 但你要取用 Dataset 的資料時, 還是要用 FieldByName 的, 這樣才能確認你要的欄位為何, 當然你也可以用陣列的方式來取得也是一樣的, 如: select a1, a2 from tablea where a1>200 and a2>2150 然後使用 ADOQuery1->Fields[0]->AsString 來取得資料和使用 ADOQuery1->FieldByName("a1")->AsString 是一樣地. 另, 你試過都有問題, 請問是什麼樣的問題呢, 可以描述得更完整一點嗎? 這樣有助於解決你的問題.
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-30 20:54:54 IP:163.28.xxx.xxx 未訂閱
hi all, 我有一個access database,裡面有一個名為EqData的table 我在我的application的form上拉上一個ADOConnection和ADOQuery ADOConnection的ConnectionString連到Access資料庫,且經過測試沒問題. ADOQuery的Connection選擇ADOConnection Form上有一Label和Button.我在Button下加入: void __fastcall TForm1::BitBtn1Click(TObject *Sender) { ADOQuery1->Close(); ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Text = "select Current from EqData where Current=0.8"; ADOQuery1->Open(); Label1->Caption = ADOQuery1->FieldByName("Current")->AsString; } 執行後,按下Button,他出現debug的畫面. 不曉得有哪一個步驟有錯誤,可否幫我看一下. 感激不盡/
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-30 21:30:12 IP:203.204.xxx.xxx 未訂閱
nlj859, 您好 1.請問Current的DataType為何? 若為文字,則需在其前後加上單引號, 例如:ADOQuery1->SQL->Text = "select Current from EqData where Current='0.8'";    2.請提供debug畫面的資料或圖片, 以便更了解問題點。    ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-30 21:55:23 IP:163.28.xxx.xxx 未訂閱
你好.. 我的Current是小數,並非字串 我付上我的程式,如附件.
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-30 22:03:20 IP:163.28.xxx.xxx 未訂閱
Sorry,檔案已傳至"上傳檔按問題區". 謝謝.
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-03-31 10:21:37 IP:61.221.xxx.xxx 未訂閱
nlj859, 您好 剛剛查了一下發現, Current是Keyword, 所以才會造成您的SQL語法有誤。 解決方法有二: 1.將Keyword用[]括起來,方式如下: ADOQuery1->SQL->Text = "select Current from EqData where [Current]=0.8";    2.修改資料庫的FieldName,避開Keyword。 例如:將Current改為Currents或是MyCurrent......等等。    ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
系統時間:2024-04-30 12:25:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!