如何在Access vba中搜索和查找并过滤

时间:2012-08-29 16:59:09

标签: vba ms-access search filter access-vba

在我的Access数据库中,我正在尝试执行搜索并查找非常复杂的例程。基本上,我在这四个表中有4个标准要寻找:日期,服务,代码和功能。

通过这些信息,我进入一个表格,并在一个字段中搜索一个标准。在找到对应于4个条件之一的行之后,我为正确匹配的所有行保存了相邻字段的值。在此之后,我想将所有相邻字段的值保存为数组。然后重复这些步骤,我将把所有4个搜索保存为4个单独的数组。

我的表格的关系如下:

Table Relationships

我收到一个“Demande”,这是一个请求,在该请求中有四个标准:日期,服务,代码和功能。

在表“Services_YES”中,我查找与需求相对应的服务

在“Pool_Personnel”表格中,我查找与需求相对应的 Fonction

在表格“Days_Available”中,我会查找与需求相对应的日期代码(称为Code_Horaire)。

从那里开始,我希望为找到的所有结果记录每个Code_Personal,然后找出所有3个表中匹配的Code_Personal。


所以我的问题:

如何进行搜索并查找为所有与条件行对应的代码创建数组的函数?

我已经创建了psuedo代码来帮助解释,并且有人可以转换为真正的VBA:

While demandeTable.functionField.Value = poolpersonnelTable.Fonction1Field.Value
  get all poolpersonnelTable.codepersonalField.Value for all rows that match
  save fonctionArray = codepersonalField.Values
Loop

我非常坚持如何完成这种“过滤”,并非常感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

使用VBA不是答案。

我最终创建了一个查询,并使用用户输入的文本来填充查询的可变部分:

comboService = Chr(34) & Me.Combo8.Value & Chr(34)
txtDate = Chr(34) & Me.Text15.Value & Chr(34)
comboCodeHoraire = Chr(34) & Me.Combo17.Value & Chr(34)

"SELECT tblPoolPersonnel.LName, tblPoolPersonnel.FName, tblPoolPersonnel.[Tel Natel], tblPoolPersonnel.[Tel Home], tblPoolPersonnel.Email" & vbCrLf
"FROM ((tblPoolPersonnel INNER JOIN tblFonction ON tblPoolPersonnel.Code_Personal = tblFonction.Code_Personel) INNER JOIN tblDayAvailable ON tblPoolPersonnel.Code_Personal = tblDayAvailable.Code_Personal) INNER JOIN tblServiceYES ON tblPoolPersonnel.Code_Personal = tblServiceYES.Code_Personal" & vbCrLf
"WHERE (((tblServiceYES.Service)=" & comboService & ") AND " + _
                "((tblDayAvailable.Availability)=True) AND " + _
                "((tblDayAvailable.Date)=" & txtDate & ") AND " + _
                "((tblDayAvailable.CodeHoraire1)=" & comboCodeHoraire & "))"