【问题标题】:How do I use ONE control source with MULTIPLE combo boxes from a USER FORM, in Access?如何在 Access 中将一个控件源与来自用户表单的多个组合框一起使用?
【发布时间】:2016-12-13 19:56:30
【问题描述】:

我目前正在开发工作报价单,我有 21 个组合框,它们都由相同的行源填充。我遇到的问题是当我的所有组合框都设置为相同的控制源时,组合框中的所有列表值都会被过滤并设置为一个值。例如,选择组合框 1 并且现在选择了准备,其他 20 个组合框设置为准备,我无法选择其他选项。现在,如果我的组合框没有控制源,那么前面的示例就可以了。如果我选择组合框 1 并将其设置为 prep 那么我可以选择组合框 2、3、4... 并为每个组合框输入我想要的任何值。我希望能够让每个组合框都有自己的价值。

我希望组合框具有相同的控制源的原因是,当组合框具有选定值时,它将向我的表中添加一条新记录。因此,如果选择了 10 个组合框的值,那么当我单击添加记录按钮时,将有 10 个新行添加到我的表中。

我在想可能有一个循环来完成这项工作,但我不熟悉使用 vba 运行 sql??

【问题讨论】:

    标签: sql vba ms-access


    【解决方案1】:

    您不能使用相同的控制源在同一个表单上生成多条记录。它们必须是未绑定的。至少,我不知道如何按照您设置的方式进行这项工作,但仍然可以提供帮助。

    删除控制源但保留行源。

    您需要一个查询来将值保存到您的表中:

    INSERT INTO MyTableName ([MyFieldName]) VALUES ('[ComboboxValue]');
    

    复制此代码并粘贴到查询生成器中。使用您希望保存单个组合框值的适当对象名称覆盖“MyTableName”和“MyFieldName”。它一次只添加一行。 [ComboboxValue] 将是我们用来将每个组合值传递给查询以执行的参数。

    将查询命名为您想要的任何名称并保存。我将使用占位符“MyQuery”,确保您更新它!

    在表单上创建一个命令按钮,并在其 On Click 事件中粘贴此 VBA 代码(您需要更新我使用 Me!ComboboxName 的组合框引用):

    Dim qdf As DAO.QueryDef
    Dim combo As String
    
    Set qdf = CurrentDb.QueryDefs("MyQuery")
    
    combo = Me!Combobox1Name
    qdf!ComboboxValue = combo
    qdf.Execute
    
    combo = Me!Combobox2Name
    qdf!ComboboxValue = combo
    qdf.Execute
    
    'Copy those three lines for each combobox, adjust your combobox references accordingly, 
    'or use a loop
    
    'End your procedure like this:
    Set qdf = Nothing
    

    如果您使用的是多列组合框,您可能需要将引用从Me!Combobox1Name 调整为Me!Combobox1Name.Column(1)

    【讨论】:

      猜你喜欢
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 2018-08-15
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      相关资源
      最近更新 更多