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 

ただし、「タイプ」はもちろん、「Varchar」などではなく、「10」などの数値定数です。

私はこれをするつもりでした:

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

しかし、 DataTypeEnum.FindName(Type) などのようなより良い方法があるのだろうか?

これが「ばかげた質問」である場合は事前に謝罪しますが、私は毎日 VB で作業しているわけではなく、Google はこれについて明確な回答を提供していません。

4

1 に答える 1

7

質問 (上記) の下のコメントの回答は優れていますが、残念ながら、「ここからそこに行くことはできません」という結論になります。Field に含まれるデータ型を取得する簡単な方法はありません。私が来ることができた最も近いものは、クイックアンドダーティのためにこれを行うことでした:

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 に答える