在第一个组合框中进行选择后,级联表单遇到问题,无法让数据出现在第二个组合框中

问题描述 投票:0回答:1

我正在使用一个维修店数据库来保存我的客户、他们的设备以及为维修他们的设备而创建的任何维修票。我想要一个维修票表格,允许我从组合框中选择客户姓名,并且他们有一个设备组合框,其中填充了客户拥有的设备,这样我就可以选择维修票所针对的设备。我无法正确填充设备组合框。我正准备把头发拔掉。希望我可以上传我的数据库并让人修复它。我确信这很简单,我只是没有看到。我对 sql 或 vba 的经验很少。我确信有人知道如何在大约 2 分钟内解决这个问题。

我从不同的谷歌搜索中尝试了很多东西,我什至记不清了。已尝试询问 ChatGPT 但似乎没有任何效果。

sql vba forms ms-access cascadingdropdown
1个回答
0
投票

如果您在问题中添加更多信息会更好。

  • 数据库实体
  • 您已经尝试过的代码示例

无论如何, 考虑到您使用这些数据实体:

tbl客户

tbl客户设备

tbl客户设备票

这是一个例子,所以你可以尽快得到你想要的。这不是最佳实践。

创建一个新表单:ticketForm

添加 tblCustomerEquipmentTicket 作为表单的行源。 这样,您的表单将包含所有创建的票证。 现在,您选择 CustomerID 作为客户组合框的绑定源,选择 CustomerEquipmentID 作为 customerEquipment 组合框的绑定源,并选择 Ticket_Info 作为表单上文本框的绑定源。

然后,在表单中添加一个按钮,以便您可以创建新票证:

Private Sub btnCreateTicket_Click()

    Call DoCmd.GoToRecord(acDataForm, Me.Name, acNewRec)

End Sub

现在,在您的表单上将所有客户添加到您的客户组合框中: 这应该是您添加到 cboCustomer 行源的代码:

SELECT CustomerID, Name FROM tblCustomer; 

当您选择客户时,带有设备的组合框应该相应变化。因此,将此代码添加为 cboCustomerEquipment

的行源
SELECT tblCustomerEquipment.CustomerEquipmentID, tblCustomerEquipment.CustomerEquipmentCD, tblCustomerEquipment.CustomerID FROM tblCustomerEquipment WHERE (((tblCustomerEquipment.CustomerID)=[Forms]![ticketForm]![cboCustomers])); 

现在,要创建工单,请按按钮,按下按钮时,表单记录源应转到新记录,根据设备的选择添加相关工单,如上所示。

这应该是结果:

祝你好运到达那里,试着集中注意力并坚持到达那里。这个答案花了我 45 分钟才生成,只有当你实现它时才会有回报。

© www.soinside.com 2019 - 2024. All rights reserved.