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

為何用ado 連ms access不能使用replace 的函數?

尚未結案
chris
一般會員


發表:1
回覆:10
積分:2
註冊:2002-09-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-26 09:51:02 IP:61.57.xxx.xxx 未訂閱
各位大大: 小弟有一個問題請教,我在access可以 用以下指令: SELECT replace(開始時間,'12:','00:') AS a, * FROM 行事曆 其中的(開始時間)是文字,但我用adoquery用以 下指令時, 卻出現”運算式中未定義replace的函數”error, 不知是什麼原因? 謝謝!
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-26 16:09:08 IP:61.221.xxx.xxx 未訂閱
引言: SELECT replace(開始時間,'12:','00:') AS a, * FROM 行事曆
更改成... CommandText:=SELECT replace(開始時間,''12:'',''00:'') AS a, * FROM 行事曆
------
======================
昏睡~
不昏睡~
不由昏睡~
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-26 16:23:15 IP:211.74.xxx.xxx 未訂閱
我在Access中見了一個跟你一樣的資料庫... 但是把語法貼上在查詢就不能執行ㄋ... Access可以用REPLACE嗎?? 發表人 - chih 於 2002/11/26 16:46:15
chris
一般會員


發表:1
回覆:10
積分:2
註冊:2002-09-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-26 17:16:39 IP:61.57.xxx.xxx 未訂閱
ko大大,你的意思是不是這樣(找不到你說的CommandText): adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('SELECT replace(開始時間,''12:'',''00:'') AS a, * FROM 行事曆'); adoquery1.Open; 但是同樣不行。 chih大大,我用的是access xp 是可以的。
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-11-26 17:23:19 IP:210.64.xxx.xxx 未訂閱
Access 查詢語法裡確實是不能下達 replace 指令 CHRIS 兄你的需求是要把12點變成00吧
SELECT format((mid(開始時間,1,2) mod 12 ),"00")   mid(開始時間,3) as a from 行事曆
試試看用字串處理吧 噓~~~~~~沉思中… 發表人 - ddy 於 2002/11/26 17:28:38
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-11-26 17:26:59 IP:210.64.xxx.xxx 未訂閱
chris 兄 你用的是Access XP 喔 嗯…也許xp 有這個功能吧 但是為了程式相容性考量…有時候採用看起來比比較笨的方法,反而是最穩定的 噓~~~~~~沉思中…
chris
一般會員


發表:1
回覆:10
積分:2
註冊:2002-09-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-11-26 18:04:21 IP:61.57.xxx.xxx 未訂閱
ddy大大謝謝你, 因為我的日期格式是"am 12:30:00"(文字) 所以我把它改成這樣就可以了: SELECT * from 行事曆 order by left(開始時間,3) format((mid(開始時間,4,2) mod 12 ),"00") right(開始時間,6) 不過我還是不太明白為什麼access可以用replace,但ado不能用! 感謝你
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-11-27 00:44:05 IP:211.74.xxx.xxx 未訂閱
引言: 因為我的日期格式是"am 12:30:00"(文字)
附帶一點,建議時間的表示法,盡量以24hr制,format--HH:nn:ss 這樣子,以做時間做比對或運算時,就不會有混淆的狀況了 噓~~~~~~沉思中…
chris
一般會員


發表:1
回覆:10
積分:2
註冊:2002-09-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-11-27 09:04:16 IP:61.57.xxx.xxx 未訂閱
版主大大: 謝謝你的建議,但事情是這樣的。 access資料庫是由outlook匯出來的 (每星期都要做), 我們天才的ms outlook在匯出行事歷 時,時間欄位居然用文字型態,所以 如果不處理,直接排序的話,當然會 出現如下次序: am 09:00 am 12:00 pm 09:00 pm 12:00 因是文字麻! 但使用者希望出現: am 12:00 am 09:00 pm 12:00 pm 09:00 so,就出現我的問題及解決方法了..... 我們的ms 就是那麼的天才!
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-11-27 10:09:06 IP:147.8.xxx.xxx 未訂閱
引言:版主大大: 謝謝你的建議,但事情是這樣的。 access資料庫是由outlook匯出來的 (每星期都要做), 我們天才的ms outlook在匯出行事歷 時,時間欄位居然用文字型態,所以 如果不處理,直接排序的話,當然會 出現如下次序: am 09:00 am 12:00 pm 09:00 pm 12:00 因是文字麻! 但使用者希望出現: am 12:00 am 09:00 pm 12:00 pm 09:00 so,就出現我的問題及解決方法了..... 我們的ms 就是那麼的天才!
Just wonder whether the format of the string will be affected by the system locale... I would suggest changing the format of date/time to some other formats. If it does depends on the system locale, eiter fixing the locale or modify you program to suit for every combination (it is time consuming of course...), otherwise your client may complain in future...
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-11-27 10:12:55 IP:147.8.xxx.xxx 未訂閱
Just tested on my machine.. Data exported DO follow format defined in system locale... You may have a hard time then... 
系統時間:2024-05-16 11:18:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!