返回列表 上一主題 發帖

[發問] ADO+Sql如何使用vba函數(month)

[發問] ADO+Sql如何使用vba函數(month)

我的database建立在worksheets("資料庫"),有欄位"日期",但沒有欄位"月份"
用ADO+sql查詢 資料庫資料月份的唯一值:
"select distinct month(日期) from [資料庫$]"
"select distinct " & month & "(日期) from [資料庫$]"
以上2句都不成功,顯然是 month 不能用或方法錯
版主能不能教我如何寫,我主要目的想知道資料庫里輸入了哪幾個月的資料,謝謝
lmh

回復 1# mhl9mhl9

"select distinct month([table].日期) from [table]"

TOP

擷取.PNG
2013-8-11 02:08

test1可以把整個資料庫copy到activesheet.A1
test2就出現上面的錯誤對話框
什麽地方寫錯了?
Sub test1()
    ActiveSheet.Cells.ClearContents
    Set iR = Range("A1")
    iPath = ThisWorkbook.fullname
    iQ = "select * from [資料庫$]"  
   iSql
End Sub
Sub test2()
    ActiveSheet.Cells.ClearContents
    Set iR = Range("A1")
    iPath = ThisWorkbook.Path
    iQ = "select month(資料庫.日期) from [資料庫$]"
    iSql
End Sub
lmh

TOP

本帖最後由 mhl9mhl9 於 2013-8-11 02:56 編輯

不好意思, test2中, 我把thisworkbook.fullname打成hisworkbook.Path
所以出錯
test5 ,可以正常運行, 我資料庫有6個月資料,但test5運行結果卻是6個Jan

Sub test5()
    ActiveSheet.Cells.ClearContents
    Set iR = Range("A1")
    iPath = ThisWorkbook.FullName
    iQ = "select distinct  Month(日期) as 月份 from [資料庫$]"
    iSql
end sub
lmh

TOP

看來是格式問題,資料庫有6個月資料,distinct month(日期)出6個"Jan"
distinct year(日期)出一個"1905"
唯一值的個數是正確的,但值不對,怎麼做呢?
lmh

TOP

回復 2# HSIEN6001


    看來是格式問題,資料庫有6個月資料,distinct month(日期)出6個"Jan"
distinct year(日期)出一個"1905"
唯一值的個數是正確的,但值不對,怎麼做呢?
lmh

TOP

回復 2# HSIEN6001

問題解決了,dictinct month(日期) from [資料庫$],結果出了6個"Jan",但我把結果儲存格的格式改用"通用格式",就顯示正確的1,2,3,4,5,6
好了,謝謝你,我是第一次在sql里用vba的function,查到不是這麼簡單就可以用了,有點緊張,所以亂了套.簡單的格式問題沒有想到,謝謝你了
lmh

TOP

回復 7# mhl9mhl9


對不起!現在才上線 (*.*)
昨天試過#2那句OK ,就是#7的答案
所以給您貼上參考
完成就好!!

TOP

回復 8# HSIEN6001

這個問題煩了自己幾天,你第一次答我前,我懷疑直接用month函數,因為你的答覆,我覺得用法有人認同,有點信心了
原來我逐個檢查15個分公司全年日報表完不完整,現在可以一次檢查完15個公司全年報表,時間快不了多少,但程式流程好像舒服得多.
多謝多謝
lmh

TOP

        靜思自在 : 我們要做好社會的環保,也要做好內心的環保。
返回列表 上一主題