vba格式函数抛出类型不匹配错误

问题描述:

我想在Access VBA中将数字格式化为货币。vba格式函数抛出类型不匹配错误

在不久的窗口,当我输入:

? Format(123, "Currency") 

我得到预期的回应: “$ 123.00”

然而,在代码窗口,当我输入:

Debug.Print Format(123, "Currency") 

我得到一个指向该行的错误:“运行时错误'13':类型不匹配”

为什么doe在即时窗口中使用相同的简单代码工作,但在从代码窗口运行时发生错误?

我不明白为什么你的第二个例子会导致错误。下面的子例程编译和运行没有错误我访问2003系统上:

Public Sub test_Format() 
    Debug.Print Format(123, "Currency") 
End Sub 

尝试在一个新的数据库例程。也许你当前的数据库已损坏。

看苗托斯Corrupt Microsoft Access MDBs FAQ

+0

我试图在一个新的数据库,它的工作。我怎样才能确定我的数据库是否损坏?其他代码正确执行。 – LFurness 2010-09-14 17:23:55

+0

请访问我添加的链接以了解详细的背景信息。首先,我将制作数据库的备份副本。然后尝试紧凑和修复...如果问题消失,你知道它已经腐败。如果紧凑和修复不能解决你的问题,你可以尝试反编译。但我想我可能会将您想要从旧数据库保留的所有内容导入新的新数据库。 – HansUp 2010-09-14 18:21:20

+1

在VBE编辑器中检查项目的参考。奇怪的事情发生在遗失/损坏的引用,虽然你的问题不是我以前注意到的真正的症状。检查不会造成伤害。 – HansUp 2010-09-14 18:24:33

你说的代码窗口是什么意思?

这工作:

Private Sub Form_Load() 
     Debug.Print Format(123, "Currency") 

End Sub 

在调试窗口,你只要不使用Debug.
Print相当于?
所以Debug.Print Format(123, "Currency")代码应在调试窗口
Print Format(123, "Currency")? Format(123, "Currency")