Microsoft Access 掲示板

With CodeContextObject の IF の使い方でエラーになります。 / 5

7 コメント
views
4 フォロー
5
hatena 2019/09/26 (木) 11:25:11 修正

正常に動作しているなら、下記でいいかと。

Private Sub 月割_AfterUpdate()

    If Me.チェック460 = True Then
        Me.月割金額 = DLookup("[金額]", "Q_金額表", "[Q_金額表]![月]=[月割]")
    Else
        Me.月割金額 = DLookup("[金額]", "Q_金額表NEW", "[Q_金額表NEW]![月]=[月割]")
    End If
End Sub

ちょっと解説すると、

[フォーム1]![チェック460] ではフォーム上のコントロールを参照できないのでエラーになります。
Forms![フォーム1]![チェック460] とする必要があります。こうすればエラーになくなります。

コードが記述してあるフォーム(オブジェクト)は Me で参照できますので、Me!チェック460 と記述することもできます。

CodeContextObject はコードが実行されているオブジェクトという意味ですのでこれでもOKです。でも、長いので Me の方が楽ですよね。

通報 ...