在Access中,根据表进行选择有效,而视图则不行。
Postgres,v9.4
新版本的MS-Access 365,v2303
驱动程序=PostgreSQL Unicode,v13.02 2021/9/22
参数:PORT=5432; A1=7.4-1;B0=255; B1=8190;B6=0; C2=dd_;
选择Postgres中的存款表将返回正确的数据和正确的行数。5个记录,都不一样,正如预期的那样。
SELECT *
FROM "Deposits"
WHERE "Deposit_Slip_Number"='2305-6';
在Postgres中对视图进行选择将返回正确的数据和正确的行数。15条记录,都不一样,正如预期的那样。
SELECT *
FROM "vw_rptDeposits_OnBankStatement"
WHERE "Deposit_Slip_Number"='2305-6';
在Access中选择存款表将返回正确的数据和正确的行数。5个记录都不一样,正如预期的那样。
SELECT *
FROM Deposits
WHERE Deposit_Slip_Number='2305-6';
在Access中对视图进行选择返回不正确数据,但返回正确的行数。15条记录与第一条记录完全相同,与预期不同。
SELECT *
FROM vw_rptDeposits_OnBankStatement
WHERE Deposit_Slip_Number='2305-6';
我重启了我的机器,重启了postgres服务。
司机一年没换了。
如果我在不同的服务器上点Access,结果相同,表工作,视图不工作。
唯一改变的是我正在处理视图,但这不应该影响它传输数据的方式。而另一个数据库具有原始视图。
视图和表只是传递表,链接到Postgres,不依赖于Access本地的任何东西。
这些是通过代码链接的无DNS表。所有其他视图看起来都是正确的。
1条答案
按热度按时间ac1kyiln1#
在Access中链接ODBC视图时,需要指定唯一的PK,以便它们正确工作。
如果没有给出PK,通常的问题是链接视图是只读的。
但是如果指定非唯一列作为PK,则可能会出现各种问题。
对于链接的ODBC表,PK是自动标识的(至少对于MSSQL是这样)。