Access

VBAでテーブルの存在チェックをする関数

テーブル存在チェック
記事内に商品プロモーションを含む場合があります

Accessのテーブルが存在するかどうか確認する関数

テーブルに対して処理をする際に、事前にそのテーブルが存在するかどうかチェックする関数を作成しました。

使用用途

通常「使うはずのテーブルがない」なんてことはありませんが、

テンポラリーテーブルとして一時的に使う場合など、

「テーブルを作成する前に以前作成したテーブルが残っているかどうか確認し、残っていたら削除してから処理を始める。」といったケースがあります。

その際、存在しないテーブルを削除するとエラーが発生します。

エラーコードを見てエラーをスキップしてもいいのですがあまりスマートではないので

まずは一旦テーブルの有無を確認し、あれば事前に削除するという方法がベターです。

実装方法

以下の関数を作成しました。

引数としてチェック対象のテーブル名を文字列で渡し、存在すればTrue、存在しなければFalseを返します。

'------------------------------------------------------------
'   処理内容:テーブル存在チェック
'   引数:テーブル名
'   戻り値:True/False
'  更新:
'------------------------------------------------------------
Public Function IsTable(strTableName As String) As Boolean

    Dim myTDef  As DAO.TableDef

    '戻り値初期化
    IsTable = False
    
    For Each myTDef In CurrentDb.TableDefs
        If myTDef.Name = "テーブル名" Then
            '存在した場合はFlagをTrueにしてループを抜ける
            IsTable = True
            Exit Function
        End If
    Next
    
End Function

\逆引き辞書があると便利です/
[itemlink post_id=”1386″]

ABOUT ME
アズビーパートナーズ
プログラマー→社内SE→SIerのお仕事をしています。 メーカー勤務を経て、中小企業の社内SE、フリーランスなど様々な形態で働いてきました。 業務上生まれた困った…を解決してきたTipsを備忘録も兼ねて公開しています。 困っている誰かのお役に立てれば幸いです。