AccessVBAの備忘録記事です。テーブルのフィールド数を数えるには?
以下の方法1,2どちらでも可能
方法1
Dim pMyTdf As TableDef, pMyDB As Database Set pMyDB = CurrentDb Set pMyTdf = pMyDB.TableDefs("ここにテーブル名") MsgBox pMyTdf.Fields.Count
ただしクエリなどだとこれはうまく行かない
方法2
Dim pMyCN As New ADODB.Connection, pMyRS As New ADODB.Recordset Set pMyCN = CurrentProject.Connection pMyRS.Open "ここにテーブル名", pMyCN, adOpenKeyset, adLockReadOnly MsgBox pMyRS.Fields.Count Set pMyRS = Nothing Set pMyCN = Nothing
pMyRs.Openの行の「ここにテーブル名」の部分は、SQL構文を生成して文字列で放り込んでもOK