線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:884
推到 Plurk!
推到 Facebook!

如何取得DBGrid的sheetName

尚未結案
homony
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-19 13:34:31 IP:218.165.xxx.xxx 未訂閱
我是用DataSet來開啟Excel file,然後用DBGrid顯示出來,想問說要怎麼得到DBGrid的sheetName呢? 要取得Excel file的sheetName有更好的方法嗎 ?
erosme
初階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-19 21:44:03 IP:218.166.xxx.xxx 未訂閱
你好, 首先你需先加入兩個 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-20 02:28:52 IP:163.28.xxx.xxx 未訂閱
ADOSET = ADOSET MainForm->OpenDialog->FileName.c_str() ; MainForm->OpenDialog 怎麼做呢查MainForm 沒有opendialog這項
erosme
初階會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-20 13:22:40 IP:61.62.xxx.xxx 未訂閱
Dear Homony, 抱歉, MainForm->OpenDialog->FileName.c_str() 指的是你的excel file name.
homony
一般會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-22 20:16:55 IP:218.165.xxx.xxx 未訂閱
以下是我寫的程式碼 #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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-23 00:09:15 IP:218.166.xxx.xxx 未訂閱
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 . 若沒顯示認何訊息,則表示沒問題 .
系統時間:2024-04-29 19:54:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!