9

我需要从 Access 表中生成字段列表(名称、类型和大小)。这个简单的 VB 代码给了我几乎我需要的东西:

Set rs = CurrentDb.OpenRecordset("myTable")
For x = 0 To rs.Fields.Count - 1
    Print #1, rs.Fields(x).Name & vbTab & rs.Fields(x).Type & vbTab & rs.Fields(x).Size
Next 

然而,“类型”当然是​​一个像“10”这样的数字常量,而不是像“Varchar”这样的东西。

我打算这样做:

Select Case rs.Fields(x).Type
  Case adChar
    fieldType = "adChar"
  Case adInteger
    fieldType = "adInteger"
  Case adDouble
ETCETERA....

但我想知道是否有更好的方法,比如 DataTypeEnum.FindName(Type) 之类的?

如果这是一个“愚蠢的问题”,请提前道歉,但我不是每天都在 VB 中工作,谷歌搜索对此没有明确的答案。

4

1 回答 1

7

问题(上面)下的评论中的答案非常好,不幸的是它们归结为“你不能从这里到达那里”。没有简单的方法来获取字段中包含的数据类型。我能来的最接近的是为快速n脏做这个:

Function Scripting()
    Dim rs As DAO.Recordset
    Dim ff As String
    Dim fieldType As String
    ff = "c:\Users\me\Desktop\Structure.txt"
    Open ff For Output As #1
    Set rs = CurrentDb.OpenRecordset("myTable")
    For x = 0 To rs.Fields.Count - 1
        Print #1, rs.Fields(x).Name & vbTab & TypeName(rs.Fields(x).Value) & vbTab & rs.Fields(x).Size
    Next
    Close #1
    rs.Close
    Set rs = Nothing
End Function

建议您访问Allen Browne的优秀页面并获取他的 FieldTypeName() 函数以获得更好的解决方案。

感谢所有参与回答的人(mehow、blackhawk、Chris Rolliston 和 Tim Williams)。

于 2013-11-07T01:43:46.297 回答