바보처럼 코딩하기/하나도 몰라도 되는 MS 엑세스 왕초보용 연재

하나도 몰라도 되는 - #7 (폼) - 내가 원하는 내용 구현하기 5

바보처럼코딩하기 2023. 3. 20. 13:44
반응형

 

이제 폼과 테이블을 코드라는 매개를 통해서 연결하는 방법을 진행하겠습니다.

 

우선 기록!!!

 

여기서 부터는 각자의 이해력에 따라 이해하는 시간(만드는 시간이 아니라 이해하는 시간입니다.) 이 다르니 설명해드리는 부분을 중점적으로 공식같이 외우시길 바랍니다. (아마 먼저 공부를 조금 해보셨던 분은 조금 빠를것이고, 처음이신 분은 조금 더 걸릴겁니다. 하지만 따라하시면 작동합니다~ 걱정하지 마세요~)

 

우선 저는 설명을 위해서 '수정'이라는 버튼을 하나 더 만들고 컨트롤에 이벤트를 다른 버튼과 같은 방식으로 준비하겠습니다. (이전 연재 참조)

 

1) 아무 버튼 선택후 ctrl+c, ctrl+v

2) 버튼 선택후 속성시트 > 형식> 캡션 '수정'으로 변경

3) 속성시트 > 기타 > 이름 '수정'으로 변경

4) 속성시트 > 이벤트 > on click > ... 클릭 > 코드 작성기 선택 > 확인

 

 

 

초기화 버튼 클릭후 F7 또는 어쨋거나 VBA창을 여시고 초기화 부분에 다음과 같이 작성을 합니다.

Private Sub 초기화_Click()
ID = Null
상호 = Null
대표자 = Null
사업자등록번호 = Null
업태 = Null
업종 = Null
부가세이메일 = Null
전화 = Null
팩스 = Null


End Sub
위와 같이 코드를 입력하고 VBA상에 정지(2)버튼 누르고 저장(1) 버튼을 한번씩 눌러줍니다. 습관들이시면 편합니다.

폼보기 눌러주시고 버튼이 작동하는지 확인해 봅시다.

 

빈 텍스트 박스에 아무거나 막 넣어서 아래와 같이 만들어 보세요.

 

 

초기화 버튼을 누르면 샥~ 하고 사라집니다. 코드가 잘 작동하네요~

이제 VBA창을 다시 엽니다. 폼의 모드는 디자인 보기나, 폼 보기 상태이거나 관계없습니다.

 

폼 보기 상태
디자인 보기 상태

 

 

alt + f11 또는 다양하게 여는 3가지 방법을 알려드렸으니 우선 열어보세요~

 

이제 저장 click 아래 코드를 만듭니다.

여기서 부터는 조금 복잡해 보일 수도 있지만~ 이해가 안가도 따라하시면 된답니다.~

 

Private Sub 저장_Click()

CurrentDb.Execute "insert into t사업자정보 (상호,대표자,사업자등록번호,업태,업종,부가세이메일,전화,팩스)  values ( " & _
"'" & 상호 & "','" & 대표자 & "','" & 사업자등록번호 & "','" & 업태 & "','" & 업종 & "','" & 부가세이메일 & "','" & 전화 & "','" & 팩스 & "') ", dbSeeChanges

End Sub

 

코드 확인을 해보겠습니다.

ID를 제외한 나머지 텍스트 상자에 넣고 싶은 내용을 넣고 저장을 눌러보겠습니다.

 

대충 아래와 같이 정보가 아직 없는 상황일수도 있으니 그 부분까지 생각해서 넣겠습니다.

 

 

우선 위의 빈 테이블을 확인해주세요. 필드에 아무것도 없습니다.

위 그림과 같이 넣고 저장 버튼을 클릭해보죠~

 

테이블을 닫고 다시 열면~

 

 

기입한 내용이 잘 들어가 있습니다.

미리 만들어 놓은 초기화 버튼을 클릭하고 다시 아무거나 기입해서 저장을 눌러볼게요~

 

우선 기본적인 저장은 완성 됐네요~

 

위의 사용한 코드 분석

(원문)

CurrentDb.Execute "insert into t사업자정보 (상호,대표자,사업자등록번호,업태,업종,부가세이메일,전화,팩스)  values ( " & _
"'" & 상호 & "','" & 대표자 & "','" & 사업자등록번호 & "','" & 업태 & "','" & 업종 & "','" & 부가세이메일 & "','" & 전화 & "','" & 팩스 & "') ", dbSeeChanges

 

