excel-vba
Excel VBA의 SQL - 모범 사례
수색…
VBA에서 ADODB.Connection을 사용하는 방법?
요구 사항 :
프로젝트에 다음 참조를 추가하십시오.
Microsoft ActiveX 데이터 개체 2.8 라이브러리
Microsoft ActiveX 데이터 개체 Recordset 2.8 라이브러리
변수 선언하기
Private mDataBase As New ADODB.Connection
Private mRS As New ADODB.Recordset
Private mCmd As New ADODB.Command
연결 만들기
에이. Windows 인증 사용
Private Sub OpenConnection(pServer As String, pCatalog As String)
Call mDataBase.Open("Provider=SQLOLEDB;Initial Catalog=" & pCatalog & ";Data Source=" & pServer & ";Integrated Security=SSPI")
mCmd.ActiveConnection = mDataBase
End Sub
비. SQL Server 인증 사용
Private Sub OpenConnection2(pServer As String, pCatalog As String, pUser As String, pPsw As String)
Call mDataBase.Open("Provider=SQLOLEDB;Initial Catalog=" & pCatalog & ";Data Source=" & pServer & ";Integrated Security=SSPI;User ID=" & pUser & ";Password=" & pPsw)
mCmd.ActiveConnection = mDataBase
End Sub
SQL 명령 실행
Private Sub ExecuteCmd(sql As String)
mCmd.CommandText = sql
Set mRS = mCmd.Execute
End Sub
레코드 세트에서 데이터 읽기
Private Sub ReadRS()
Do While Not (mRS.EOF)
Debug.Print "ShipperID: " & mRS.Fields("ShipperID").Value & " CompanyName: " & mRS.Fields("CompanyName").Value & " Phone: " & mRS.Fields("Phone").Value
Call mRS.MoveNext
Loop
End Sub
연결 닫기
Private Sub CloseConnection()
Call mDataBase.Close
Set mRS = Nothing
Set mCmd = Nothing
Set mDataBase = Nothing
End Sub
이것을 어떻게 사용 하는가?
Public Sub Program()
Call OpenConnection("ServerName", "NORTHWND")
Call ExecuteCmd("INSERT INTO [NORTHWND].[dbo].[Shippers]([CompanyName],[Phone]) Values ('speedy shipping','(503) 555-1234')")
Call ExecuteCmd("SELECT * FROM [NORTHWND].[dbo].[Shippers]")
Call ReadRS
Call CloseConnection
End Sub
결과
ShipperID : 1 CompanyName : Speedy Express 전화 번호 : (503) 555-9831
ShipperID : 2 회사 명 : 미국 패키지 전화 번호 : (503) 555-3199
ShipperID : 3 회사 명 : 연방 운송 전화 : (503) 555-9931
ShipperID : 4 CompanyName : 빠른 배송 전화 : (503) 555-1234
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow