수색…


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