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

EXCEL 用 ADO 讀取日期欄

缺席
cwc65536
初階會員


發表:47
回覆:121
積分:48
註冊:2004-10-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-05 01:37:07 IP:203.203.xxx.xxx 未訂閱
ADOquery 搭配 dbGrid 去讀EXCEL 檔案, 碰到一個問題 有一欄是日期 當內容是 2005/10/4 則用 ADOquery 讀入後, 在用 dbGrid, 資料正確 當內容多一個點 '2005/10/4 , 在 dbGrid 中不會出現內容, 變空字串 請問該從何下手解決 ? 感恩 !
cashxin2002
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-05 08:58:41 IP:202.62.xxx.xxx 未訂閱
您好﹗    試試這樣﹕ 將連線字串中的擴展延伸屬性(Extended Properties)設定為﹕ Excel 8.0;IMEX1=1 IMEX=1的作用是內定值把所有資料轉為文字形態 ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
cwc65536
初階會員


發表:47
回覆:121
積分:48
註冊:2004-10-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-05 13:58:30 IP:203.203.xxx.xxx 未訂閱
  S:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=' edit1.text ';Mode=Share Deny None;Extended Properties=IMEX=1;Excel 8.0;IMEX1=1;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";';
  S:=S 'Jet OLEDB:Engine Type=35;Jet OLEDB:Dat';
  ADOConnection1.ConnectionString:=S;
  ADOConnection1.Connected :=true;
我把 IMEX1=1 加上, 可是無效 不知有否放錯地方了嗎 ? 再確認一次: 問題應該出在 EXCEL 的來源, 該欄 EXCEL 自動認定是 date type, 但是 User 有時會在前面加上 ' 引號, 要求 EXCEL 把他當成 string type 所以轉換時才會發生誤會. 另外, 就我的觀察, 資料到 dbGrid 後, 一律變成 string type 了. 因為, 我都是用 dbGrid1[0].text 去讀取的.
cashxin2002
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-05 18:01:01 IP:202.62.xxx.xxx 未訂閱
您好﹗    請參考如下連接試試﹕ http://delphi.ktop.com.tw/topic.php?topic_id=55692 http://delphi.ktop.com.tw/topic.php?topic_id=38523 http://delphi.ktop.com.tw/topic.php?topic_id=76453    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
cwc65536
初階會員


發表:47
回覆:121
積分:48
註冊:2004-10-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-11-06 01:33:53 IP:203.203.xxx.xxx 未訂閱
感恩 !    仔細一看, 我一開始就沒弄錯 : IMEX1=1;excel 8.0 都正確 其實這個用法, 也是在 KTop 學來的.    指引的三個超連結, 講的也都是 IMEX1 , 真的, 還是沒解決耶 !    我的問題是 : EXCEL 檔中, 有一欄 2005/10/3 讀得到, '2005/10/3 讀不到 資料是日期, 不是文數字, 也不是字串 ! 需要將 EXCEL 上傳嗎 ?
kartan_01
一般會員


發表:42
回覆:60
積分:20
註冊:2004-12-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-07 10:09:57 IP:61.221.xxx.xxx 未訂閱
請問是不是一串資料前面是2005/10/3 讀不到是'2005/10/3 你可以試試把'2005/10/3 放在第一筆 2005/10/3會變成讀不到....這是我碰到的問題 只好要求使用者統一格式
cwc65536
初階會員


發表:47
回覆:121
積分:48
註冊:2004-10-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-11-07 12:37:37 IP:203.203.xxx.xxx 未訂閱
kartan_01 給我的啟示, 測試如下 :    1. 把有 引號 的記錄, 放第一筆 將該欄所有儲存格設成 (1).日期 , 第一種 2001/3/14 => 2005/10/4 變 e/10/4 .... 不正確 (2).日期 , 第二種 2001/3/14 => 2005/10/4 變 2005/10/4 .... 正確 (3).日期 , *2001/3/14 => 2005/10/4 變 2005/10/4 .... 正確    2. 第一筆沒有放 引號 將該欄所有儲存格設成 (1).日期 , 第一種 2001/3/14 => 2005/10/4 變 空白 .... 不正確 (2).日期 , 第二種 2001/3/14 => 2005/10/4 變 空白 .... 不正確 (3).日期 , *2001/3/14 => 2005/10/4 變 空白 .... 不正確    所以, 要求 User 一定要讓 第一行, 一定要加 ' 引號 !! 難道, 程式無法識別處理嗎 ? 又或者, 可以讓程式去插入一筆資料到 EXCEL 第一筆, 讀進後, 再濾掉 ! 那, 請問
系統時間:2024-08-22 0:34:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!