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

讀取Excel檔案,某些欄位值卻是空白?

尚未結案
foxelf
初階會員


發表:9
回覆:42
積分:30
註冊:2003-03-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-09 04:11:03 IP:219.84.xxx.xxx 未訂閱
各位大大 我使用ADOConnection1連結Excel,使用ADOQuery去讀取Excel檔案,但是我發現在DBGrid裡面有某幾個欄位的資料卻是空的,我開啟Excel檔案去查確實是有資料的,不知道這是什麼原因導致資料讀不進去,要如何解決? 小弟用的是DELPHI7,Excel 無法讀取到資料的欄位內全變成空白值,以下是小弟連結EXCEL的程式碼 try ADOConnection1.Connected :=False ; ADOConnection1.Close; ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;' 'Data Source=' Opendialog1.FileName ';Mode=ReadWrite|Share Deny None' ';Extended Properties=IMEX=2' ';Excel 8.0;Persist Security Info=False'; ADOConnection1.Connected := True ; except raise Exception.Create('檔案開啟錯誤,請檢查檔案名稱或格式是否錯誤!'); end ; Sheet:=ListBox1.Items.Strings[iSheet]; //抓Sheet ADOQuery1.ConnectionString :=ADOQuery_ConnectionString; StrSql := 'Select * From [' Sheet ']' ; ADOQuery1.Active := False; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(StrSql); ADOQuery1.Active := True;
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-09 09:07:09 IP:202.62.xxx.xxx 未訂閱
您好﹗    試試如下紅色處﹕ try ADOConnection1.Connected :=False ; ADOConnection1.Close; ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+ 'Data Source='+Opendialog1.FileName+ ';Mode=ReadWrite|Share Deny None'+ ';Extended Properties=IMEX=1'+ ';Excel 8.0;Persist Security Info=False'; ADOConnection1.Connected := True ; except raise Exception.Create('檔案開啟錯誤,請檢查檔案名稱或格式是否錯誤!'); end ; Sheet:=ListBox1.Items.Strings[iSheet]; ADOQuery1.ConnectionString :=ADOQuery_ConnectionString; StrSql := 'Select * From ['+Sheet+']' ; ADOQuery1.Active := False; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(StrSql); ADOQuery1.Active := True; ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
foxelf
初階會員


發表:9
回覆:42
積分:30
註冊:2003-03-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-09 10:10:23 IP:61.218.xxx.xxx 未訂閱
感謝cashxin2002大大 改了設定值之後,就可以讀的到資料,但是在程式的最後我會UPDATE一些欄位,若改了設定就不能UPDATE了,出現了運作必須使用更新查詢的錯誤訊息,我也試過EDIT跟UPDATE語法,都會出現同樣的訊息
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-09 12:08:19 IP:202.62.xxx.xxx 未訂閱
您好﹗    改成這樣試試﹕ try ADOConnection1.Connected :=False ; ADOConnection1.Close; ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+ 'Data Source='+Opendialog1.FileName+ ';Mode=ReadWrite|Share Deny None'+ ';Extended Properties=IMEX=1'+ ';Excel 8.0;Persist Security Info=False'; ADOConnection1.Connected := True ; except raise Exception.Create('檔案開啟錯誤,請檢查檔案名稱或格式是否錯誤!'); end ;    Sheet:=ListBox1.Items.Strings[iSheet]; ADOQuery1.ConnectionString :=ADOQuery_ConnectionString;  StrSql := 'Select * From [Sheet$]' ; ADOQuery1.Active := False; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(StrSql); ADOQuery1.Active := True; ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
foxelf
初階會員


發表:9
回覆:42
積分:30
註冊:2003-03-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-09 13:19:01 IP:61.218.xxx.xxx 未訂閱
cashxin2002大大    Sheet是我的變數select是沒問題的,;Extended Properties=IMEX=1,可讀取到所有的欄位資料,但卻沒辦法update excel,改成;Extended Properties=IMEX=2,讀取excel的資料會不完整,卻可以update,這真的讓我很傷腦筋
shunaarom
一般會員


發表:8
回覆:34
積分:18
註冊:2003-07-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-11 00:41:37 IP:220.134.xxx.xxx 未訂閱
改成這樣試試~StrSql := 'Select * From [''' Sheet ''']'; ~進步~ 別人問題~將是我問題~ 決解問題~ 再邁向更頂尖~
foxelf
初階會員


發表:9
回覆:42
積分:30
註冊:2003-03-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-14 22:27:54 IP:219.84.xxx.xxx 未訂閱
引言: 改成這樣試試~StrSql := 'Select * From [''' Sheet ''']'; ~進步~ 別人問題~將是我問題~ 決解問題~ 再邁向更頂尖~
如果改用大大的方式 則會出現Microsoft Jet資料庫引擎,無法找到"inport$"物件的錯訊息。
系統時間:2024-06-24 20:48:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!