【问题标题】:Populate two rows of a combobox with a query Access 2007使用查询 Access 2007 填充组合框的两行
【发布时间】:2018-10-19 21:04:07
【问题描述】:

我正在处理 Access 2007 数据库,但查询时遇到问题。

我有一个名为 Vehicles 的表,其中包含其中每辆车的 ID、车牌和燃料类型等数据。 我正在尝试根据用户事先选择的车牌进行查询,该查询将使用每辆车的燃料类型填充表单中的组合框。

问题是,我们有一些汽车可以使用两种燃料,但我找不到在组合框中分别显示它们的方法。

到目前为止,它有点工作,代码如下:

CheckDiesel: IIf([Diesel]="Yes";"Diesel";IIf([Gasoline] AND [Ethanol]="Yes";"Gasoline"+ "Ethanol";IIf([Ethanol]="Yes";"Ethanol";IIf([Gasoline]="Yes";"Gasoline";""))))

如果你看第二个 IIf,我有一个双燃料汽车的条件。我想分别显示 Gasoline 和 Ethanol,每一个都连续显示。

我尝试过使用 "&Chr(10) Chr(13)&" 和 "\r\n" 但到目前为止我没有成功。

谁能帮帮我?

【问题讨论】:

    标签: ms-access ms-access-2007


    【解决方案1】:

    在一个字段中存储多条数据很少能有好的结果。我看到的几个选项

    1. 汽油类型的一系列二进制字段。因此,对于汽油、乙醇和柴油,您会有一个 True/false。这很容易通过表单上的复选框来显示。
    2. 如果您知道只有某些组合,例如没有汽油就没有“柴油和乙醇”,您可以将其构建为单值组合框。

    【讨论】:

    • 感谢您的建议,但为什么很少有好的结局?
    • 因为任何涉及在单个单元格中存储多条数据的字段的任何内容也需要编码以处理单个单元格中的多个数据值。如果你是这个数据库的唯一开发者,那么它可以很好地工作,但是如果其他人的数据库会接触你的数据,或者如果你计划在你升级时最终将这个数据库传递给其他人,那就需要做很多额外的工作使用该数据。例如:“显示可以使用汽油的车辆”的简单查询从“If CanUseGasoline=True”到提取汽油条目的段落。
    • 我明白了...感谢您的解释!
    【解决方案2】:

    您可能需要一些 VBA 来完成您需要做的事情。试试这样的:

    Dim R as String
    R=""
    if (Me.Diesel) then R = R & "Diesel;"
    if (Me.Gasoline) then R = R & "Gasoline;"
    … {add any other types of fuel}
    Me.MyComboBox.Rowsource = R
    Me.MyComboBox.Requery
    

    这可以添加到表单的 OnCurrent 事件中,这样每次显示新记录时它都会更新组合框。

    如果您的表单不包含各种燃料类型作为字段,请将它们添加为隐藏字段或使用 DLookup 从表格中读取它们。

    【讨论】:

    • 嗯,这是一种有趣的制作方法。我试试看,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    相关资源
    最近更新 更多