在Load事件上设置表单的Record Source

时间:2016-03-29 01:27:39

标签: vba ms-access access-vba

我希望使用一个具有3个布局的表单,但在表单加载时更改数据源。这是在OnLoad

期间调用的代码
Private Sub ShowInputLog(iLogType As Integer)

'Determines the Log Type Layout
'For data entry

     Select Case iLogType

        Case 1 '"MIPR"
            Me.Caption = "MIPR"
            Me.RecordSource = "tbl_MIPR"
            Me.TabCodes.Pages(0).Visible = True
            Me.TabCodes.Pages(0).Enabled = True
            Me.cmbPR_NUM.SetFocus
            Me.TabCodes.Pages(1).Visible = False
            Me.TabCodes.Pages(2).Visible = False
        Case 2 '"SPSPR"
            Me.RecordSource = "tbl_SPSPR"
            Me.Caption = "SPSPR"
            Me.TabCodes.Pages(0).Visible = False
            Me.TabCodes.Pages(1).Visible = True
            Me.cmbPR_Contr.SetFocus
            Me.TabCodes.Pages(2).Visible = False
        Case 3 '"WBS"
            Me.RecordSource = "tbl_WBS"
            Me.Caption = "WBS"
            Me.TabCodes.Pages(0).Visible = False
            Me.TabCodes.Pages(1).Visible = False
            Me.TabCodes.Pages(2).Visible = True
            Me.cmbWBS_Num.SetFocus
    End Select


End Sub

这会有用吗?我希望看到我的表定义的recordsource属性,但它仍然是空白的。

2 个答案:

答案 0 :(得分:1)

是的,这应该有效,但是所有表都应该显示具有相同名称的列。如果您有不同的名称,请创建几个子表单并根据iLogType更改主表单上的子表单SourceObject属性

答案 1 :(得分:0)

是的,这应该有效,但是所有表都应该显示具有相同名称的列。如果您有不同的名称,请在每个表上创建一个查询,该表具有相同的字段名称,由表单预期。 这样的代码在我的一个应用程序上运行,用于9个不同的查询。