vba访问和表单的条件格式

时间:2018-04-04 09:08:11

标签: vba ms-access access-vba

我有一个收集不同类型数据的表单。其中之一是文档类型。在访问选项卡时,用户必须从下拉列表中选择一种文档。如果文档被选为" NDA",则选项卡名为"类型为NDA"必须启用。以下是我尝试使用的代码:

 Private Sub doc_AfterUpdate()
    If doc.Value="NDA" then
       tnda.enabled=true
    else
       tnda.enabled=false
    End if
 End Sub

pgm很简单,但每当我运行我的表单时,它会一直显示"错误:类型不匹配"并且代码停止工作。

感谢您帮助我完成上述代码。 这次我尝试使用更多选项的更复杂的表单上的代码。我试图禁用所有其他选项并仅根据我选择的选项启用它们(来自"文档类型"表单中的选项卡)。以下是代码:

    Private Sub doc_BeforeUpdate(cancel as integer)
    tnda.enabled=false
    tagr.enabled=false
odoc.enabled=false
    End Sub

    Private Sub doc_AfterUpdate()
    Select Case doc.column(1)
    Case "NDA"
    tnda.enabled=true
    Case "Agreement"
    tagr.enabled=true
    Case "Other"
    odoc.enabled=true
    Case Else
    End Select
    End Sub

    Private Sub doc_Oncurrent()
    Select Case doc.column(1)
    Case "NDA"
    tnda.enabled=true
    Case "Agreement"
    tagr.enabled=true
    Case "Other"
    odoc.enabled=true
    Case Else
    End Select
    End Sub

运行pgm后,无论选择何种文档,我的所有标签都会被禁用。请提供这方面的宝贵意见。 注意tnda:NDA的类型           tagr:协议类型             odoc:其他文档和doc =文档类型Find image of my form here

1 个答案:

答案 0 :(得分:0)

这是因为Doc是一个组合框,因此可能绑定到一个数字ID。

所以:

If doc.Value = <insert value of ID of text "NDA"> then

或使用包含“NDA”的列ID,很可能是下一个:

If doc.Column(1) = "NDA" then