【发布时间】:2018-09-04 08:44:48
【问题描述】:
我正在尝试从单独的访问数据库中获取 MAX 日期。
变量:
dbpath = "C:\Portal\_Dev"
dbname = "Portal.accdb"
strpassword = "OpenSesame"
tblEngage = "tbl_engagement"
我尝试过的代码:
CurrentDb.Execute "SELECT [MS Access;pwd=" & strpassword & ";database=" & dbpath & "\" & dbname & "].[" & tblEngage & "].CDP, Max([MS Access;pwd=" & strpassword & ";database=" & dbpath & "\" & dbname & "].[" & tblEngage & "].Open_Date) AS MaxOfOpen_Date" & _
"FROM [MS Access;pwd=" & strpassword & ";database=" & dbpath & "\" & dbname & "].[" & tblEngage & "] " & _
"WHERE [CDP] = '" & Text285 & "'"
我理解的这种方法不起作用,因为 SELECT 没有被告知要查看外部表:
CurrentDb.Execute "SELECT tbl_Engagement.CDP, Max(tbl_Engagement.Open_Date) AS MaxOfOpen_Date" & _
"FROM [MS Access;pwd=" & strpassword & ";database=" & dbpath & "\" & dbname & "].[" & tblEngage & "] " & _
"WHERE [CDP] = '" & Text285 & "'"
收到错误:
Select 语句包含保留字或参数名称, 拼写错误或丢失
感谢任何帮助
【问题讨论】:
-
这些数据库是否都位于同一台机器上?
-
是的,都在同一台机器上
-
为什么不采用简单的方法:链接一个表,然后使用
DMax函数(在任何地方,不只是在 VBA 中)。你知道如何添加链接表吗? -
我确实考虑过这一点,但我认为拥有一个链接表会使其更容易被任何未经授权的个人访问数据?所以感觉最好使用 VBA 来获取数据
-
无法执行 SELECT 语句。 Execute 用于操作语句(DELETE、UPDATE、INSERT)。使用 SELECT 语句设置记录集对象。另外,在 MaxOfOpen_Date 之后需要一个空格,这样构造的 SQL 就不会一起运行。
标签: ms-access vba ms-access-2010