2010-09-14 57 views
0

我想在Access VBA中將數字格式化爲貨幣。vba格式函數拋出類型不匹配錯誤

在不久的窗口,當我輸入:

? Format(123, "Currency") 

我得到預期的迴應: 「$ 123.00」

然而,在代碼窗口,當我輸入:

Debug.Print Format(123, "Currency") 

我得到一個指向該行的錯誤:「運行時錯誤'13':類型不匹配」

爲什麼doe在即時窗口中使用相同的簡單代碼工作,但在從代碼窗口運行時發生錯誤?

回答

1

我不明白爲什麼你的第二個例子會導致錯誤。下面的子例程編譯和運行沒有錯誤我訪問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

0

你說的代碼窗口是什麼意思?

這工作:

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

End Sub 
0

在調試窗口,你只要不使用Debug.
Print相當於?
所以Debug.Print Format(123, "Currency")代碼應在調試窗口
Print Format(123, "Currency")? Format(123, "Currency")