访问数据库函数
我使用left()
,right()
和mid()
函数创建了一个使用Access 2010工作的数据库。然后我把数据库复制到家里的电脑上,但是现在这些功能不想在这个数据库上工作。我家里的电脑也有Access 2010.每当我尝试运行查询时,我会收到以下消息,编译此函数时出错。 Visual Basic包含语法错误。检查代码,然后再次编译。访问数据库函数
我在家里的电脑上创建了一个新的数据库来测试功能,并没有任何问题。我还注意到,在我家的电脑上,标题为Database1:数据库(Access 2007) - Microsoft Access在工作时它说 Database1:数据库(Access 2007 - 2010) - Microsoft Access。这两款个人电脑都具有Windows 7专业版,我的家用电脑大约有1年的历史,我的电脑工作大约3个月。我也在家更新/修复了我的Access,但数据库仍然不想工作。我该如何解决这个问题?
我有一个简单的表与id
柱和一个名为Name
列称之为Table1
,
id Name
1 Jason
2 Casey
3 Shasha
现在,如果我想使用左()函数在Access查询,我得到的错误信息:编译此函数时出错。 Visual Basic包含语法错误。检查代码,然后再次编译。
查询:
Select Left([Name],2) As Short_name From Table1
你想同时在VBA编辑器去工具 - >引用,并寻找失踪参考。
您可能会参考目标机器上不存在的某些软件(如单词)。
“台阶”通过观察这些破引用“步骤”这里概述:
http://www.accessmvp.com/djsteele/AccessReferenceErrors.html
破碎引用也许是在Access中最常见的问题之一将应用程序迁移到另一台机器时, 。建议您使用后期绑定并删除所有不必要的引用以“减少”发生此问题。
有64位办公室和32位访问时,我有这个问题......(why? is another question
)
通过进入VBA编辑器,打固定它“编译”一遍又一遍,这把我带到需要将ptrsafe添加到函数声明中的有问题的32位函数。 (是的,我毫不犹豫地添加了它,然后Access很高兴。
即,
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位访问的VBA试图编译64位,因为这是我所安装的Office版本。
我们需要查看程序源代码的相关部分,然后才能提供帮助。 – Dai 2014-12-06 06:44:34
你让你的代码工作?如果没有,尝试运行这个小查询:'SELECT Left(“Jason”,2);'没有任何AS或FROM。你应该得到一个包含“Ja”的记录。也可以在调试窗口中输入:'?left(“Jason”,2)',你应该得到“Ja”。如果它们都失败了,那么你的db工作可能会重新定义Left函数。 – 2014-12-19 18:56:35