SSブログ

Access小僧:デフォルト値を入力 [コンピューター]

更新をサボっていました。

医療費控除の医療費明細を作るAccessファイルがあって、医療費の入力を行うフォームで氏名を変更したら、病院、治療内容、交通費の値を、その人が良く行く病院の値(デフォルト値)に変更するマクロがあるのですが、そのマクロの変更です。

【変更内容】
病院、治療内容、交通費の値、全てがデフォルト値だったら、病院、治療内容、交通費の値を変更せずにマクロを終了する。

【変更後のマクロ】
変更部分を赤字で示します。

Private Sub 氏名ID_LostFocus()
  '【機能】氏名IDが変更されたら、病院ID、治療内容ID、交通費IDをデフォルト値に変更する
  '【変数】
  Dim myAns As Integer ' 答え
  Dim Int病院ID, Int治療内容ID, Int交通費ID As Integer
  Dim St病院, St治療内容, St交通費, St氏名 As String
  Dim myString1 As String
  '【実行コード】
  ' 病院ID、治療内容ID、交通費IDのデフォルト値
  ' 氏名ID ⇒ Int病院ID
  Int病院ID = DLookup("病院ID", "MT_氏名", "氏名ID=" & [氏名ID])
  ' 氏名ID ⇒ Int治療内容ID
  Int治療内容ID = DLookup("治療内容ID", "MT_氏名", "氏名ID=" & [氏名ID])
  ' 氏名ID ⇒ Int交通費ID
  Int交通費ID = DLookup("交通費ID", "MT_氏名", "氏名ID=" & [氏名ID])
  ' 現在の病院ID、治療内容ID、交通費IDが既にデフォルト値だったら、処理終了する
  If ([病院ID] = Int病院ID) And ([治療内容ID] = Int治療内容ID) And ([交通費ID] = Int交通費ID) Then
    Exit Sub
  End If
  St病院 = DLookup("病院名", "MT_病院", "病院ID=" & Int病院ID)
  St治療内容 = DLookup("治療内容", "MT_治療内容", "治療内容ID=" & Int治療内容ID)
  St交通費 = DLookup("着駅", "MT_交通費", "交通費ID=" & Int交通費ID)
  St氏名 = DLookup("氏名", "MT_氏名", "氏名ID=" & [氏名ID])
  myString1 = "病院ID=" & Int病院ID & "(" & St病院 & ")" & vbCrLf
  myString1 = myString1 & "治療内容ID=" & Int治療内容ID & "(" & St治療内容 & ")" & vbCrLf
  myString1 = myString1 & "交通費ID=" & Int交通費ID & "(" & St交通費 & ")" & vbCrLf
  myString1 = myString1 & St氏名 & "のデフォルト値に変更しますか?"
  myAns = MsgBox(myString1, vbOKCancel + vbExclamation + vbDefaultButton2)
  ' Debug.Print "氏名=" & DLookup("氏名", "MT_氏名", "氏名ID=" & [氏名ID])
  ' OKが押されたら、病院ID、治療内容ID、交通費IDをデフォルト値に変更する
  If myAns = vbOK Then
    [病院ID] = Int病院ID
    [治療内容ID] = Int治療内容ID
    [交通費ID] = Int交通費ID
  End If
End Sub
タグ:access VBA
ヤバイぜ!(10)  コメント(1) 
共通テーマ:パソコン・インターネット

ヤバイぜ! 10

コメント 1

cheese999

ヤバイぜ!ありがとうございます。(^^♪
by cheese999 (2023-09-22 02:01) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字(英大文字の「オー」、英小文字の「ユー」、アラビア数字の「ハチ」、アラビア数字の「イチ」、アラビア数字の「ニ」)を入力してください。

Facebook コメント

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。