访问数据库函数

问题描述:

我使用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 
+0

我们需要查看程序源代码的相关部分,然后才能提供帮助。 – Dai 2014-12-06 06:44:34

+0

你让你的代码工作?如果没有,尝试运行这个小查询:'SELECT Left(“Jason”,2);'没有任何AS或FROM。你应该得到一个包含“Ja”的记录。也可以在调试窗口中输入:'?left(“Jason”,2)',你应该得到“Ja”。如果它们都失败了,那么你的db工作可能会重新定义Left函数。 – 2014-12-19 18:56:35

你想同时在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版本。