본문으로 바로가기
바보처럼 코딩하기 (엑세스) 22. 폼 디자인 수정 & 검색 IF, Dcount, Searching - 바보처럼코딩하기

바보처럼 코딩하기 (엑세스) 22. 폼 디자인 수정 & 검색 IF, Dcount, Searching

반응형

 

 

오픈소스

엑세스따라하기22.accdb
4.63MB

'--(22회)--2중 IF문
If Nz(검색콤보, "") = "" Then


    If Nz(검색창, "") = "" Then
    
    구매처리스트.RowSource = "SELECT t_구매처정보.ID, t_구매처정보.공장분류, t_구매처정보.상호, t_구매처정보.공장전화, t_구매처정보.공장주소 FROM t_구매처정보"
    
    Else
    
    구매처리스트.RowSource = "SELECT t_구매처정보.ID, t_구매처정보.공장분류, t_구매처정보.상호, t_구매처정보.공장전화, t_구매처정보.공장주소 FROM t_구매처정보 where 상호 like '*" & Me.검색창 & "*' "
    
    End If
    
Else


구매처리스트.RowSource = "SELECT t_구매처정보.ID, t_구매처정보.공장분류, t_구매처정보.상호, t_구매처정보.공장전화, t_구매처정보.공장주소 FROM t_구매처정보 where 공장분류 = '" & Me.검색콤보 & "' "

End If
'--(22회)--2번째 리스트 보이는 방법.: 테이블에서 읽어 오는 방법(레코드셋 아래 채워 넣기)

'Me.상호 = DLookup("상호", "t_구매처정보", "ID = " & Me.ID & "")
'Me.공장전화 = DLookup("공장전화", "t_구매처정보", "ID = " & Me.ID & "")
'Me.공장팩스 = DLookup("공장팩스", "t_구매처정보", "ID = " & Me.ID & "")
'Me.공장주소 = DLookup("공장주소", "t_구매처정보", "ID = " & Me.ID & "")
'Me.대표자명 = DLookup("대표자명", "t_구매처정보", "ID = " & Me.ID & "")
'Me.공장분류 = DLookup("공장분류", "t_구매처정보", "ID = " & Me.ID & "")

'레코드셋을 만들어서 가져오는 방법
Dim RS As DAO.Recordset
Set RS = CurrentDb.OpenRecordset("Select * from t_구매처정보 where ID= " & Me.ID & "", dbOpenDynaset, dbSeeChanges)
Me.사업자등록번호 = RS!사업자등록번호
Me.부가세이메일 = RS!부가세이메일
Me.업종 = RS!업종
Me.업태 = RS!업태
Me.담당자1 = RS!담당자1
Me.담당자2 = RS!담당자2
Me.담당자전화1 = RS!담당자전화1
Me.담당자전화2 = RS!담당자전화2
Me.상호 = RS!상호
Me.공장전화 = RS!공장전화
Me.공장팩스 = RS!공장팩스
Me.공장주소 = RS!공장주소
Me.대표자명 = RS!대표자명
Me.공장분류 = RS!공장분류




Set RS = Nothing
'--(22회)--상호가 겹칠때
'겹치는 상호가 있을때는 반복을 피하도록 유도한다. 아주작은 차이라도 둬서 다른 업체임을 인지하도록하게 한다.
'예) 한국실업, 한국실업(오산)
'Dcount 사용하기

Dim 상호겹침 As Integer, 등록번호겹침 As Integer

'dcount의 구조
'1) 정수값을 선언해주고
'2) 선언값 = Dcount("","","")  : 몇개인지 세라  --> 선언값에 대입해라.   상호겹침 = 1
'3) "ID" , "테이블(도메인)" ,"조건=조건"


상호겹침 = Nz(DCount("ID", "t_구매처정보", "상호 = '" & Me.상호 & "'"), 0)
등록번호겹침 = Nz(DCount("ID", "t_구매처정보", "사업자등록번호 = '" & Me.사업자등록번호 & "'"), 0)

'nz(,"") = ""
'nz(,0) = 0

Dim RS As DAO.Recordset
If Nz(ID, 0) = 0 Then

If 상호겹침 <> 0 Then
MsgBox "겹치는 업체명이 있습니다.", vbCritical
Exit Sub
End If

If 등록번호겹침 <> 0 Then
MsgBox "겹치는 등록번호가 있습니다.", vbCritical
Exit Sub
End If

'[1-1] 저장
Set RS = CurrentDb.OpenRecordset("select * from t_구매처정보", dbOpenDynaset, dbSeeChanges)
RS.AddNew
RS!상호 = Me.상호
RS!공장분류 = Me.공장분류
RS!대표자명 = Me.대표자명
RS!공장전화 = Me.공장전화
RS!공장팩스 = Me.공장팩스
RS!공장주소 = Me.공장주소

RS!사업자등록번호 = Me.사업자등록번호
RS!업종 = Me.업종
RS!업태 = Me.업태
RS!담당자1 = Me.담당자1
RS!담당자2 = Me.담당자2
RS!담당자전화1 = Me.담당자전화1
RS!담당자전화2 = Me.담당자전화2
RS!부가세이메일 = Me.부가세이메일


RS.Update
RS.Close

MsgBox "저장"


'Else
ElseIf Nz(ID, 0) <> 0 Then

'[1-2] 수정
Set RS = CurrentDb.OpenRecordset("select * from t_구매처정보 where ID = " & Me.ID & " ", dbOpenDynaset, dbSeeChanges)
With RS
.Edit
!상호 = Me.상호
!공장분류 = 공장분류
!대표자명 = 대표자명
!공장전화 = 공장전화
!공장팩스 = 공장팩스
!공장주소 = 공장주소

RS!사업자등록번호 = Me.사업자등록번호
RS!업종 = Me.업종
RS!업태 = Me.업태
RS!담당자1 = Me.담당자1
RS!담당자2 = Me.담당자2
RS!담당자전화1 = Me.담당자전화1
RS!담당자전화2 = Me.담당자전화2
RS!부가세이메일 = Me.부가세이메일
.Update
.Close
End With

MsgBox "수정"

End If

'[2]폼에 관련된 명령 (1): 텍스트 박스
신규버튼_Click

'[2]폼에 관련된 명령 (2): 리스트
Me.구매처리스트.Requery


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