【问题标题】:Setting a item in a forms property from another forms vba从另一个表单vba设置表单属性中的项目
【发布时间】:2015-01-02 18:48:47
【问题描述】:

我有一个表单,它有一个带有点击过程的按钮。
本质上,如果勾选了checkbox(chkIncludeIDs),那么它必须打开一个表单并使该表单上的文本框的属性可见。

我当前点击事件的代码如下:

Private Sub Update_pending_Click()
On Error GoTo Err_Update_pending_Click

    Dim stDocName As String
    Dim stLinkCriteria As String
    
    If Me.chkIncludeIDs = 0 Then
        stDocName = "Pending Queries Locked"
    Else
        stDocName = "Pending Queries Locked"
        Forms![Pending Queries Locked]!ID.Visible = True
    End If
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Update_pending_Click:
    Exit Sub

Err_Update_pending_Click:
    MsgBox Err.Description
    Resume Exit_Update_pending_Click
    
End Sub

我打开的表单是“Pending Queries Locked” 我需要显示的文本框是 ID,因为它的默认值为 visible = false

我的代码不起作用。

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    出于许多充分的理由,请为您的控件命名,不要使用空格,例如“form_pending_queries_locked”、query_my_query、txt_id、lbl_id。

    当您访问控件的属性时,您需要指定要访问的属性。 例如

    If Me.chkIncludeIDs.value <> 0 Then
    

    关于您的问题。您需要先打开表单,然后才能访问其控件。所以这在逻辑上是:打开表单,访问控件,更改其属性。

    在代码中

    Dim txt_id As Textbox
    DoCmd.OpenForm "frm_myform"
    Set txt_id = Forms![frm_myform]!txt_id
    
    txt_id.visible = False
    

    或者:您可以通过 OpenArg 发送参数并通过 form_load 事件访问它,然后更改本地控件属性..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      相关资源
      最近更新 更多