■ mysql에 접속
- 우선 제어판에서 odbc에 DSN을 추가하고
- 다음과 같이 간단히 접속한다.
Dim sql As String
Set Con = New ADODB.Connection
Con.Open "test", "issi", "issi" ' Con.Open "DSN이름" , "ID" , "PASS"
If Con.State = adStateClosed Then
MsgBox ("DB접속 실패")
Else
sql = "Select * From member"
Set Rs = New ADODB.Recordset
Set Rs = Con.Execute(sql)
' 읽어온 Query 결과의 Data를 이용합니다.
Do Until Rs.EOF
MsgBox Rs(0) & Rs(1) & Rs(2) & Rs(3) & Rs(4) & Rs(5)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing ' 발행된 RecordSet을 닫습니다.
End If
sql = "Select * From member"
Set Rs = New ADODB.Recordset
Set Rs = Con.Execute(sql)
' recordset에 명령어중에 유용한것 끝인지 알수 있고 앞으로 가고 뒤로가고 다시 처음으로 가는
' movenext, movefirst, movepre......
' 읽어온 Query 결과의 Data를 이용합니다.
Do Until Rs.EOF
MsgBox Rs(0) & Rs(1) & Rs(2) & Rs(3) & Rs(4) & Rs(5)
Rs.MoveNext
Loop
■ DB작업하기(추가, 수정, 제거, 검색)
Dim AffectedRecord As Integer
Dim 값1 As Integer
Dim 값2 As String
Dim insSQL,updateSQL,deleteSQL,deleteSQL As String
가) 추가
insSQL = "INSERT INTO 테이블명(필드1, 필드2) VALUES (" & 값1 & ", '" & 값2 "')"
Conn.Execute insSQL
(주) 여기서 값1은 필드1이 숫자타입으로 (') 기호를 사용하지 않고 값2는 필드2가 문자형이므로 값2 좌우에 (')인용부호를 하였다.
나) 수정
updateSQL = "UPDATE 테이블명 SET 필드2 = '" & 값2 & "' WHERE 필드1 = " & 값1
Conn.Execute insSQL, AffectedRecord
MsgBox AffectedRecord & "개의 레코드가 변경되었습니다.",vbOKOnly, "수정성공"
다) 삭제
deleteSQL = "DELETE FROM 테이블명 SET WHERE 필드1 = " & 값1
Conn.Execute deleteSQL, AffectedRecord
MsgBox AffectedRecord & "개의 레코드가 삭제되었습니다.",vbOKOnly, "삭제성공"
라) 조회
selectSQL = "SELECT * FROM 테이블명 WHERE 필드2 = '" & 값2 & "'"
Set Rs = Conn.Execute(selectSQL)
Conn.Close '연결닫기(더 이상 작업이 없을 경우 반드시 연결을 끊어야)
Set Conn = Nothing '개체소멸(메모리에서 개체를 제거합니다.)