Ms access 在子窗体中显示记录

Ms access 在子窗体中显示记录,ms-access,vba,Ms Access,Vba,惠 我是访问vba的新手,我想在子窗体中显示记录 第一步,我需要在复选框中选择客户名称 其次,选择/单击客户名称后,系统将自动浏览记录。例如,我的客户名是A,因此系统将在customer表中检查customer A order ID。然后,系统将获取客户A的订单ID,然后将订单ID与产品表中的订单ID进行比较。如果产品表中的订单ID与客户表中的订单ID相同。然后,子窗体中将显示同一订单ID下的产品的所有记录(如产品名称、过期日期、数量) 这是我的密码。我在“在子窗体中显示详细信息”的注释处挂起

我是访问vba的新手,我想在子窗体中显示记录

第一步,我需要在复选框中选择客户名称

其次,选择/单击客户名称后,系统将自动浏览记录。例如,我的客户名是A,因此系统将在customer表中检查customer A order ID。然后,系统将获取客户A的订单ID,然后将订单ID与产品表中的订单ID进行比较。如果产品表中的订单ID与客户表中的订单ID相同。然后,子窗体中将显示同一订单ID下的产品的所有记录(如产品名称、过期日期、数量)

这是我的密码。我在“在子窗体中显示详细信息”的注释处挂起

Sub CustomerList_Review()

Dim db As DAO.Database
Dim rsCustLog As DAO.Recordset
Dim rsPrdLog As DAO.Recordset
Dim ordID As String

Set db = CurrentDb
Set rsCustLog = db.OpenRecordset("CustomerLog")
Set rsPrdLog = db.OpenRecordset("ProductLog")

Do Until rsCustLog.EOF
    If rsCustLog("CUSTOMER NAME").Value = Forms![Customer Review].cbxCustName Then
        ordID = rsCustLog("CUSTOMER NAME").Value

        Do Until rsPrdLog.EOF
            If rsPrdLog("ORDER ID").Value = ordID Then
                'Display the details in the subform
            End If

        rsPrdLog.MoveNext
    End If

    rsCustLog.MoveNext
Loop
End Sub
因此,每当我单击不同的客户名称时,产品详细信息将根据客户名称订单ID进行更改。如果你有更简单的代码。让我知道


感谢您的帮助。

通过使用
左外部联接
左联接
语句,我可以获得需要在子窗体中显示的记录。以下是我的简单代码:

Sub CustomerList_Review()

Dim db As DAO.Database
Dim rsCustLog As DAO.Recordset
Dim rsPrdLog As DAO.Recordset
Dim custName As String

Set db = CurrentDb
Set rsCustLog = db.OpenRecordset("ORDER ID")
Set rsPrdLog = db.OpenRecordset("PRODUCT LOG")

custName = Forms![Customer Review]!cbxCustName.Text
Forms![Customer Review]!subform1.Form.RecordSource = _
    "SELECT [ORDER ID].[ORDER ID], [PRODUCT LOG].[SKU], " _
    & "[PRODUCT LOG].[PRODUCT NAME], [PRODUCT LOG].[LOT NO], " _
    & "[PRODUCT LOG].[EXP DATE], [PRODUCT LOG].[QUANTITY] " _
    & "FROM [ORDER ID] LEFT OUTER JOIN [PRODUCT LOG] " _
    & "ON [ORDER ID].[ORDER ID] = [PRODUCT LOG].[ORDER ID] " _
    & "WHERE([ORDER ID].[CUSTOMER NAME] = """ & custName & """);"
End Sub

阅读下面的文章,看看你是否可以像这样设置你的表单@Jens谢谢你的建议