반응형

입력 및 수정 기능 구현과 조회 & 출력 기능 구현 파트에서 나오는 프로시저 정리

특정 폼의 컨트롤을 클릭했을 때 메세지 상자를 만드는데 그 메세지 상자에 변하는 값을 넣을 경우 
1. 변하는 값의 식을 먼저 쓴다 
2. datediff(형식, 시작일, 나중일) 
예) 월수 = datediff("m", txt구입일, date) 

현재 폼을 닫히도록 하는 프로시저 
docmd.close (엑셀에서는 unload me) 

종료가 될 때 자동으로 폼의 변경내용을 저장하는 프로시저  
docmd.close ,,acSaveYes 

Q. 두 개체 사이의 연결을 특정 필드를 이용해 연결하시오 
하위 폼 경계선에서 속성 - 데이터 - 하위 필드 연결 

Q. 필터 기능을 이용하여 작성하시오 
Me.Filter = ~ 
me filter 다음에 
Me.filterOn = True

만약에 me. filter 다음에 외부 폼이나 하위 폼을 가져와야 할 경우 폼의 값을 가져오는 법 
현재 폼 : [컨트롤명] 
외부 폼 : [Forms]![폼이름]![컨트롤명] 
하위 폼 : [폼이름].FORM![컨트롤명] 

단순히 메세지 박스만 뜨게 하는 경우 앞뒤에 다른 프로시저는 필요하지 않으며 뒤에 = 도 필요하지 않다. 
MsgBox 만 쓰고 메세지 박스에 나올 메세지만 적으면 된다. 


Select 문을 사용하시오 
Select case 개체명 (개체명은 값을 나오게 하는 기준값이 있는 일종의 필드) 
case "사과" (문자일 때) 
case is >=1 (숫자일 때) 
case else (이것도 저것도 아닐 때) 
end select 

예) Select Case Txt구입부서 
Case "총무" 
MsgBox "<" & Txt구입부서 & "> 부서는 본사사무실에 위치" 
Case "인사" 
MsgBox "<" & Txt구입부서 & "> 부서는 본사사무실에 위치" 
Case Else 
MsgBox "<" & Txt구입부서 & "> 부서는 별관사무실에 위치" 
End Select

RecordSource 속성 : 레코드 원본 설정 : RecordSource 를 사용하라고 문제에서 제시한다.
Me.RecordSource = "Select 필드명 from 테이블(아니면 쿼리) where 조건" 
(보통 폼이나 보고서의 레코드 소스를 지정할 땐)=모든 필드를 다 끌어올 땐 *를 사용 
ex: Select * 
(조건은 필터명령을 줄 때의 문법과 동일하다.) 

where 조건식에서 쓰는 필드명 컨트롤명 비교식은 비단 me.recordsource 에서만 쓰는게 아니라 다른 곳에서도 같은 식으로 쓰임.


필터 명령 
문자열일 때 
Me.filter = "필드명 = ' " & 컨트롤명 & " ' " (제일 큰 범위에 있는 "을 제외하고 순서는 안에서부터 & - " - ') 
숫자일 때 
Me.filter = "필드명 = "& 컨트롤명 (컨트롤명에 대한 앰퍼센드와 따옴표 필요 없음.) 
날짜형일 때 
Me.filter = "필드명 = #" & 컨트롤명 & "#" 
문자열의 일부와 일치할 때 
Me.filter = "필드명 like ' * " & 컨트롤명 & " * ' " (등호대신 like. 제일 큰 범위에 있는 "을 제외하고 순서는 & - " - * - ') 

 
각 행마다 결과가 나오게 하는 비주얼베이직코드 작성하는 방법 
1) 특정 버튼을 클릭을 했을 때 결과가 나오는 버튼을 더블클릭 
2) 다음 식 입력
Private Sub cmd등록_Click() 
입력행 = Range("C3").CurrentRegion.Rows.Count + 3 
Cells(입력행, 3) = txt지사명 
Cells(입력행, 4) = cmb게임명 
Cells(입력행, 5) = Val(txt판매수량) 
txt지사명 = "" 
txt판매수량 = "" 
cmb게임명.ListIndex = 0 
End Sub 


종료 버튼을 클릭하면 닫히게 하는 방법 
1) 폼에서 종료 (혹은 닫기) 버튼을 더블클릭 후  
2) Unload Me 작성하면 끝. 

특정 시트의 특정 셀에 문구가 나오게 하는 방법 
range("기타작업-1!L10") = "수고하셨습니다." 

폼 열기 
Docmd.openform 
"폼이름",여는방법,필터이름,"조건" 

폼 닫기 
docmd.close acForm, "폼 이름" 
(폼 이름을 지정하는 경우 : 폼을 제외한 나머지를 열어서 포커스가 그곳에 가 있는 경우) 

특정 보고서를 ~ 형태로 열리면서 
Docmd.openreport "보고서명",여는방법,필터이름,"조건" 

하위 폼의 'txt'검색' 컨트롤에 입력된 구입처를 포함하는 자료만이 ~ 
- 조건에 구입처 like 필드명 입력하면 된다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기