如何使用命令按钮将所有数据/记录从一个表单传输到另一个表单?

时间:2015-10-22 01:38:51

标签: access-vba

我有一个带有连续表单的主表单作为子表单,显示呈现给该特定客户端的服务。不知何故输入了重复的客户端(名称拼写错误),并且记录在这两个客户端名称之间分开。我希望能够从我的子表单(不正确的客户端)单击一个按钮并将这些记录传输到另一个表单(数据临时主机),这将允许我最终将这些相同的记录从中间表单传输到最终表单(正确的客户端) )。

1 个答案:

答案 0 :(得分:1)

我假设将您的子表单记录与主表单记录相关联的外键是某种客户端ID,因此您只需要一种方法来更新它。

我能想到的一种方法是在“服务呈现”子窗体的页脚中放置一个文本框,该子窗口将获取您要转移到子窗体中可见的记录的客户端ID。然后,命令按钮(再次在子窗体中)可以获取您指定的客户端ID值,并更新“服务渲染”子窗体中显示的所有记录的客户端ID。

因此,例如,如果您有一个提供这些服务的客户端:

enter image description here

...但不幸的是,someonr为同一个人创造了另一个客户记录(拼错了姓氏):

enter image description here

您可以使用子窗体页脚中的文本框指定希望子窗体记录传输到的客户端ID:

enter image description here

...然后单击命令按钮以运行将为您执行更新的子例程:

enter image description here

然后,您可以转到您转移这些记录的客户端并检查它是否有效:

enter image description here

这是命令按钮上的VBA:

Private Sub cmdTransfer_Click()

    Dim rs As DAO.Recordset
    Set rs = Me.Form.Recordset

    If _
        Not (rs.BOF And rs.EOF) _
    Then

        rs.MoveFirst

        Do While Not rs.EOF
            rs.Edit
            rs!ClientID = Me.txtTransClientId
            rs.Update
            rs.MoveNext
        Loop

    End If

    Me.Requery

End Sub

Here's my mock-up file如果你想更详细地看一下这个。

请注意,我没有对剩余的重复客户端记录做任何事情,所以我建议将其构建到sub中(例如,是/否消息框提示,用户询问他们是否现在要删除客户端)。

希望这会有所帮助。现在,我无法代表已经回复的其他人发言,但我接受所有主要的信用卡。