현재 전임자의 작업에서 상속 한 Access Database VBA를 개선하려고합니다. 나는 특정한 형태로 풀려났다.여러 텍스트 상자 및 조회
나는 현재 폼이 32 개의 개별 텍스트 상자를 포함하는 커다란 폼을 가지고 있으며 각각 뒤에 동일한 코드가 있지만 텍스트 상자에 대한 참조 만 변경되어 각 텍스트 상자에 대해 동일한 코드가 반복됩니다. 버튼을
If Not IsNull([Cand_Name1]) Then
Rope = Rope & " Or Cand_No = " & [Cand_No1]
End If
을 누르면 한 번 그런
Private Sub Cand_No2_AfterUpdate()
Cand_Name2 = DLookup("[Name]", "[qryExamAbsences]", "[Cand_No] = Cand_No2")
End Sub
은 (If 문은 버튼 mouseDown 이벤트에 포함되어 있습니다.)
다음 인 보고서를 필터링 각 텍스트 상자 발생 사무실 용으로 인쇄. 이 문제는 많이 있지만 문제를 해결하기 위해 노력하고있는 주요 항목은 항목 수가 많다는 것입니다. 32 개를 필터링해야 텍스트를 삭제하고 다시 시작해야합니다.
이 모든 것을 하나의 코드 섹션에 결합하여 필요한 경우 텍스트 상자를 만드는 방법이 있습니까?
EDIT.
사용자 관점에서 양식이 개선 된 각 입력 후에 텍스트 상자가 작성된다는 인상을 사용자에게 줄 수있는 방법을 발견했습니다 (더 이상 텍스트 상자가 없거나 인쇄 단추로 스크롤하지 않아도 됨). .) 그러나 이것은 여전히 각 상자마다 여분의 코드를 반복해야하기 때문에 지저분한 코드 문제를 해결하지 못했고 최대 32 개의 항목을 여전히 남겨 둡니다. 다음과 같이
새로운 코드는 다음과 같습니다
If Not IsNull(Cand_Name1.value) Then
Cand_No2.Visible = True
Cand_Name2.Visible = True
cmdPrint.Top = 2500
cmdPrint.Left = 2500
DoCmd.MoveSize 1440, 2201, , 4000
Else
Cand_No2.Visible = False
Cand_Name2.Visible = False
cmdPrint.Top = 2000
DoCmd.MoveSize 1440, 2201, , 3500
End If
은 기본적으로 다음 텍스트 상자에 표시하게하고 새로운 텍스트 상자를위한 공간을 만들기 위해 아래로 인쇄 버튼을 이동합니다. 또한 창을 확장합니다.
여기 코드로 수행하려는 작업에 대해 약간 혼란 스럽습니다. 사용자가 텍스트 상자에 입력을 마친 후에 일치하는 Cand_No의 이름을 변수에 넣은 다음 나중에 결과를 인쇄하는 데 사용되는 쿼리 문자열에 버튼을 한 번에 하나씩 추가합니다. 최종 결과와 투입물에 대해 더 많이 알고 있다면 훨씬 효율적인 방법으로 도움을받을 수 있습니다. – StuckAtWork
죄송합니다. 도움이 될만한 물건을 놓친 것을 깨닫지 못했습니다. 나는 이런 종류의 일에 굉장히 숙련 된 사람은 아니지만 그저 그 일에 열중하고있다. 프로세스는 다음과 같습니다. 사용자가 텍스트 상자에 CAND_NO를 입력하면 cand_name을 조회하고 인쇄 된 보고서를 필터링하여 입력 된 내용 만 필터링합니다. CAND_No가 사용되는 이유는 다른 프로세스로 인한 것이며 CAND_Name 검색은 사용자가 올바른 사람이 입력되었는지 확인할 수 있도록해야합니다.CAND_Name은 사용자가 CAND_NO를 입력 한 텍스트 상자 옆에 표시됩니다. – KorgyBoy
내 목표는 양식에 대한 어색함을 너무 제거합니다. 현재 32 개의 텍스트 상자가 모두 표시되어있어 혼란 스러울뿐 아니라 양식 뒤에있는 코드를 개선하고 일반적으로 더 효율적으로 만들고 싶습니다. 나는 심하게 설계된 10 년의 추가 기능을 가진 데이터베이스를 물려 받았고 그 대신 멀리 옮겨서 그 대신 그것을 개선하려고 노력하고있다. – KorgyBoy