본문으로 바로가기
바코2://#13. 기초 코딩, 버튼에 코딩삽입(5) - 수정2 - 바보처럼코딩하기

바코2://#13. 기초 코딩, 버튼에 코딩삽입(5) - 수정2

반응형

버저장_click() 노란 줄친 부분의 코드를 수정하겠습니다. (VBA 창은 뭐다? alt+F11)

이전 시간에 사용한 방법인 레코드셋을 이용해서 수정하는 방법으로 해보겠습니다. 

excute로 바로 적용시키는 방법과 레코드 셋을 사용하는 방법을 시간이 지나면 동시에 사용해야 하는 경우들이 생깁니다. 두 가지 방법을 다 알아두시길 권합니다.

 

반복하자면 각각 3가지가 기본입니다.

  1. 새 레코드 추가
  2. 수정
  3. 삭제

current.excute 뒤에

  1. insert into
  2. update set
  3. delete

recordset을 이용하는 경우는

  1. .addnew
  2. .edit
  3. .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. 기초 코딩, 폼 다듬기

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