Vba MS Access自动填写表格不填写货币
我有一个表单,用户从组合框中选择InventoryID,它自动填充其他信息(setID和RentalRate)。它将填充setID,但不会填充租金。在它所基于的表中,RentalRate被格式化为货币 cboInvnetoryID的内部select查询包含以下列: 0记录ID(自动编号)Vba MS Access自动填写表格不填写货币,vba,forms,ms-access,autofill,Vba,Forms,Ms Access,Autofill,我有一个表单,用户从组合框中选择InventoryID,它自动填充其他信息(setID和RentalRate)。它将填充setID,但不会填充租金。在它所基于的表中,RentalRate被格式化为货币 cboInvnetoryID的内部select查询包含以下列: 0记录ID(自动编号) 库存ID(文本) setID(文本) 租金(货币) 这是我的自动填充VBA: Private Sub cboInventoryID_AfterUpdate() Me.txtSetID.Value = Me.cb
Private Sub cboInventoryID_AfterUpdate()
Me.txtSetID.Value = Me.cboInventoryID.Column(2)
Me.txtRentalRate.Value = Me.cboInventoryID.Column(3)
End Sub
关于为什么RentalRate字段不是自动填充的原因,您有什么想法吗?组合框只返回文本,因此请使用可以转换为货币的字符串表达式填充rate列:
RentalRateText = Str([RentalRte])
对以下内容使用查询:
选择[Inventory ID]、SetId、Str([RentalRte])作为RentalRateText
从你的桌子上
订购人[库存ID]
现在,将这些转换为数字:
Me!txtRentalRate.Value = Val(Me!.cboInventoryID.Column(3))
另外,我想,
.Column(3)
应该是.Column(2)
,因为列索引是以零为基础的。发生了很多事情。首先,我没有注意到表单所基于的表没有规范化,所以我修复了这个问题。我还搞不清列数,所以VBA是正确的,我只是把列数翻了一下。我对这一切都非常陌生。在哪里添加字符串表达式?我找到了放置字符串函数的位置。它越来越近了,现在我得到一个运行时错误2448“你不能给这个对象赋值”,它将显示$0而不是实际值。也许我误解了你说的第二部分转换成数字是什么意思?你能澄清一下吗?非常感谢。添加:当我调试时,它指向:Me.txtRentalRate.Value=Me.cboInventoryID.Column(3),当我悬停时,它添加=null调整查询-请参阅编辑的答案。空值是由于(如前所述)计数是基于零的,并且查询中没有4个字段。使用2。