標題:
[發問]
Excel VBA SQL 查詢問題
[打印本頁]
作者:
mgame168
時間:
2011-10-17 11:22
標題:
Excel VBA SQL 查詢問題
請教各位先進~
我有一mdb資料庫,內有3個table分別為
1. dbo_pro
prno, kano, a01,.........
2. dbo_prok
kano, name,......
3. dbo_aa
a01, name, names.......
我想依條件Sheet1.Range("K9")為搜尋條件(prno),
從資料庫dbo_pro -->kano, a01 left join 另外
兩個Table內的資料,但執行時顯示錯誤"Automation 錯誤'
[attach]8252[/attach]
想請教是我的SQL語法錯誤還是EXCEL VBA 對SQL
查詢語法有限制呢?
感恩~
如附件
[attach]8254[/attach]
作者:
kimbal
時間:
2011-10-20 00:12
dbo_aa.names
names 好像剛好是關鍵字, 簡單的話換一下欄名
另外LEFT JOIN, ISNULL 的在ACCESS會有不同寫法:
(以下我把DBO_AA.NAMES改成DBO_AA.NAME)
SQL = "Select dbo_pro.*, dbo_aa.name as anames, iif(isnull(dbo_prok.name), '',dbo_prok.name)as namek "
SQL = SQL & "From (dbo_pro left outer join dbo_aa on dbo_pro.a01=dbo_aa.a01) "
SQL = SQL & "left join dbo_prok on dbo_pro.kano=dbo_prok.kano "
SQL = SQL & "Where dbo_pro.prno ='" & Sheet1.Range("K9") & "'"
SQL = SQL & " Order by dbo_pro.prno"
作者:
mgame168
時間:
2011-10-24 17:52
本帖最後由 mgame168 於 2011-10-24 17:58 編輯
回復
2#
kimbal
感謝 kimbal 版大
isnull() 經查證後, 在MS-SQL 可用,
Access中的IsNull()
在Access中,IsNull的作用僅僅是判斷是否為空值
不過Access還是有支援MS-SQL IsNull的相似指令碼,
在Access是用 iif 替代..
Select iif(IsNull( express ), value1, value2 ) From TableName
語法說明,判斷express是否為空,若是空的回傳value1,反之則回傳value2
LEFT JOIN 的寫法如同您寫的方式
dbo_aa.names
names 好像剛好是關鍵字, 沒錯的確是關鍵字
但資料庫的欄位名稱我無法更改, 所以對於
保留字的衝突
解決辦法就是將names改成
[
names
]
就解決了
以下的語法我有修改過
SQL = "Select dbo_pro.*, dbo_prok.name, dbo_aa.
[
names
]
"
SQL = SQL & "From
(
dbo_pro left outer join dbo_aa on dbo_pro.a01=dbo_aa.a01
)
"
SQL = SQL & "left join dbo_prok on dbo_pro.kano=dbo_prok.kano "
SQL = SQL & "Where dbo_pro.prno ='" & Sheet1.Range("K9") & "'"
SQL = SQL & " Order by dbo_pro.prno"
感謝kimbal版大的指導
[attach]8326[/attach]
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)