가장 큰 틀은

CurrentDb.Execute " ", dbSeeChanges

이고,

 

그 안에 뭘 어떻게 넣는가가 그 내용을 결정합니다.

저 틀을 제외하고 " "속의 내용을 보면

insert into 테이블이름 () values ()

으로 구성이 되어 있고

 

다시 ()() 속을 보면

(상호) 와 같이 테이블의 필드이름과

(' "&  상호 &" ') 와 같이 부호에 감싸진 컨트롤 이름이 들어가 있습니다.

 

(상호) 는

위 그림과 같이 테이블의 필드 명을 나타내고

 

(' "&  상호 &" ') 는

 

위 그림과 같이 컨트롤의 이름을 나타냅니다.

 

상호라는 필드 하나만 놓고 코드를 보면

insert into t사업자정보 (상호) values ('"& 상호 &"')

로 나타나는데, (부호는 밑에서 설명합니다. "부호가 붙는다" 까지만 기억하세요.)

 

의역을 하자면

t사업자정보 테이블의 상호 필드에 컨트롤 상호의 값을 입력해라. 입니다.

 

여기서 추가로 2개의 법칙이 존재하는데,

첫번째는 데이터 타입에 따른 부호가 3가지 존재하고, 그게 맞게 적용해야합니다.( 하늘색줄 부분)

두번째는 필드의 나열 순서와 갯수컨트롤의 나열 순서와 갯수로 맞춰 줘야합니다.

 

위의 첫번째: (테이블의 필드에서 설정한 데이터 타입)

- 데이터 타입이 숫자인 경우 :  " & 컨트롤명 & "

- 데이터 타입이 문자인 경우 : ' " & 컨트롤명 & " ' (= 보통 '"& &"' 이렇게 붙여 씁니다. 잘 보이라고 ' " 이렇게 한칸 띄웠습니다.실제 사용은 붙여서 하세요.))

- 데이터 타입이 날짜인 경우 :  # " & 컨트롤명 & " # (= 여기도 #"&  &"# 부호를 붙여 사용합니다. 잘 보이라고 띄워썼습니다. 실제 사용은 붙여서 하세요.))

 

* 문자를 제외하고 숫자와 날짜는 정상작동을 위해서 추가적으로 필요한 부분이 있습니다. 적용을 해보시더라도 오류가 나거나 작동이 안할 수도 있으니, 그 부분은 추후 설명을 하겠습니다. 일단은 문자가 되는것에 초점을 맞춰주세요.

 

위의 두번쨰: 필드의 나열 순서와 컨트롤 나열 순서의 정의는

 

 

이런 순서를 말하는 것도 아니고 (하늘색 화살표)

 

 

이런 순서를 말하는 것도 아닙니다. (하늘색 화살표)

 

불필요한 곳에 에너지 쓰지 마시길..

여기서 말하는 순서는

 

자신이 코드에 적은 순서입니다.

 

t사업자정보 (상호, 업태, 업종, 팩스)

순으로 적었다면, 아래 values 이후 컨트롤를 적을때도 그에 상응하는 컨트롤을 순서대로 적어 넣어야 합니다.

values (' "& 상호 &" ',' "& 업태 &" ',' "& 업종 &" ',' "& 팩스 &" ')

 

그리고

t사업자정보 (상호, 업태, 업종, 팩스)

에서 4개의 필드를 적었다면

values (' "& 상호 &" ',' "& 업태 &" ',' "& 업종 &" ',' "& 팩스 &" ')

에서도 4개의 컨트롤을 적어야 합니다.

 

항상 테이블의 모든 필드를 적을 필요가 없습니다. 필요한 필드만 사용하면됩니다. 

 

 

 

 

현재 글 : #7 (폼) - 내가 원하는 내용 구현하기 5

하나도 몰라도 되는 MS 엑세스 - #0 인덱스 페이지

 

바코 ver.3 - #0 인덱스 페이지

* 꼭 기억하셔야 할 점. 이 연재 포스트는 접근하는 방법을 일반 책들에서 보여주는 내용과 다르게 진행합니다. 전반적인 내용을 비교, 평가한다면 이미 출판된 내용들이 더 잘 정리되어 있고 가

babocoding.tistory.com

 

반응형