2015-10-13 48 views
2

我正在創建一個簡單的POS系統,但我遇到了一個錯誤。在結帳窗體上,它顯示發票標識,我在[購物車]表中的物品的子表單,結帳按鈕和3個複選框:銷售無稅,銷售稅和內部使用。我想要的是,如果您選擇cboxSoldNoTax並點擊結帳,[Cart]中的所有項目都會更新爲「已銷售稅」字段下的「是」。但問題是,當我點擊結賬按鈕,我會收到此錯誤信息:更新記錄,如果複選框被選中

運行時錯誤「3464」:條件表達式

數據類型不匹配。

下面是我的VBA代碼:

Private Sub btnCheckout_Click() 
    txtInvoice.Value = DMax("InvoiceID", "Invoice") 

    If cboxSoldTax.Value = True Then 
     DoCmd.RunSQL "UPDATE [Cart] SET SoldTax = 'Yes' WHERE InvoiceID = '" & Me.txtInvoice & "'" 
    End If 

    If cboxInternal.Value = True Then 
     DoCmd.RunSQL "UPDATE [Cart] SET InternalUse = 'Yes' WHERE InvoiceID = '" & Me.txtInvoice & "'" 
    End If 

    If cboxSoldNoTax.Value = True Then 
     DoCmd.RunSQL "UPDATE [Cart] SET SoldNoTax = 'Yes' WHERE InvoiceID = '" & Me.txtInvoice & "'" 
    End If 

End Sub 

我還提供了一個鏈接到Access數據庫。這裏是使用數據庫的說明:「開始」表單 - >主菜單 - >燒瓶 - >選擇數量 - >添加到購物車 - >結帳按鈕 - >選擇3複選框 - >結帳按鈕。

https://drive.google.com/file/d/0Bye-M8FI1tRUYm9QT3o5a0tyMkE/view?usp=sharing

任何幫助或建議將是巨大的。提前致謝!

+1

如果InternalUse.InvoiceID'的'數據類型是數字,而不是文本,之前消除單引號'Me.txtInvoice':'「... WHERE InvoiceID =」&Me.txtInvoice' – HansUp

+0

如果'SoldTax'爲Yes/No字段類型,請將該值設置爲True而不是'Yes':SET SETTaxTax = True ' – HansUp

+0

謝謝! @HansUp解決了這個問題! –

回答

2

如果InternalUse.InvoiceID的數據類型是數字,而不是文本,消除之前和之後Me.txtInvoice單引號:

" ... WHERE InvoiceID = " & Me.txtInvoice