Access 2007 쿼리 자동화 (하나의 조건 변경)


1

따라서 6 개의 쿼리가 있으며 매월 말에 한 번씩 실행하려고합니다. (나는 SQL에 대해 약간 알고 있지만 Access의 디자인 뷰를 사용하여 간단히 작성했다). 앞으로 며칠 이내에 아마도 5 월에 6 개의 쿼리를 실행하게 될 것입니다. 방금 끝난 달의 데이터 만 필요하므로 검색어에 월 이름 (예 : 5 월)으로 설정된 기준이 있습니다. 이제는 매월이 모든 것을 변경하는 데 엄청난 시간이 걸리지는 않지만 이것을 자동화 할 수있는 방법이 있습니까? 현재, 그들은 모두 4 월로 설정되어 있으며 나는 며칠 만에 그것을 실행할 때 모두 5 월로 변경하려고합니다. 그리고 매달마다 한 달에 (아마도 더 좋은 방법을 안다면 다른 형식의 텍스트 상자에) 한 번 입력하고 모든 6 개의 쿼리를 수동으로 열지 않고 6 개의 모든 쿼리를 변경하게하고 싶습니다. 오른쪽 필드로 이동하여 기준을 변경하십시오.

참고 (VBA에 대해) : Excel VBA를 사용하여 VBA의 기초를 알았으나 Access (코드를 몇 번 본 것 외에는)에 대한 구체적인 내용을 알지 못합니다. 그리고 다른 사람들은 Access VBA에 대해 모르는 사람을 사용합니다. 그래서, 나는 비슷한 것을 발견했다고 생각한다. 질문 답변 그게 VBA에서 할 수 있지만 오히려 다른 방법으로 그것을 할 것입니다. 나중에 Access VBA를 전혀 모르는 사람이 나중에 쿼리를 약간 다시 디자인해야하는 경우 VBA를 포함하지 않는 솔루션을 사용하는 것이 좋습니다.

답변:


2

쿼리를 실행하는 달에 대한 쿼리를 요청하는 간단한 방법이 있습니다. 쿼리에 [달 입력]을 지금 달 이름이있는 같은 위치에 놓습니다.

enter image description here

쿼리가 실행되면 달을 입력하는 대화 상자가 나타납니다. 대괄호 안에 원하는 텍스트를 넣을 수 있습니다. "월"이라고 말할 필요는 없습니다. 이것은 단순히 대화 상자가 말할 내용을 정의합니다. 이 기술을 "매개 변수 쿼리"라고합니다.

enter image description here

단일 단계로 6 개의 쿼리를 모두 실행하려면 VBA 코드가 필요하지만 매우 간단한 코드가 필요합니다. 최종 사용자는 VBA에 대해 알 필요가 없습니다. 양식을 열고 단추 만 클릭하면됩니다.

양식을 작성하고 하나의 단추를 넣으십시오. 해당 버튼의 속성 목록에서 이벤트 탭을 선택한 다음 "클릭 할 때"이벤트를 선택하십시오. On Click 이벤트의 "..."버튼을 클릭하십시오.

enter image description here

올바른 위치에 커서가있는 VBA 코드 창이 열립니다. - Private Sub Command0_Click - 여기서 Command0은 단추의 이름입니다. 표시된 코드를 입력하십시오 ...

enter image description here

쿼리의 올바른 이름으로 대체하고 필요한만큼 코드 줄을 반복하십시오. 폼을 열고 버튼을 클릭하면 모든 쿼리가 한 번에 실행됩니다.

다음 단계

마지막 개선은 매개 변수를 한 번 입력하고 모든 쿼리에 자동으로 적용되도록하는 것입니다. 이를 위해서는 여러 단계가 필요합니다.

VBA 코드 창에서 "Module"코드를 만듭니다. 창의 프로젝트 창에서 마우스 오른쪽 버튼을 클릭하고 삽입 / 모듈을 선택하십시오 :

enter image description here

새 모듈에 다음 코드를 추가하십시오.

enter image description here

gstrMonth는 달 이름을 저장하는 전역 변수 문자열입니다. GetMonth 함수는 쿼리에서 해당 값을 검색하는 데 사용됩니다.

이제 Form1 코드를 다음과 같이 변경하십시오.

enter image description here

"AskForMonth"하위에는 사용자가 월 이름을 입력 할 수있는 대화 상자가 표시됩니다. 그 입력은 gstrMonth 변수에 할당됩니다.

enter image description here

Command0 (단추) 코드에서 쿼리를 실행하기 전에 AskForMonth를 추가합니다. 다시 올바른 쿼리 이름을 가진 각 쿼리에 대해 "DoCmd"줄을 반복하십시오.

마지막 단계는 쿼리의 매개 변수를 함수 "GetMonth"에 대한 호출로 바꾸는 것입니다. 쿼리 기준에 [Enter Month] 대신 "GetMonth ()"를 입력하십시오.

enter image description here

이렇게하면 VBA의 일부 기능을 사용하여 액세스 작업을 자동화 할 수 있기를 바랍니다.


Dave, 상세한 답변을 주셔서 감사합니다. 마지막 단락에서 "최종 단계"에 대해 이야기합니다. 이것은 내가 정말로 도움이 필요한 것입니다. 내 질문에 제공 한 링크를 기반으로, 나는 코드에서 전체 SQL 문을 넣고 변수를 입력하여 조건을 변경할 수 있음을 알고 양식의 텍스트 상자에서 값을 얻습니다. 내 질문은 본질적으로,이 "최종 단계"를 수행하는 쉬운 방법 (VBA에서 SQL을 사용하는 것보다 쉽습니다)입니다. 쿼리 ( "Query1")와 같은 설정이 있습니다. 필드 ( "월"). Criteria = "May"?
Graphth

네, 쉬운 방법이 있습니다. SQL을 VBA 코드에 넣지 않아도됩니다. 방법을 보여주기 위해 내 대답을 편집 할 것입니다.
Dave Becker

@ 그래프 - 당신이 찾고 있던 대답입니까?
Dave Becker

아마, 나는 그것을 시험해 볼 기회가있을 때까지 기다려야 할 것이다.
Graphth

@ 그래프 -이 방법이 효과가 있었습니까?
Dave Becker
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.