반응형
콤보상자 설명입니다.
오픈소스
Option Compare Database
Private Sub 코드기록_Click()
'Application 과 VBE (Visual Basic for Applications Editor)
'개체의 계층구조
'Application(어플리케이션): 가장 큰 구조, 우리가 흔히 말하는 앱, 어플의 풀네임, 워드, 엑셀, 엑세스 등등은 워드 어플리케이션, 엑셀 어플리케이션을 줄여서 엑셀,워드라고 말한다.
'Object(오브젝트,개체): 우리가 사용했던, 텍스트 박스, 리스트 등등 개체를 뜻함
'Property(프로퍼티,속성):개체 선택시 그 개체의 속성을 속성창에서 볼수 있다. '개체의 속성'으로 이하하면 됌, 서장훈의 키는 207cm이다. 서장훈이라는 오브젝트의 키 속성은 207cm.
'Method(메서드): 개체가 실행하는 동작.
'아래의 구문은 Application.VBE property(syntax)
Application.VBE.MainWindow.Visible = True 'Alt+F11
End Sub
Private Sub 삭제버튼_Click()
Dim RS As DAO.Recordset '변수 선언
'[형식] Dim (변수명) AS (변수의 데이터 형식) : Declare In Memory, 메모리를 예약한다는 의미, 메모리를 할당하기위해 사용되는 구문
'오브젝트의 변수선언은 Dim 오브젝트이름 AS 클래스이름
'레코드셋 오브젝트를 취급하는 변수 RS를 선언함.
'Data Access object Link: https://en.wikipedia.org/wiki/Data_access_object
'ADO (ActiveX Data Object) 데이터 연결설정을할때 쓰일 방법 Link(한글): http://yhkimm.egloos.com/367350 (한얼의 블로그)
'[예시1] Dim 금액 as double : 금액이라는 이름의 변수를 선언하는데 dobule이라는 데이터 형식을 취함
'---------------------------
'Data Type | Value Range
'---------------------------
'Boolean | True or False (참, 거짓)
'Integer | 정수, -2,147,483,648 부터 2,147,483,647 까지
'Double | 실수
'String | 문자열
'Variant | 유동적인 데이터 형식
'MSDN Link (Dim statement(VB)):https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/7ee5a7s1(v=vs.90)
'DAO,ADO 관련 링크: 11회까지 공부한 나... 영문 사이트가 대강 보이기 시작한다. http://codevba.com/help/Recordset_Builder.htm#.X-pxnNgzaUk
'과학관련 용어의 80~90%이상이 영어로 되어있다. 한국말로 된 사이트를 찾고 싶은 마음은 이해하나, 몇 %가 되겠는가? 심화학습을 위해서는 두려움을 버리고 다양한 사람들이 내놓은 다양한 방법을 위해
'영문사이트를 꾸준히 보는 것도 필요하다.
'레코드셋을 할당하는 이유는 빠르게 DB를 사용하기 위해서이다.
Set RS = CurrentDb.OpenRecordset("select * from t_아이템정보 where ID = " & Me.ID & " ", dbOpenDynaset, dbSeeChanges)
'Set : 개체 변수를 할당한다. Dim을 통해서 변수를 지정했으면 데이터타입, 개체(object) 데이터 타입은 Set을 통해서 데이터 할당.
'데이터 베이스에 접속시키는 개념
'눈에 보이지 않는 부분(표로 만들어 제공)
'Database.OpenRecordset method (DAO) Link: https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/database-openrecordset-method-dao
'구문을 덩어리로 나누어 읽기
'어렵지만 직역을 안하고 의역을 하는 이유는 용어 대한 암기는 가능하면 피하려고함. 장점: 지금 당장은 이해하기 수월함, 단점: 후에 조금 실력이 늘면 실력이 좋은 사람이 정확한 용어로 설명할때 잘 못알아들음;;;;
'1. set RS = Currentdb.openrecordset()
'2. "Select * from 테이블명" or "Select * From 테이블명 Where 조건"
'3. 위의 조건은 조건=조건 이라는 형식의 조건을 비교하는 구문으로 형성
'4. 조합을하면 아래와 같은 형식으로 이루어짐
'4-1. Set RS = CurrentDb.OpenRecordset( )
'4-2. "select * from 테이블이름 where ID = " & Me.ID & " "
'4-3. , dbOpenDynaset, dbSeeChanges
'5-1. Set RS = CurrentDb.OpenRecordset() :마법주문1: 레코드셋을 사용하기 위한 구문: 의역을 한다면 나는 현재 ()안의 내용을 레코드셋으로 지정할것이다.
'5-2. "select * from 테이블이름 where ID = " & Me.ID & " " :마법주문2: 테이블안의 모든레코드중 조건이 맞는것으로~
'5-3. , dbOpenDynaset, dbSeeChanges :마법주문3: 심지어 DB가 외부에 있지만 가능하게 할것이다.
'5-4: 코딩 몇글자로 눈에 보이지 않는 테이블 비슷한 data 집합체를 만든다. 그 안의 내용은 Select 구문으로 이루어진 내용이고, BackEnd는 분리되어 있는 상황(현재상황 아님)에서 가져올것이다.
RS.Delete
'내가 만들 레코드를 삭제하라!!
Set RS = Nothing
'내가 만든 레코드셋을 지워라
'[2]폼에 관련된 명령 (1): 텍스트 박스
신규버튼_Click
'[2]폼에 관련된 명령 (2): 리스트
Me.아이템리스트.Requery
'[3]메세지 박스 명령
MsgBox "삭제완료"
'6. 저장,수정,삭제구문 모음
'6-1 저장
'Set RS = CurrentDb.OpenRecordset("select * from t_아이템정보", dbOpenDynaset, dbSeeChanges)
'RS.AddNew
'저장할내용------------------(시작) 저장할 부분(필드) = 저장할 값
'RS!모델코드 = Me.모델코드
'RS!아이템종류 = Me.아이템종류
'RS!구매단가 = Me.구매단가
'RS!구매처 = Me.구매처
'저장할내용------------------(끝)
'RS.Update
'RS.Close
'6-2 수정
'Set RS = CurrentDb.OpenRecordset("select * from t_아이템정보 where ID = " & Me.ID & " ", dbOpenDynaset, dbSeeChanges)
'With RS
'.Edit
'수정할내용------------------(시작) 수정할 부분(필드) = 저장할 값
'!모델코드 = Me.모델코드
'!아이템종류 = Me.아이템종류
'!구매단가 = Me.구매단가
'!구매처 = Me.구매처
'수정할내용------------------(끝)
'.Update
'.Close
'End With
'6-3 삭제
'Set RS = CurrentDb.OpenRecordset("select * from t_아이템정보 where ID = " & Me.ID & " ", dbOpenDynaset, dbSeeChanges)
'With RS
'.Delete
'(ID에 해당하는 내용을 다 지움):저장할 내용을 따로 안적음
'.Close
'End With
End Sub
Private Sub if버튼_Click()
'간단한 IF문 설명
'IF 문은 조건문입니다.
'조건이란 판가름 하는 기준으로 본다.
' 만약 A가 '0' 이면
' B에 '거짓'을 나타내고
' A가 아니면 '참을 나타내라.
Dim A As Integer, B As String
If Me.input = 0 Then
Me.output = "거짓"
ElseIf Me.input <> 0 Then
Me.output = "참"
End If
End Sub
Private Sub if버튼2_Click()
Dim A As Integer, B As String
If Me.input = 0 Then
Me.output = "영"
ElseIf Me.input > 0 Then
Me.output = "양수"
'Else
ElseIf Me.input < 0 Then
Me.output = "음수"
End If
End Sub
Private Sub 신규버튼_Click()
Me.ID = Null
Me.모델코드 = Null
Me.아이템종류 = Null
Me.구매단가 = Null
Me.구매처 = Null
End Sub
Private Sub 아이템리스트_AfterUpdate()
'1번째 리스트 보이는 방법.: 리스트에서 바로 읽는 방법
Me.ID = 아이템리스트.Column(0)
'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 & "")
End Sub
Private Sub 저장버튼_Click()
Dim RS As DAO.Recordset
If Nz(ID, 0) = 0 Then
'[1-1] 저장
Set RS = CurrentDb.OpenRecordset("select * from t_아이템정보", dbOpenDynaset, dbSeeChanges)
RS.AddNew
RS!모델코드 = Me.모델코드
RS!아이템종류 = Me.아이템종류
RS!구매단가 = Me.구매단가
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.모델코드
!아이템종류 = Me.아이템종류
!구매단가 = Me.구매단가
!구매처 = Me.구매처
.Update
.Close
End With
MsgBox "수정"
End If
'[2]폼에 관련된 명령 (1): 텍스트 박스
신규버튼_Click
'[2]폼에 관련된 명령 (2): 리스트
Me.아이템리스트.Requery
End Sub
반응형
'바보처럼 코딩하기 > 바보처럼 코딩하기 ver.1 영상+설명' 카테고리의 다른 글
바보처럼 코딩하기 (엑세스) 15. 주문하기(2) (0) | 2021.01.07 |
---|---|
바보처럼 코딩하기 (엑세스) 14. 주문하기(1):ID (0) | 2021.01.05 |
바보처럼 코딩하기 (엑세스) 12. 전편까지의 개념설명 & 구문해석 (0) | 2020.12.29 |
바보처럼 코딩하기 (엑세스) 11. 폼(Form) - 버튼(2) Unbound Control (0) | 2020.12.28 |
바보처럼 코딩하기 (엑세스) 10.폼(Form) - 버튼 Unbound Comtrol (0) | 2020.12.28 |