我在Access 2010上创建了一个数据库,使用left()、right()和mid()函数进行查询。然后我把数据库复制到家里的电脑上,但是现在这些功能不想在这个数据库上工作。我的个人电脑在家里也有接入2010年。每次我尝试运行查询时都会收到以下消息,编译该函数时出错。Visual包含一个语法错误。检查代码,然后再编译它。
我在家里的pc上创建了一个新的DB来测试这些功能,而且没有问题。我还注意到,在我家里的pc上,标题是Database1 : Database(Access 2007) - Microsoft ,在工作时写着Database1 : Database(Access 2007-2010)- Microsoft 。这两台电脑都有Windows 7专业版,我的家用电脑大约1岁,我的电脑在工作大约3个月。我还在家里更新/修复了我的Access,但是DB仍然不想工作。我怎样才能解决这个问题?
我有一个简单的表,名为Table1,有一个id列和一个名为Name的列,
id Name
1 Jason
2 Casey
3 Shasha现在,如果我想在Access查询中使用left()函数,我会得到错误消息:编译这个函数时出错。Visual包含一个语法错误。检查代码,然后再编译它。
查询:
Select Left([Name],2) As Short_name From Table1发布于 2014-12-08 02:00:13
您希望在VBA编辑器中使用go tools-> reference,并查找缺少的引用。
您可能引用了目标计算机上不存在的某些软件(例如word)。
下面概述了查看这些断断续续的引用的“步骤”:
http://www.accessmvp.com/djsteele/AccessReferenceErrors.html
当将应用程序移动到另一台计算机时,中断引用可能是访问中最常见的问题之一。建议您使用延迟绑定并删除所有不必要的引用,以“减少”此问题的发生。
发布于 2017-08-16 17:39:52
我有这个问题时,64位办公室和32位访问.(why? is another question)
通过转到VBA编辑器并一次又一次地点击“编译”来修正它,这让我想到了一些冒犯的32位函数,这些函数需要将ptrsafe添加到函数声明中。(是的,我危险地添加了它,没有再想一想。)然后就很开心了。
也就是说,
Private Declare Function GetUserName _
Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) _
As Long化作
Private Declare PtrSafe Function GetUserName _
Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) _
As Long我只能猜测,我的32位access的VBA正在尝试为64位进行编译,因为这就是我安装的office版本。
发布于 2018-07-17 21:24:45
与查询中使用的简单字符串函数完全相同的问题.
修复是不一样的:我复制了一个VBA模块(一个与在查询中使用Left("FFFF",2)完全无关的函数)。
问题是,我意外地在复制的模块顶部添加了“选项比较数据库”两次。
https://stackoverflow.com/questions/27328974
复制相似问题