Microsoft Access Club >Access一日一見 >このページ >次頁 <前項  サイト内検索


レコードの変更 - オプション設定をVBAで操作する



Accessのメニューバーにある下記のオプション設定をVBAで操作する方法があります。割と簡単に実現できます。 今回は、確認項目欄にある「レコードの変更」のオプション機能の設定をプロシージャで制御する方法を紹介します。

オプション画面

レコードの変更

レコードの変更オプションでは、アクションクエリなどでテーブルデータが変更されるような状況下で警告メッセージを表示させるか否かの設定ができます。
チェックオンにすると、誤ってテーブルデータの変更を行ってしまうことはありませんが、変更前にはダイアログが表示されてしまい、作業が一時中断になってしまいます。なお、VBAで操作できるのは、警告メッセージのオン、オフの 切り替え機能だけです。

これを実現するためには、下記の2つのメソッドと1つの引数を使うだけです。

  1. GetOptionメソッド
    状態を取得し表示させることもできます。
  2. SetOptionメソッド
    設定値を更新させることができます。
  3. Confirm Record Changes
    引数です。

サンプルプロシージャの作成

何れでも利用できるようにFunctionプロシージャを作成します。

Function OptionRecordChangesSet()

On Error GoTo エラー

    Dim strMag As String
    Dim varGet As Variant 'バリアント型の変数を定義する。
    Dim varSet As Variant 'バリアント型の変数を定義する。
        
    'オプション機能「レコードの変更」設定を操作する。
    varGet = Application.GetOption("Confirm Record Changes")
        
    Select Case varGet
        Case -1: varGet = "有効"
        Case 0: varGet = "無効"
    End Select
        
    strMag = "「レコードの変更」時のメッセージ設定は、" & _
             "現在 " & varGet & " です。" & _
             vbNewLine & "変更する場合はOKをクリックして下さい"
        
    If 1 = MsgBox(strMag, 17) Then
    
        varSet = InputBox("機能を有効にする場合はTrue、無効はFalseを入力。")
        
        '戻り値がTrue、Falseであれば設定する。
        If Not IsNull(varSet) Then
        
            Call Application.SetOption("Confirm Record Changes", varSet)
            
        End If
                
    End If
    
Exit Function

エラー:

    MsgBox "何か予期せぬエラーが発生しました。" & vbNewLine & _
            Err.Number & vbNewLine & _
            Err.Description, 16, "管理者"
    Exit Function

End Function
実行結果
  1. このプロシージャをイミディエイトウィンドウで実行してみると、下記のようにメッセージボックスが表示されます。

  1. OKをクリックすると、下記のInputBoxが開きますので必要な設定を行います。

補足

今回ご紹介しているのは、Accessの基本設定のなかで警告メッセージを表示させる、させないを制御する方法です。しかし、特定のイベントを実行するときだけ、 表示させる、させないを切り替えたい場合は、SetWarningsメソッドを用います、

利用方法は、プロシージャ内で下記のように記述します。

            DoCmd.SetWarnings False '警告メッセージをオフにします。
            DoCmd.OpenQuery "qry_sample", acNormal ' 削除クエリを実行します。
            DoCmd.SetWarnings True '警告メッセージをオンに戻します。

このようにすることで、qry_sample削除クエリの実行時のみ、警告メッセージが非表示になります。

関連ページ

2003/10/31

ページの先頭へ 前ページへ戻る

 


レコードの変更 - オプション設定をVBAで操作する


-Microsoft Access Club-

cPanel あるいは PLESKコントロールパネルをインストールした専用レンタルサーバのディスカウントプランを期間限定で公開しています。
cPanel・PLESKコントロールパネルを備えた専用レンタルサーバ....。