study/Access

제어 명령어

emily-photo 2012. 4. 10. 17:42

VBA 명령 중 제어 명령어에는 IF와 Select가 있는데 명령의 형식은 다음과 같다

형식1

If 조건 Then

   조건이 참일 때 수행할 내용

End If

형식2

If 조건 Then 참일 때 수행할 내용

형식3

If 조건 Then

   조건이 참일 때 수행할 내용

Else

   조건이 거짓일때 수행할 내용

   End If

if 다음의 조건은 SQL 명령의 조건 설정이나 IIF() 함수에서 조건을 정해주는 것과 비슷한 면이 많다. 조건이 참일 때 Then 다음을 수행하고 거짓이면 Else 다음을 수행한다. 참 또는 거짓일 때 적어준는 부분에서 또 If 명령을 사용해도 된다.

사용예

If 점수>=90 Then 등급=”A”

If 점수>=90 then

            등급 = “A”

End If

위의 두 가지 예는 같다. 즉, Then 바로 뒤에 내용을 적으면 End If는 생각하는데 그 대신 한 문장만 적을 수 있다. 참일 때 수행할 문장이 여러 개이면 Then 다음에 적지 말고 행(row)을 바꾸어 적고 마지막 행에는 End If를 적도록 한다.

select 명령의 형식은 다음과 같다

Select Case 변수/식

     Case 조건1(또는 값1)  - 조건 1에 해당할 경우

  수행할 내용

     Case 조건2(또는 값) – 조건 2에 해당할 경우

   수행할 내용

     Case 조건3(또는 값)- 조건 3에 해당할 경우

   수행할 내용

     Case Else – 위의 어느 조건에도 해당하지 않을 경우 수행할 내용

     End Select

     End If

Select 명령은 다중 IF 대신에 사용하면 편리하다. 그러니까 IF 속에 또 IF를 사용하고 그 속에 또 IF를 사용하는 경우이다. 이런 경우는 종종 있을 수 있다. 예를 들어 성적처리할 때 점수가 90이상이면 ‘A’, 80이상이면 ‘B’, 70이상이면 ‘C’, 60이상이면 ‘D’, 60미만이면 ‘F’를 구하는 경우이다.

사용예

Select Case 평균

     Case 80 to 100

                 a =”A”

     Case 70 to 79

                a =”B”

     Case 60 to 69

                a =”C”

     Case 0 to 59

                a =”F”

     Case Else

               MsgBox “잘못된 자료입니다..”

End Select  

  평균(이것은 필드이거나 변수이다.) 값이 80이상 100이하이면 변수 a에 “A”를 저장한다.70에서 79사이이면 변수 a에 “B”를 저장한다. Else는 100을 초과한 값이거나 0 미만의 값에 해당하므로 이는 잘못된 값이 되는 셈이다.

Select Case 평균

     Case >= 80

          a= “A”

     Case >= 70

          a= “B”

     Case >= 60

          a= “C”

     Case < 60

          a= “F”

End Select

만일 평균의 ㄱ밧이 80이상이면 a에 “A”를 저장하고 다음 조건은 검사하지 않고 바로 Select  다음 문장으로 빠져나간다. 그러므로 위의 경우와 같다. 문제가 된다면 실수로 평균이 100이상 되어도 a에  “A”가 저장된다는 거이다.

a=”C”

Select  Case 코드

     Case 2,5,7

               a=”A”

     Case 3,4,8

               a=”B”

End Select

코드(필드이거나 변수이다.) 값이 2,5,7 세가지중 한가지에 해당하면 변수 adp “A”를 저장하고 코드값이 3,6,8에 해당하면 변수 a에 “B”를 저장한다. 어느 조건에도 해당하지 않으면 변수 a에는 초기값 “C”를 그대로 가지고 있다.