따라서 6개의 쿼리가 있고 매월 말에 한 번씩 모두 실행하려고 합니다. (저는 SQL에 대해 조금 알고 있지만 단순히 Access의 디자인 보기를 사용하여 구축되었습니다.) 따라서 앞으로 며칠 동안 5월이 막 끝났으므로 5월에 대해 6개의 쿼리를 실행하게 될 것입니다. 방금 끝난 달의 데이터만 원하므로 쿼리에는 월 이름(예: 5월)으로 Criteria가 설정되어 있습니다. 이제 매달 이 모든 것을 변경하는 데 시간이 많이 걸리지는 않지만 이를 자동화할 수 있는 방법이 있습니까? 현재는 모두 4월로 설정되어 있는데, 며칠 뒤에 실행하면 모두 5월로 변경하고 싶습니다. 그리고 매달, 월을 한 번만 입력하고(아마도 양식의 텍스트 상자나 더 나은 방법을 알고 있는 경우 다른 곳에) 6개 쿼리를 모두 수동으로 열 필요 없이 스크롤하여 6개 쿼리를 모두 변경하도록 하고 싶습니다. 오른쪽 필드로 이동하여 기준을 변경합니다.
참고(VBA 관련): Excel VBA를 사용해 본 적이 있어서 VBA의 기본은 알고 있지만 Access에 대해선 아무것도 모릅니다(코드를 몇 번 본 것 외에는). 그리고 Access VBA에 대해 전혀 모르는 다른 사람들도 이것을 사용할 것입니다. 그래서 비슷한 것을 찾은 것 같아요질문 답변VBA에서도 가능하지만 저는 다른 방식으로 하고 싶습니다. 나중에 Access VBA를 전혀 모르는 사람이 쿼리를 약간 다시 디자인해야 하는 경우 가능하다면 VBA를 포함하지 않는 솔루션을 사용하는 것이 좋을 것입니다.
답변1
쿼리를 실행할 때 쿼리에서 월을 묻는 간단한 방법이 있습니다. 쿼리에서 현재 월 이름이 있는 동일한 위치에 [Enter Month]를 입력합니다.
쿼리가 실행되면 월을 입력하는 대화 상자가 나타납니다. 대괄호 안에 원하는 텍스트를 넣을 수 있습니다. "월"이라고 말할 필요는 없습니다. 이는 단순히 대화 상자에 표시될 내용을 정의합니다. 이 기술을 "매개변수 쿼리"라고 합니다.
단일 단계로 6개 쿼리를 모두 실행하려면 VBA 코드가 필요하지만 코드는 매우 간단합니다. 최종 사용자는 VBA에 대해 아무것도 알 필요가 없습니다. 양식을 열고 버튼만 클릭하면 됩니다.
양식을 만들고 그 위에 버튼 하나를 놓습니다. 해당 버튼의 속성 목록에서 이벤트 탭을 선택한 다음 "On Click" 이벤트를 선택합니다. On Click 이벤트에 대해 "..." 버튼을 클릭합니다.
그러면 올바른 위치(Private Sub Command0_Click)에 커서가 있는 VBA 코드 창이 열립니다. 여기서 Command0은 버튼의 이름입니다. 표시된 대로 코드를 입력하세요.
쿼리를 올바른 이름으로 대체하고 필요한 만큼 코드 줄을 반복하십시오. 이제 양식을 열고 버튼을 클릭하면 모든 쿼리가 한 번에 실행됩니다.
다음 단계
최종 개선 사항은 매개변수를 한 번만 입력하면 모든 쿼리에 자동으로 적용되도록 하는 것입니다. 이를 위해서는 여러 단계가 필요합니다.
VBA 코드 창에서 "모듈" 코드를 만듭니다. 창의 프로젝트 창을 마우스 오른쪽 버튼으로 클릭하고 삽입/모듈을 선택합니다.
새 모듈에 다음 코드를 추가하세요.
gstrMonth는 월 이름을 보유하는 전역 변수 문자열입니다. GetMonth 함수는 쿼리에서 해당 값을 검색하는 데 사용됩니다.
이제 Form1 코드를 다음과 같이 변경합니다.
하위 "AskForMonth"는 사용자가 월 이름을 입력할 수 있는 대화 상자를 표시합니다. 해당 입력은 gstrMonth 변수에 할당됩니다.
Command0(버튼) 코드에서는 쿼리가 실행되기 전에 AskForMonth를 추가합니다. 다시 올바른 쿼리 이름을 사용하여 각 쿼리에 대해 "DoCmd" 줄을 반복합니다.
마지막 단계는 쿼리의 매개변수를 "GetMonth" 함수 호출로 바꾸는 것입니다. 쿼리 조건에 [월 입력] 대신 "GetMonth()"를 입력하세요.
이것이 VBA의 일부 기능을 사용하여 Access 작업을 자동화하는 데 도움이 되기를 바랍니다.