2012-03-06 77 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