相关疑难解决方法(0)

如何遍历表单中的所有控件,包括子窗体中的控件 - Access 2007

正如我的问题标题所示,如何循环遍历表单中的所有控件,包括子表单.

例如,我使用下面的子例程来设置带有标记*的控件的背景颜色

Public Sub colCtrlReq(frm As Form)
'  Sets background color for required field -> Tag = *
Dim setColour As String
setColour = RGB(255, 244, 164)
Dim ctl As Control
For Each ctl In frm.Controls
        If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acListBox Then
            If InStr(1, ctl.Tag, "*") <> 0 Then
                ctl.BackColor = setColour
            End If
        End If
Next ctl
Set ctl = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)

如何改变它以捕获子表单中的控件?提前感谢任何帮助或指示.

干杯诺埃尔

ms-access ms-access-2007

10
推荐指数
1
解决办法
5万
查看次数

子表单引用引发错误 2455:您输入的表达式对属性表单/报告具有无效引用

昨天,一个对我来说很好用的表单/子表单突然开始抛出 Error 2455: You entered an expression that has an invalid reference to the property Form/Report.

以下是我对问题的诊断。感觉是个bug。

我的问题是:你们有没有人见过这个?如果你有兴趣,你能不能尝试复制这个问题,让我知道你发现了什么?

问题:

  • 我有一个完全独立的表单,为它的每个子表单设置记录源
  • 但是当表单被放入子表单控件时失败,当尝试设置 SubForm.Form.RecordSource 属性时,每个子表单都会抛出错误 2455 (但同样,仅当表单本身是子表单时)

经过大量的实验,我把范围缩小到这个:

  1. SubForm 控件太短,无法显示表单的详细信息部分。只有标题可见。
  2. 由于表单的详细信息不可见,Access 默默地禁用了表单下的所有子表单!!!

我的解决方法:始终确保表单的 Detail 部分的至少一部分在 SubForm 控件中可见。任何一个:

  • 增加子窗体控件的高度
  • 将控件从表单标题移动到详细信息,并使标题更短或不可见,以便仅显示详细信息。

你能复制这个吗?这很奇怪,所以我想对这个问题进行一些独立的确认。所以,如果你有一点时间,请尝试以下步骤:

  1. 制作一个表格:
    • 包含孙窗体的子窗体控件
    • 一个表头部分,高 0.5 英寸
  2. 在父子窗体控件中将此窗体添加为子窗体
  3. 工作案例:
    • 将父级的子窗体高度设置为 0.6 英寸,以便子级的详细信息部分可见
    • 在代码中,引用子窗体的 subform.Form.RecordSource 属性(孙子窗体)。
    • 期望:没有错误
  4. 失败案例:
    • 现在,将父子窗体高度设置为 0.4 英寸,因此细节不可见
    • 重新运行涉及子窗体 subform.Form.RecordSource 属性的代码。
    • 预期:运行时错误 …

ms-access vba

5
推荐指数
2
解决办法
6553
查看次数

标签 统计

ms-access ×2

ms-access-2007 ×1

vba ×1