我已经使用 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,甚至将表本地化。
任何帮助,将不胜感激。
谢谢。
我尝试了所有能想到的方法。
这表明 Web 服务器没有在 mdb 所在文件夹中创建文件的权限。
为了让 Access 更新数据,mdb(或较新的 accDB)所在的文件夹将需要完全读/写权限,以及文件创建权限。如果用户(或 Web 服务器)打开文件,但无法创建所谓的锁定 \'.ldb\' 文件,则数据库将以只读方式打开。这解释了为什么谁先打开会影响站点的行为(由于对包含 mdb 文件的文件夹的权限有限,站点无法创建锁定文件)。因此,Web 服务器需要的不仅仅是对该文件夹中文件的读/写权限 - 它还需要文件创建权限,以使服务器能够创建 .ldb 锁定文件)。
这表明该网站可能需要使用所谓的“模拟”。这意味着您可以考虑为该网站设置一个用户,该用户已被授予访问 mdb 所在文件夹的权限。
(并且您没有提到 mdb 文件是否与 Web 服务器位于同一台服务器上)。
当然,该服务器很可能不属于公司域的一部分。
那么,通常情况下,不是向所有人开放文件夹权限吗?可以在 Web 服务器上创建一个用户,专门授予该文件夹的权限(您不希望 Web 服务器能够干扰您网络上的所有文件夹和计算机 - 这太危险了)。
因此,可以在服务器上创建一个仅被授予该文件夹权限的用户。然后,您可以在应用程序池\“高级\”设置中使用新创建的用户:
例如这里:
如上所述,Access 并不是非常适合在网站上使用,并且有如此多的基于免费“服务器”的系统,因此几乎不需要在网站上使用 mdb 文件进行数据库操作。