人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ACCESS2003のVBAの質問です。
ADOを使って、現在あるテーブルをリストとして表示して
そこから一つのテーブルを選択して
その選択したテーブルを
下記のテーブル名として代入したいです。

Table = "テーブル名"

コードを教えてください。

●質問者: rupopon
●カテゴリ:コンピュータ 学習・教育
✍キーワード:VBA コード リスト 現在
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● y123diary
●35ポイント

テーブル名の取得にはADOXを使います。

最初にツール、参照設定でMicrosoft ADO Ext. xx for DDL and Securityへの参照設定が必要です。

下のサンプルはinputboxにテーブル一覧を表示し、番号選択で選択されたテーブル名が変数Table

にセットされるというものです。


Public Sub GetTableName()

Dim CAT As ADOX.Catalog

Dim TB As ADOX.Table

Dim TableList() As String

Dim Buf As String

Dim i As Long

Dim Table As String

Set CAT = New ADOX.Catalog

CAT.ActiveConnection = CurrentProject.Connection

For Each TB In CAT.Tables

If TB.Type = "TABLE" Then

ReDim Preserve TableList(i)

TableList(i) = TB.name

Buf = Buf & i & ":" & TB.name & vbCrLf

i = i + 1

End If

Next TB

Table = TableList(Val(InputBox(Buf)))

Set CAT = Nothing

End Sub

◎質問者からの返答

ありがとうございました。

使ってみます。


2 ● ふるるP
●35ポイント

テーブル名の取得に、システムテーブル(MSysObjects)を使う例です。

実行すると、イミディエイトウィンドウに、自データベース上のテーブル名とそのテーブルのレコード数を表示します。

Sub getRecordCounts()

Dim SQL As String

Dim SQL2 As String

Dim oRec As ADODB.Recordset

Dim oRec2 As ADODB.Recordset

Dim sFN As String

Dim Table As String

SQL = "Select Name from MSysobjects where type = 1"

SQL = SQL & " AND Name not like 'MSys%' "

Set oRec = CurrentProject.Connection.Execute(SQL)

Do Until oRec.EOF

Table = oRec.Fields(0)

SQL2 = "Select Count(*) From " & Table

Set oRec2 = CurrentProject.Connection.Execute(SQL2)

Debug.Print "テーブル名:" & Table & " /レコード数:" & oRec2.Fields(0)

Set oRec2 = Nothing

oRec.MoveNext

Loop

Set oRec = Nothing

End Sub

◎質問者からの返答

ありがとうございました。

活用させていただきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