2015-10-13 34 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