버저장_click() 노란 줄친 부분의 코드를 수정하겠습니다. (VBA 창은 뭐다? alt+F11)
이전 시간에 사용한 방법인 레코드셋을 이용해서 수정하는 방법으로 해보겠습니다.
excute로 바로 적용시키는 방법과 레코드 셋을 사용하는 방법을 시간이 지나면 동시에 사용해야 하는 경우들이 생깁니다. 두 가지 방법을 다 알아두시길 권합니다.
반복하자면 각각 3가지가 기본입니다.
- 새 레코드 추가
- 수정
- 삭제
current.excute 뒤에
- insert into
- update set
- delete
recordset을 이용하는 경우는
- .addnew
- .edit
- .delete
를 사용합니다.
여기서는 recordset을 이용해서 2번인 .edit을 이용해서 수정을 해보겠습니다.
코딩에 앞서 우리가 가진 재료중 가장 중요한 열쇠는 ID입니다.
마치...영화속 대여금고의 키 같은 놈이죠
ID는 고유번호로 테이블속 필드들이 가진 정보를 가져오는데 중요한 역할을 합니다. 다른건 겹쳐도 이건 안겹치거든요. 요 내용 잘 기억해주세요~
Private Sub 버저장_Click()
If Nz(ID, 0) = 0 Then 'ID가 없으면 새로운 레코드 입력하는 코드
CurrentDb.Execute "insert into 고객(사업자등록번호,업체명,대표이름,전화번호,팩스번호 " & _
", 주소, 업종, 업태, 부가세이메일) values ('" & 사업자등록번호 & "', '" & 업체명 & "', '" & 대표이름 & "', " & _
"'" & 전화번호 & "', '" & 팩스번호 & "', '" & 주소 & "', '" & 업종 & "', '" & 업태 & "', '" & 부가세이메일 & "')", dbSeeChanges
Else 'ID가 있으면 수정하는 코드
Dim RS As DAO.Recordset
Set RS = CurrentDb.OpenRecordset("select * from 고객 where id = " & ID & "", dbOpenDynaset, dbSeeChanges)
With RS
.Edit
!업체명 = 업체명
!대표이름 = 대표이름
!사업자등록번호 = 사업자등록번호
!전화번호 = 전화번호
!팩스번호 = 팩스번호
!주소 = 주소
!업종 = 업종
!업태 = 업태
!부가세이메일 = 부가세이메일
.Update
.Close
End With
Set RS = Nothing
End If
버초기화_Click
End Sub
추가한 코드는 else와 end if 사이의 코드 입니다.
추가 코드 설명
- Dim RS As DAO.Recordset (선언)
- Set RS = CurrentDb.OpenRecordset("select * from 고객 where id = " & ID & "", dbOpenDynaset, dbSeeChanges)
- (윗줄) ID가 일치하는 고객테이블의 레코드를 RS라는 레코드 셋에 담는다.
- With RS (이후의 코드는 RS와 같이 진행된다. or end with 전까지 RS를 생략한다.)
- .Edit (수정한다: 원래는 RS.Edit 입니다.)
- !업체명 = 업체명 ( 원래는 RS!업체명 = me.업체명, RS!업체명은 테이블의 업체명, me.업체명은 오브젝트 업체명입니다. 우리는 테이블을 수정할 것이기 때문에 코드에 타겟이 먼저 나오고 소스는 나중에 나오는 순서를 기억해야합니다.
- .Update (원래는 RS.Update)
- .Close (원래는 RS.Close)
- Set RS = Nothing (처음에 열었던 레코드셋을 비워줍니다. 레코드셋을 필요할때만 사용하는 방법입니다. 처음에 set rs = current...해서 열어준것을 명령을 실행한뒤 set rs =nothing으로 닫아줍니다. 짝이라고 보시면 됩니다.)
구분 해서 알아두면 좋은 내용
몇 가지 코드를 했었는데, 지금의 코드는 우선 눈에 보이지 않는 작업입니다. 코드를 수정시키고, 그 뒤에 그 결과를 눈에 보이게끔하는 작업이 필요합니다. 우리가 하는 프로그램 작업은 눈에 바로 보이게 하는 코드와 뒤에서 데이터를 조종하는 코드로 나눠집니다. 이 코드가 데이터를 만지는 코드인지, 눈에 보이는 코드인지에 대한 개념을 머릿속에 새겨 두시길 바랍니다.
실습
- 바보코딩의 이름을 바보코딩2로 변경해보겠습니다.
정상적으로 작동하는군요.
- 바보처럼과 처음처럼에도 데이터를 넣고 수정을 해보겠습니다.
정상적으로 잘 들어갑니다.
[이전 글] : 바코2://#12. 기초 코딩, 버튼에 코딩삽입(4) - 수정
[다음 글] : 바코2://#14. 기초 코딩, 폼 다듬기
'바보처럼 코딩하기 > 바보처럼 코딩하기 ver.2' 카테고리의 다른 글
바코2://#15. 기초 코딩, 폼 다듬기 2 - 메세지 박스와 삭제 (0) | 2021.12.23 |
---|---|
바코2://#14. 기초 코딩, 폼 다듬기 (0) | 2021.12.23 |
바코2://#12. 기초 코딩, 버튼에 코딩삽입(4) - 수정 (3) | 2021.12.23 |
바코2://#11. 기초 코딩, 버튼에 코딩삽입(3) - 검색2 (0) | 2021.12.22 |
바코2://#10. 기초 코딩, 버튼에 코딩삽입(2) - 검색 (0) | 2021.12.22 |