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

用ADO動態連結Access檔

尚未結案
homony
一般會員


發表:7
回覆:9
積分:3
註冊:2004-02-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-25 01:10:55 IP:218.165.xxx.xxx 未訂閱
我用ADO動態連結Access檔 ,可是一直出現"認證失敗"的訊息 程式碼如下 : OpenDialog1->Execute(); ADODataSet1->Connection = ADOConnection1; ADODataSet1->ConnectionString = WideString( AnsiString("Provider=Microsoft.Jet.OLEDB.4.0;") AnsiString("Data Source=") OpenDialog1 ->FileName AnsiString(";Mode=ReadWrite;Persist Security Info=False") ); ADOConnection1->GetTableNames(ComboBox1->Items,false); ComboBox1->ItemIndex = 0; ADODataSet1->CommandText = WideString(ComboBox1->Items->Strings[ComboBox1->ItemIndex]); ADODataSet1->Open(); 據我所知,ADOdataSet的 CommandText , ConnectionString 有值 ,應該就可以驗證成功的,不過試了很多次都還是一樣 想請問關於驗證成敗與否 , 還有什麼原因嗎 ? 後來用ADOTable 這個元件就可以了 OpenDialog1->Execute(); /*Excel ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" OpenDialog1->FileName ";Mode=ReadWrite;Extended Properties=excel 8.0;Persist Security Info=False"; */ ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=" OpenDialog1>FileName ";Mode=ReadWrite;Persist Security Info=False"; ADOConnection1->GetTableNames(ComboBox1->Items,false); ComboBox1->ItemIndex = 0; ADOTable1->TableName = ComboBox1->Items->Strings[ComboBox1->ItemIndex]; ADOConnection1->Open(); ADOTable1->Open(); ADOTable1->GetFieldNames(ListBox1->Items); 不過還是不知道原因, 有人知道ㄇ. ? thx ... 發表人 - homony 於 2004/02/25 09:47:42
tech_state
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-25 17:54:18 IP:61.221.xxx.xxx 未訂閱
homony, 您好 試不出您說的情形, 可否提供您完整的Project及Access檔案測試? 若願意可將資料上傳至[會員求助程式檔案上傳區] http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
erosme
初階會員


發表:5
回覆:44
積分:29
註冊:2002-12-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-26 00:06:46 IP:218.166.xxx.xxx 未訂閱
Dear Homony,    你將程式改成這樣試試看. OpenDialog1->Execute(); ADOConnection1->ConnectionString = WideString( AnsiString("Provider=Microsoft.Jet.OLEDB.4.0;") AnsiString("Data Source=") OpenDialog1->FileName AnsiString(";Mode=ReadWrite;Persist Security Info=False") ); ADOConnection1->GetTableNames(ComboBox1->Items,false); ComboBox1->ItemIndex = 0; ADODataSet1->CommandText = "select * from " ComboBox1->Items->Strings[ComboBox1->ItemIndex]; ADODataSet1->Connection = ADOConnection1; ADODataSet1->Open();
homony
一般會員


發表:7
回覆:9
積分:3
註冊:2004-02-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-26 02:58:06 IP:218.165.xxx.xxx 未訂閱
謝謝大大的指教^_^ , 照著改就ok了 ,感覺上設定Property有一定的順序
homony
一般會員


發表:7
回覆:9
積分:3
註冊:2004-02-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-26 03:00:16 IP:218.165.xxx.xxx 未訂閱
引言: homony, 您好 試不出您說的情形, 可否提供您完整的Project及Access檔案測試? 若願意可將資料上傳至[會員求助程式檔案上傳區] http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97 謝謝你^_^ 我已經上傳了 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
tech_state
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-26 12:02:28 IP:61.221.xxx.xxx 未訂閱
引言: OpenDialog1->Execute(); ADODataSet1->Connection = ADOConnection1; ADODataSet1->ConnectionString = WideString( AnsiString("Provider=Microsoft.Jet.OLEDB.4.0;") AnsiString("Data Source=") OpenDialog1 ->FileName AnsiString(";Mode=ReadWrite;Persist Security Info=False") ); ADOConnection1->GetTableNames(ComboBox1->Items,false); ComboBox1->ItemIndex = 0; ADODataSet1->CommandText = WideString(ComboBox1->Items->Strings[ComboBox1->ItemIndex]); ADODataSet1->Open();
homony, 您好 未看您的Project之前,覺得紅色與綠色部分矛盾。 看過您的Project之後,發現您的ADOConnection1完全沒有設定connection的資料,所以才會造成在藍色部分出現"驗證失敗"的訊息。 除了erosme的寫法外,將紅色部分改為
ADOConnection1->ConnectionString = ADODataSet1->ConnectionString;
然後,放到藍色部分之前,如此應該也可以達到您的需求。 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
系統時間:2024-04-29 21:13:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!