用ADO動態連結Access檔 |
尚未結案
|
homony
一般會員 發表:7 回覆:9 積分:3 註冊:2004-02-07 發送簡訊給我 |
我用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 發送簡訊給我 |
homony, 您好
試不出您說的情形,
可否提供您完整的Project及Access檔案測試?
若願意可將資料上傳至[會員求助程式檔案上傳區]
http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97 =================================
涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。
是非終日有,不聽自然無
天下本無事,庸人自擾之
|
erosme
初階會員 發表:5 回覆:44 積分:29 註冊:2002-12-23 發送簡訊給我 |
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 發送簡訊給我 |
|
homony
一般會員 發表:7 回覆:9 積分:3 註冊:2004-02-07 發送簡訊給我 |
引言: homony, 您好 試不出您說的情形, 可否提供您完整的Project及Access檔案測試? 若願意可將資料上傳至[會員求助程式檔案上傳區] http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97 謝謝你^_^ 我已經上傳了 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之 |
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
引言: 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;然後,放到藍色部分之前,如此應該也可以達到您的需求。 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |