読者です 読者をやめる 読者になる 読者になる

φ(..) ビボ~6 φ(..)

主にAccess、VBAに関する備忘録

テーブルが存在するかどうか

MS Access VB ADO

OpenSchema メソッド

'/*
'/* テーブルの存在有無
'/*
'/*     引数:   テーブル名
'/*     戻値:   True 有/ False 無
'/*
Private Function fnExistTable(pTbName As String) As Boolean
    
    Dim bExist  As Boolean
    Dim rs  As New ADODB.Recordset
    
    Set rs = Con.OpenSchema(adSchemaTables)
    Do Until rs.EOF
        'Debug.Print rs!TABLE_NAME
        If rs!TABLE_NAME = pTbName Then
            bExist = True
            Exit Do
        End If
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    
    fnExistTable = bExist
End Function

OpenSchema(adSchemaTables)により取得したレコードの主要フィールド

  • TABLE_NAME : テーブル名(システムテーブル、ビューを含んでいる)
  • TABLE_TYPE : テーブルタイプ
    • SYSTEM TABLE
    • TABLE
    • VIEW