比较表和返回匹配值(SQL,VBA)

大家早,

我想我可能会错过一些明显的东西,所以我希望有人能够把我推向正确的方向。

我正在使用Excel 2010来查询使用DAO的Access 2010数据库。 我需要两张桌子,[缺席]和[工作人员]。 前者包括缺席的细节和员工的姓名,后者包括员工的更多细节,比如他们的团队经理。 我目前可以查询并返回有关缺席的信息,但是,我需要扩展此项以检查缺席表中的员工姓名是否与职员表中相应的团队经理关联。 所以,用简单的英语来说,如果员工在工作人员表中被列在这个小组经理的pipe理下,那么应该把这两个date之间的缺席表给我。

这是我的代码到目前为止(额外的领域剥离出来的例子),它工作正常:

Sub QueryDatabase() Dim db As DAO.Database 'the database Dim rex As DAO.Recordset 'the recordset in which to place the data Set db = OpenDatabase(ActiveWorkbook.Path & "/DB.accdb", False, True, ";pwd=" & pw) Set rex = db.OpenRecordset("SELECT [RecordDate], [StaffName], FROM [Absence] WHERE [RecordDate] BETWEEN #" & dFromDate & "# AND #" & dToDate & "# ;") 

任何意见或指导将不胜感激!

Snayff

  1. 始终将SQL查询打印到一个string。 这使您可以在查询执行之前检查查询。

  2. dFromDatedToDate已经在正确的格式,并正确打印到SQL查询(见前面的观点)?

为了让你的“给我从这两个date之间的缺席表的所有logging,如果工作人员列在这个团队经理在职员表”下,你需要一个连接,如下所示:

  SELECT Absence.name FROM Absence, Staff WHERE Absence.name = Staff.name AND Staff.mananger = manager_name;