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

Aur*_*ora 5 sql ms-access jet ms-access-97

我目前正在为Access 97进行SQL查询.给出以下表格(为演示目的而简化),每个表都位于不同的mdb文件中:

C:\ db\db1.mdb中的Table1:

PartyId (PK)    Name
------------    --------    
1               A
2               B
3               C
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

在这里,我想根据定义的日期查找每一方的最新价值.所以,比方说,我将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
Run Code Online (Sandbox Code Playgroud)

我在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);
Run Code Online (Sandbox Code Playgroud)

问题是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);
Run Code Online (Sandbox Code Playgroud)

但是,这总是会导致语法错误.我怀疑在后面的括号中找到了

INNER JOIN [ … [;database= … ] … ] 
Run Code Online (Sandbox Code Playgroud)

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

Aur*_*ora 5

最后,经过无数次试错会后,我找到了解决方案.这条线似乎工作,也避免了两个开口方括号后面:

FROM Table2 IN '' ';database=C:\db\db2.mdb;PWD=mypwd'
Run Code Online (Sandbox Code Playgroud)

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