sql
  • vba
  • access-vba
  • ms-access-2010
  • 2016-06-18 64 views 1 likes 
    1

    我是新來的VBA,無法得到查詢工作VBA語法錯誤在更新語句,3144

    db.Execute "UPDATE t_inquiry " _ 
        & "SET [car rental contract printed?] = True " _ 
        & "WHERE [Customer_ID] = (SELECT [Gast_ID] FROM t_customer WHERE t_customer.[Mail 1] = '" & [rs]![Mail 1] & "')" _ 
        & "AND [car rental contract printed?] = [rs]![car rental contract printed?];" 
    

    有件事錯在第二行「where子句」如果我刪除了這一行,然後查詢工作。

    有沒有人有任何想法嗎?謝謝

    +0

    您還需要串聯了'[RS] [汽車租賃合同打印?]'值! – Parfait

    +0

    你的意思是 '「&[rs]![汽車租賃合同打印?]和'' 它是這樣的,但沒有工作,它的布爾值,所以我試過沒有,然後它的工作,正如我所提到的,如果我刪除第二行,並只保留一個「WHERE」子句[rs]![打印汽車租賃合同?],那麼它可以工作。 –

    +0

    不要雙引號布爾值(他們就像整數):'「&[rs]![汽車租賃合同打印?] & ";」' – Parfait

    回答

    3

    檢查字符串連接線之間的間距(對於我來說,我通常會在開始時將空間放在可見的位置)。此外,使用IN運營商,而不是子查詢的平等=

    db.Execute "UPDATE t_inquiry" _ 
        & " SET [car rental contract printed?] = True" _ 
        & " WHERE [Customer_ID] IN (SELECT [Gast_ID] FROM t_customer WHERE t_customer.[Mail 1] = '" & [rs]![Mail 1] & "')" _ 
        & " AND [car rental contract printed?] = " & [rs]![car rental contract printed?] & ";" 
    
    +0

    奇怪,它產生相同的錯誤,但更新表中的值,但爲什麼它更新表後產生相同的錯誤? –

    +0

    你一直提到「同樣的錯誤」 - 我還沒有看到你提到錯誤信息是在哪裏? - 編輯 - 哦,現在我明白了! IN BIG TITLE – dbmitch

    +1

    將SQL放入字符串-strSQL中,添加debug.print strSQL - 向我們顯示。將文本從調試複製/粘貼到查詢窗口並在那裏運行 - 會出現更好的錯誤消息。 – dbmitch

    相關問題