2012-03-06 78 views
0

我想從DAO記錄集中獲取數據類型。下面的代碼:DAO中的枚舉沒有常規的系統方法?

Public Function EditFormData(frm As Form) 
    Dim rst As DAO.Recordset 
    Dim fieldType as DAO.DataTypeEnum 

    Set rst = frm.RecordsetClone 
    rst.MoveFirst 

    fieldType = rst.Fields(0).Type 
    MsgBox fieldType.ToString 

我得到一個無效的限定符錯誤的字段類型中的msgbox當我嘗試運行這一點,不知道爲什麼,因爲這是我首次涉足枚舉。

+0

Docs聲明'Type'返回一個整數結果,而不是一個枚舉。另請參閱:http://allenbrowne.com/func-06.html – 2012-03-06 19:39:28

+0

@TimWilliams我的理解是返回的整數對應於DAO.DataTypeEnum中的數據類型條目,所以我試圖獲取相應的字符串。然而,鏈接到的函數描述了每個值的硬編碼,並且它是字符串對應的,以便將整數從字符串轉換回字符串,基本上將內置的枚舉與該信息分離。我希望避免這樣做,但如果沒有簡單的方法,我可以。謝謝你的鏈接。 – Crimius 2012-03-06 19:47:20

+0

VB中的枚舉[A]沒有那個方便的「ToString()」方法。在函數中手動編碼字符串值並不好玩,但幸運的是有人已經爲你做了... – 2012-03-06 20:59:08

回答

0

你知道記錄集的當前位置是什麼嗎?如果它在EOF,那麼你將遇到麻煩。嘗試在獲取字段類型之前調用rst.MoveFirst。

+0

修正了它。它在我原來的代碼中,只是錯過了它的副本。 – Crimius 2012-03-06 19:11:16

+0

應該澄清我用rst.MoveFirst修復了帖子,但仍然遇到原始問題 – Crimius 2012-03-06 19:36:22

+0

Type屬性實際上定義爲Integer。我會嘗試將字段類型定義爲一個整數。 – 2012-03-06 19:54:23