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

請教Access的問題

答題得分者是:william
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-30 22:26:33 IP:210.58.xxx.xxx 未訂閱
我資料庫是用Acces,程式中sql語法如下 with ADODataSet2 do begin Close; CommandText:='select count(wdate) as amount from cust where convert(char(6),wdate,112)= ' '''' edit12.Text ''''; Open; if RecordCount = 0 then ShowMessage('查無資料'); end; 可是再執行時會出現[Microsoft][ODBC Microsoft Access Driver] 運算式中 未定義的convert函數 請問各位前輩我要如何解決呢
ddy
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-30 23:02:47 IP:211.74.xxx.xxx 未訂閱
ACCESS 裡沒有convert 指令 用Format 吧 例: where format(wdate,''yyyy/mm/dd'')='2003/01/30'    你可以查sql server 裡的112 看看是何格式,套進fromat 即可 format 完整的日期時間格式如下:    yyyy/MM/dd HH:nn:ss     =============================================================================== 提醒您,貼錯文章可立即傳訊通知該版版主/站長/副站長協助處理,不要放著不管喔 發表人 -
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-30 23:24:29 IP:61.221.xxx.xxx 未訂閱
hi, 利用 ddy 兄的 format 記得要用 2002/01/05 這種格式, 不可以使用 2002/1/5, 否則會對應不到該日期.. 或是你可以改用這樣的 sql cmd: #2002/1/3# 利用 # 包住你的日期, 也就是 CommandText:='select count(wdate) as amount from cust where convert(char(6),wdate,112)= #' edit12.Text '#'; 試試看.
ddy
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-30 23:44:02 IP:211.74.xxx.xxx 未訂閱
若使用format(wdate,''yyyy/mm/dd'') 則等號的另一邊須轉換日期/時間格式,可用下列函式 FormatDateTime ('yyyy/mm/dd',wdate); 或許程序上多了些處理步驟,但是對於日期的處理 若你能有一個標準的做法(輸入的日期格式標準化),會對你寫程式上降低許多bug產生的機會    參考看看    =============================================================================== 提醒您,貼錯文章可立即傳訊通知該版版主/站長/副站長協助處理,不要放著不管喔
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-31 01:11:30 IP:210.58.xxx.xxx 未訂閱
引言: 若使用format(wdate,''yyyy/mm/dd'') 則等號的另一邊須轉換日期/時間格式,可用下列函式 FormatDateTime ('yyyy/mm/dd',wdate); 或許程序上多了些處理步驟,但是對於日期的處理 若你能有一個標準的做法(輸入的日期格式標準化),會對你寫程式上降低許多bug產生的機會 參考看看 =============================================================================== 提醒您,貼錯文章可立即傳訊通知該版版主/站長/副站長協助處理,不要放著不管喔 < face="Verdana, Arial, Helvetica"> 我想要做的是只須輸入200301就可以將2003年一月所有人數做統計 故我用convert(char(6),wdate,112)來轉換日期格式(轉換出的格式如200301)
william
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-31 11:08:36 IP:210.3.xxx.xxx 未訂閱
Try using DatePart and CStr in Access  < class="code">cstr(100*datepart('yyyy',wdate_date) datepart('m',wdate_date) 發表人 - william 於 2003/01/31 11:09:57
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-01-31 18:54:06 IP:210.58.xxx.xxx 未訂閱
引言: Try using DatePart and CStr in Access < class="code">cstr(100*datepart('yyyy',wdate_date) datepart('m',wdate_date) 發表人 - william 於 2003/01/31 11:09:57
william兄我用你的方法,可是他出現錯誤訊息 [Microsoft][ODBC Microsoft Access Driver]您企圖執行一個查詢不包含 作為總和函數的一部份的指定運算式'wdate' 發表人 - boss 於 2003/01/31 19:23:47
ddy
站務副站長


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-01-31 23:10:53 IP:61.59.xxx.xxx 未訂閱
引言: 我想要做的是只須輸入200301就可以將2003年一月所有人數做統計 故我用convert(char(6),wdate,112)來轉換日期格式(轉換出的格式如200301)
引言: 若使用format(wdate,''yyyy/mm/dd'') 則等號的另一邊須轉換日期/時間格式,可用下列函式 FormatDateTime ('yyyy/mm/dd',wdate);
把/拿掉,並只顯示年月即可 改成 format(wdate,''yyyymm'') FormatDateTime ('yyyymm',wdate); 二邊相等即可 =============================================================================== 提醒您,貼錯文章可立即傳訊通知該版版主/站長/副站長協助處理,不要放著不管喔
william
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-02-01 11:10:21 IP:210.3.xxx.xxx 未訂閱
Perhaps the fieldname? I tested it on Access XP
select wdate, cstr(100*datepart('yyyy',wdate)   datepart('m',wdate)) from cust;
引言:william兄我用你的方法,可是他出現錯誤訊息 [Microsoft][ODBC Microsoft Access Driver]您企圖執行一個查詢不包含 作為總和函數的一部份的指定運算式'wdate' 發表人 - boss 於 2003/01/31 19:23:47
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-02-03 23:52:50 IP:210.58.xxx.xxx 未訂閱
william兄 我資料庫是Access 2000 sql語法如下 CommandText:='select count(wdate) as amount from cust where cstr(100*datepart(''yyyy'',wdate) datepart(''m'',wdate)=' '''' edit1.text '''' 我也用了ddy兄的方法,sql語法如下 CommandText:='select wdate,count(wdate) as amount from cust where format(wdate,''''yyyymm'''')=formatdatetime(''yyyymm'',' '''' edit1.text '''' ')'; 不過也是會出現錯誤訊息 [Microsoft][ODBC Microsoft Access Driver]查詢運算式 format(wdate,''yyyymm'')=formatdate('yyyymm','200301')中的語法錯誤少了運算元
系統時間:2024-05-19 15:13:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!