列名の表示順

解決


Order  2005-02-11 22:19:48  No: 119566  IP: [192.*.*.*]

ADOXでAccessのテーブルの列一覧を表示するプログラムを作成しています。
表示順が列名の昇順になってしまいます。
Accessのテーブルのデザインで登録したのと同じ並び順で表示したいのですが・・・

For Each In mCat.Tables("テーブル名").Columns
   Me.cboList1.additem col.Name
Next

ご教授願います。

編集 削除
特攻隊長まるるう  2005-02-12 03:03:08  No: 119567  IP: [192.*.*.*]

Each を使わず、Columns を1からカウントして
順に取り出して下さい。

編集 削除
Order  2005-02-12 10:57:32  No: 119568  IP: [192.*.*.*]

特攻隊長まるるうさん、ありがとうございます。
早速やってみます。

編集 削除
魔界の仮面弁士  2005-02-13 09:12:15  No: 119569  IP: [192.*.*.*]

ADOX ではなく、ADODBライブラリの方を使うとか。

# 昔、某所に投稿したサンプルより引用。
# 結果をファイルに吐いてますが、不要なら、適当に修正してみてください。

Public Sub TableInfo(ByVal conJet As ADODB.Connection, _
                     ByVal TableName As String, _
            Optional ByVal ResultText As String = "C:\A.TXT")
    Dim RS As ADODB.Recordset
    Dim intFileNo As Integer

    '列情報を取得する
    conJet.CursorLocation = adUseClient
    Set RS = conJet.OpenSchema(adSchemaColumns, _
               Array(Empty, Empty, TableName))

    '本来の列の並び順でソートする
    '(adUseServerの時は、ソートできません)
    RS.Sort = "ORDINAL_POSITION ASC"

    '結果出力
    intFileNo = FreeFile()
    Open ResultText For Output As #intFileNo
    '--- ヘッダ部
    Write #intFileNo, "列名", "初期値", "値要求", "データ型",
    Write #intFileNo, "サイズ", "バイト数", "説明"
    '--- データ部
    Do Until RS.EOF
        Write #intFileNo, RS.Collect("COLUMN_NAME"),
        Write #intFileNo, RS.Collect("COLUMN_DEFAULT"),
        Write #intFileNo, RS.Collect("IS_NULLABLE"),
        Write #intFileNo, RS.Collect("DATA_TYPE"),
        Write #intFileNo, RS.Collect("CHARACTER_MAXIMUM_LENGTH"),
        Write #intFileNo, RS.Collect("CHARACTER_OCTET_LENGTH"),
        Write #intFileNo, RS.Collect("DESCRIPTION")
        RS.MoveNext
    Loop

    '後始末
    RS.Close
    Set RS = Nothing
    Close #intFileNo
End Sub

編集 削除