如何取得DBGrid的sheetName |
尚未結案
|
homony
一般會員 發表:7 回覆:9 積分:3 註冊:2004-02-07 發送簡訊給我 |
|
erosme
初階會員 發表:5 回覆:44 積分:29 註冊:2002-12-23 發送簡訊給我 |
你好, 首先你需先加入兩個 vcl "TADOConnection","TListBox"在你的Form.
然後在程式裏加入以下片段. #define ADOSET ADOConnection1->ConnectionString ADOSET = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=excel 8.0";
ADOSET = ADOSET ";Mode=Read;Persist Security Info=False;Data Source=";
ADOSET = ADOSET MainForm->OpenDialog->FileName.c_str() ; ADOConnection1->LoginPrompt = false ;
ADOConnection1->Connected = true ;
ADOConnection1->GetTableNames (ListBox1->Items,true); 其SheetName 最後會放入 ListBox .
|
homony
一般會員 發表:7 回覆:9 積分:3 註冊:2004-02-07 發送簡訊給我 |
|
erosme
初階會員 發表:5 回覆:44 積分:29 註冊:2002-12-23 發送簡訊給我 |
|
homony
一般會員 發表:7 回覆:9 積分:3 註冊:2004-02-07 發送簡訊給我 |
以下是我寫的程式碼
#define ADOSET ADOConnection1->ConnectionString
void __fastcall TForm1::FormActivate(TObject *Sender)
{
ADODataSet1->Open();
if(OpenDialog1->Execute())
{
ADOSET = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=excel 8.0";
ADOSET = ADOSET ";Mode=Read Write;Persist Security Info=False;Data Source=";
ADOSET = ADOSET filename.c_str();
ADOConnection1->LoginPrompt = false ;
ADOConnection1->Connected = true ; ADOConnection1->GetFieldNames("客戶",ListBox1->Items);
}
}
在 ADOConnection1->Connected = true ; 的地方會出錯 , 訊息是
物件開啟時不允許操作,
Trace發現錯誤是發生在ADODB 裡面的ConnectionObject.ConnectionString := Value; 都一直無法解決說
|
erosme
初階會員 發表:5 回覆:44 積分:29 註冊:2002-12-23 發送簡訊給我 |
Dear Homony, 我再次確認發現有一個小錯誤, Mode=Read Write 變更為 Mode=ReadWrite 不能有空白. 若還是不行則可以將 ADOSET = ADOSET filename.c_str();
變更為 ADOSET = ADOSET OpenDialog1->FileName.c_str() ;
或是先用直接指定方式測試有無問題.
例 : ADOSET = ADOSET "D:\\TEST.XLS" ; 另一種方法是直接將COMMAND key in 在 TADOConnection 的ConnectionString 的欗位,然後 LoginPrompt 設為 false , 最後 connected 設為 true .
若沒顯示認何訊息,則表示沒問題 .
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |