Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba MS Access自动填写表格不填写货币_Vba_Forms_Ms Access_Autofill - Fatal编程技术网

Vba MS Access自动填写表格不填写货币

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

我有一个表单,用户从组合框中选择InventoryID,它自动填充其他信息(setID和RentalRate)。它将填充setID,但不会填充租金。在它所基于的表中,RentalRate被格式化为货币

cboInvnetoryID的内部select查询包含以下列: 0记录ID(自动编号)

  • 库存ID(文本)
  • setID(文本)
  • 租金(货币)
  • 这是我的自动填充VBA:

    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。