|
こんにちは。
テーブルtbl_TRAININGと主フォームF_ModProgramとそのサブフォームSF_Programがあります。tbl_TRAININGの中は、Program_ID(オートナンバ型)、 Program_Name(テキスト)とします。主フォームにはサブフォームのほかにテキストボックスProgramName、flgProgramID、DirtyFlg、そして実行ボタンbtnExecuteがあるとします。サブフォームのレコードソースはtbl_TRAININGです。
サブフォームに表出されたtbl_TRAINING中のProgram_Nameを選択し、それを主フォーム上のテキストボックスProgramNameに入力された文字列で上書きしたいのです。下記までコードができていますが、テキストボックスに何か入れて実行すると、パラメーターを聞いてきてしまい、また入力しなくてはいけません。どこが悪くて聞いてきてしまうのでしょうか。どなたかアドバイスをお願いします。
Private Sub btnExecute_Click()
On Error GoTo ErrorHandler
If DirtyFlg = 1 Then
Dim strCriteria
Dim strConn
strCriteria = "UPDATE tbl_TRAINING SET "
strConn = ""
If IsNull(ProgramName) = False Then
strCriteria = strCriteria & strConn & "Program_Name = " & [Forms]![F_ModProgram]![ProgramName] & " "
strConn = ", "
End If
strCriteria = strCriteria & "WHERE Program_ID = " & [Forms]![F_ModProgram]![flgProgramID] & ";"
DoCmd.RunSQL strCriteria
Else
MsgBox "No Need to Change"
Exit Sub
End If
Me!DirtyFlg = 0
Me!flgProgramID = Null
Me!ProgramName = Null
MsgBox "Update Completed"
Exit Sub
Private Sub ProgramName_AfterUpdate()
Me!DirtyFlg = 1
End Sub
なおサブフォームのコードは以下のとおりです。
Private Sub Program_Click()
Forms!F_ModProgram!flgProgramID = Me!Program_ID
Forms!F_ModProgram!ProgramName.SetFocus
End Sub
|
|