用查询Access 2007填充组合框的两行

时间:2018-10-18 16:39:21

标签: ms-access ms-access-2007

我正在使用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,我有一辆双燃料汽车的条件。我想分别显示汽油和乙醇,每行一次。

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

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

在单个字段中存储多个数据很少会成功。我看到的一些选择

  1. 一系列用于汽油类型的二进制字段。因此,您对汽油,乙醇和柴油的判断是对还是错。使用表单上的复选框可以很容易地显示出来。
  2. 如果您知道只有某些组合,例如没有汽油的“柴油和乙醇”,则可以将其构建为单个值组合框。

答案 1 :(得分:0)

您可能需要一些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从表中读取它们。