【问题标题】:SubForm Select Row and Edit Source子表单选择行和编辑源
【发布时间】:2014-01-17 03:22:18
【问题描述】:

我有一个位于 MainForm(“Main Menu”)上的 SubForm(“Main Menu SubForm”)...我想在 SubForm 上选择一行,然后将相应的行拉入另一个表单进行编辑。

我有以下代码,但它似乎没有达到我的预期:

Private Sub Form_Activate()
    Me.Requery
    If IsLoaded("Main Menu") Then
        If Forms![Main Menu]![Main Menu SubForm].Form.RecordsetClone.RecordCount > 0 Then
            DoCmd.GoToControl "txtWOrderID"
            DoCmd.FindRecord Forms![Main Menu]![Main Menu SubForm].Form![WOrderID]
        End If
    End If
End Sub

如果需要,我已附上我的数据库的链接以供参考: Access Invoice System

【问题讨论】:

    标签: ms-access vba subform


    【解决方案1】:

    我会做类似的事情(这是空气代码,所以需要调整):

    forms!WOrderID.RecordSource = "Select * from MyTable where WOrderID = " & me.txtWOrderID & ""
    Forms!wOrderID.Refresh
    

    【讨论】:

    • 不确定我是否遵循代码...你能更具体吗?我是这样使用它的吗:表格! 来自目的地的工单 ID .RecordSource = "Select * from Main Menu SubForm where WOrderID = " & me. txtWOrderID & "" 表格! 来自目的地的工单 ID .Refresh
    • 如果 WOrderID 不是整数字段,则需要用单引号将变量括起来。不确定这是否重要。此外,如果您的字段/表单名称有空格,请不要忘记用括号括起来。 RecordSource 的措辞应该与查询完全相同,因为本质上您是将表单绑定到查询。
    • 我显然还是做错了什么...你能看看我的数据库,看看我可能做错了什么吗?这就是我更新它的内容,它仍然无法正常工作。我想我把东西放在了错误的地方。 Private Sub Form_Activate() Forms![Work Order].RecordSource = "SELECT * FROM [Work Order] WHERE [WOrderID] = '" & Me.txtWOrderID & "'" Forms![Work Order].Refresh End Sub
    • 不能下班,他们把我们关起来了。它看起来是对的,除非它是一个子表单,它实际上需要以不同的方式引用。看这里:support.microsoft.com/kb/113352
    【解决方案2】:

    我最终通过在主窗体中执行此操作来使其工作:

    Private Sub btnViewWorkOrder_Click()
        DoCmd.OpenForm "Work Order", acNormal, , "[WOrderID] = '" & Forms![Main Menu]![txtWOrderID] & "'", acFormEdit, acDialog
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多