我已经使用 VB、VBA 和 Access 编程多年,但这对我来说还是个新手...我有两个表,它们的字段名称相同,属于短文本数据类型 (255)。所有其他属性...
我已经使用 VB、VBA 和 Access 编程多年,但这对我来说还是新鲜事……
我有两个表,它们的字段名称相同,都是短文本数据类型 (255)。所有其他属性都相同。一个表在此字段中具有不同的值,另一个表具有许多相同的值。当我使用此字段在查询中连接这两个表时,它不会返回所有匹配的行。例如:
SELECT tProjects.[Original Project]
, tActivity.[Original Project]
FROM tProjects
INNER JOIN tActivity ON tProjects.ID = tActivity.ProjectID
WHERE (((tProjects.[Original Project])="Mike Simpson:1967 Alfa Romeo Duetto Spider"));
我可以打开每个表并复制/粘贴上述条件中使用的字符串。两个表在 [Original Project] 字段中都有相同的字符串... \'Mike Simpson:1967 Alfa Romeo Duetto Spider\'。如果我从一个表复制并粘贴并仅在该表上使用此条件,它会返回值。但是,我在具有完全相同文本、文本长度和字段属性的另一个表上使用复制的值,它不会返回值。如果我打开第二个表并复制文本并将其用作针对第二个表的选择查询中的字符串条件,它会返回记录。
我还注意到一个奇怪的行为,即只有当字符串少于 23 个字符时,在字符串末尾使用 \'Like\' 和通配符才有效。
由于我正在导入文本文档并循环查找新项目,即 - 与现有项目不匹配,因此这突然弄乱了我的数据库。因此,我突然得到了重复的项目。
我尝试了前端和后端数据库的 R&C,甚至将表本地化。
任何帮助,将不胜感激。
谢谢。
我尝试了所有能想到的方法。
我检查了域用户是否允许(完全控制)DB文件夹和Temp JET文件夹。
我使用应用程序身份和进行了测试, Administrator
结果 AppPoolIdentity
相同。
应用程序是经典的 ASP;它是一个本地网站,托管在 DC 上,使用用户的域凭据。它在 Windows Server 2009/IIS8 上运行良好。我无法更改 DB 内核,因为这个 DB 正在用于许多应用程序。
我使用 Windows 身份验证,禁用匿名访问,并有两个提供程序:\'NTLM\' 和 \'Negotiate\';这些是默认选项 web.config
.
我刚刚发现,当域用户访问内联网时, connection.open
系统事件日志中会引发警告:
5009,WAS,为应用程序池“IntranetAPPPOOL”提供服务的进程意外终止。进程 ID 为“880”。进程退出代码为“0xffffffd”。
这意味着在下面的简单代码中 global.asa
:
Sub Session_OnStart
strconn = "ODBC;DSN=MyDBdns;DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}"
set conn = Server.CreateObject("ADODB.Connection")
conn.open strconn
End sub
不 Server.CreateObject("ADODB.Connection")
涉及;警告( broken_pipe
)和身份验证请求来自 conn.open strconn
.