sql - 在 Access 97 中的 SQL 查询中 Access 另一个受密码保护的数据库

标签 sql ms-access jet ms-access-97

我目前正在处理 Access 97 的 SQL 查询。给出了以下表(为演示目的而简化),每个表都位于单独的 mdb 文件中:

C:\db\db1.mdb 中的表 1:

PartyId (PK)    Name
------------    --------    
1               A
2               B
3               C

C:\db\db2.mdb 中的表 2:
PartyId (PK)    Date (PK)    Value
------------    ---------    -----
1               6/30/2014    4
1               7/1/2014     8
2               5/3/2014     3  
3               5/5/2014     5
3               5/3/2014     1
3               5/2/2014     2

在这里,我想根据定义的日期查找每一方的最新值。因此,假设我将 7/5/2014 标记为目标日期,那么我的查询应返回以下内容:
PartyId    Name    Date        Value
-------    ----    --------    -----
1          A       7/1/2014    8
2          B       5/3/2014    3
3          C       5/5/2014    5

我在 C:\db\db1.mdb 数据库中创建了以下查询:
SELECT T.TPartyId, Name, T.TDate, T.TValue
FROM Table1 INNER JOIN [
SELECT Table2.PartyId AS TPartyId, MAX(Table2.Date) AS TDate, FIRST(Value) AS TValue 
FROM Table2 IN 'C:\db\db2.mdb'
WHERE Table2.Date <= #7/5/2014#
GROUP BY Table2.PartyId]. AS T 
ON (Table1.PartyId = T.TPartyId);

问题是 Table2 实际上位于受密码保护的数据库文件中。因此,我尝试修改查询,如 http://support.microsoft.com/kb/113701 中所述。 ,到以下几点:
SELECT T.TPartyId, Name, T.TDate, T.TValue
FROM Table1 INNER JOIN [
SELECT Table2.PartyId AS TPartyId, MAX(Table2.Date) AS TDate, FIRST(Value) AS TValue 
FROM [;database=C:\db\db2.mdb;PWD=mypwd].Table2
WHERE Table2.Date <= #7/5/2014#
GROUP BY Table2.PartyId]. AS T 
ON (Table1.PartyId = T.TPartyId);

但是,这总是会导致语法错误。我怀疑在
INNER JOIN [ … [;database= … ] … ] 

声明是失败的原因。不幸的是,Access 97 总是要求将别名括在方括号中,后跟一个句点,而 Access 2000 及更高版本没有此限制。有什么办法可以用 Access 97 完成这个查询吗?谢谢。

最佳答案

最后,经过无数次反复试验,我找到了解决方案。此行似乎有效,并且还避免将两个左方括号放在一起:

FROM Table2 IN '' ';database=C:\db\db2.mdb;PWD=mypwd'

遗憾的是,这没有以适当的方式记录在某处。

关于sql - 在 Access 97 中的 SQL 查询中 Access 另一个受密码保护的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24587061/

相关文章:

java - 插入表时如何访问值?

尝试更新段落后出现 MYSQL 错误

ms-access - 函数在 Ms Access 中返回 0 值

database - 如何使可扩展存储引擎数据库收缩? - 数据库里面不应该有太多数据吗?

php - 登录后从数据库中提取各个用户的数据

sql - 使用SQL查询选择最近30天

sql-server - 更改无 DSN Access 前端的 SQL 连接信息

java - 安卓和微软 Access

delphi - 尝试访问 Delphi 7 中的 Excel 表时的提供程序选择

c# - 我需要解决 Excel 猜测数据类型问题的方法