정크 데이터가 데이터베이스에 입력되는 것을 방지하기 위해 일부 VBA 자동화 기능이있는 Access에서 양식이 있습니다. 자동화의 일부는 사용자가 선택을 취소 한 단계의 단계를 제거하는 것입니다. 선형 프로세스를 추적하므로 1, 2, 3 및 4 단계가 완료되고 사용자가 2를 선택 취소하면 코드가 3과 4를 선택 해제합니다.Access VBA에서 명령의 일부로 문자열 변수를 사용할 수 있습니까?
이 단계는 가능한 여러 테스트 양식에 걸쳐 펼쳐집니다. 프로그램이 자동 체크를하지 않고 호출 할 수있는 하나의 서브 루틴을 코딩하고 사용자가 클릭 한 테스트 양식을 기반으로 서브에 변수를 전달하려고합니다.
내 코드는 작동하지 않습니다. ("드라이"와 "젖은"순서대로, 그 과정에서 단계입니다.) :이 T2로 내 데이터베이스와 코드에 정의 된 시험 양식 2 만이다
Private Sub t2Dry_AfterUpdate()
Dim TFNum As String
TFNum = "t2"
'Autodate and expose wet check fields once t2dry box is checked
If t2Dry Then
t2DDate.Enabled = True
t2DDate.SetFocus
t2DDate = Date
t2Wet_Label.Visible = True
t2Wet.Visible = True
t2Wdate_Label.Visible = True
t2Wdate.Visible = True
End If
'If dry box unchecked after date entered, undo all subsequent steps
If Not t2Dry And t2date = "" Then
Dim t2DUnchk As Byte
t2DUnchk = msgbox("Unchecking this box will clear all subsequent data. Are you sure?", vbYesNo + vbQuestion, "Undo this step?")
If t2DUnchk = vbYes Then
t2DDate.SetFocus
t2DDate = ""
t2DDate.Enabled = False
clearWetData (TFNum)
Else: t2Dry = True
t2DDate.SetFocus
End If
End If
End Sub
참고. 이것이 TFNum 변수를 선언 한 이유입니다. 아래에서 7 줄을 보면, 사용자가 마른 상자를 선택 취소하고 젖은 데이터가있는 경우 젖은 데이터를 지우도록 작성한 서브 루틴을 호출하는 것을 볼 수 있습니다. 코멘트 후 첫 번째 줄 내가 할 노력하고있어의 예입니다
Private Sub clearWetData(TFNum)
'Call this subroutine to clear wet data from test forms on uncheck of dry comm step.
'This subroutine relies on the TFNum argument to decide which test form's wet data to clear.
(TFNum)Wet = False
t2Wdate.Visible = True
t2Wdate.Enabled = True
t2Wdate.SetFocus
t2Wdate = ""
t2Wdate.Enabled = False
t2Wet_Label.Visible = False
t2Wet.Visible = False
t2Wdate_Label.Visible = False
t2Wdate.Visible = False
End Sub
그건 :의 일환으로 (텍스트 "T2"를 포함하는 문자열입니다) 전달 된 변수 TFNum을 사용하여 다음 서브 루틴입니다 객체 명. "t2Wet"은 내가 지우려고하는 내 체크 박스 객체 중 하나의 이름입니다. 그래서 그것을 구문 분석하고 싶습니다.
t2로 시작하는 나머지 코드는 모두 작동합니다. 서브 루틴은 호출 될 때 체크 박스를 제외한 모든 것을 지 웁니다.
짧은 소설 죄송합니다. 가능한 한 자세하게 설명하고 싶었습니다. 당신의 도움을 주셔서 감사합니다!