2016-06-25 2 views
0

ACCESS SQL보기에서 SQL에 액세스하고 수동으로 수행하는 것 이외의 작업을 쉽게 수행 할 수없는 것 같습니다. 아래에서이 코드를 사용하는 마법의 방법이 있습니까?액세스 결과 저장 워크 시트 Excel VBA

Excel의 VBA에서이 작업을 수행하려고합니다.

Private Sub tryagain() 
    Dim con As ADODB.Connection 
    Dim rs As ADODB.Recordset 
    Set con = New ADODB.Connection 

    With con 
    .Provider = "Microsoft.ACE.OLEDB.12.0" 
    .Open "C:\Users\Ashleysaurus\Desktop" & "\" & "xyzmanu3.accdb" 
    End With 

    con.Execute "Invoice Query" 

    'How do output to Worksheet? 

    rs.Close 
    cmd.ActiveConnection.Close 
End Sub 
+0

@ScottCraner 나는 당신이이 예와 <... 여기 나쁜 엉덩이를 엑셀 개봉 3 –

+0

시작을 슈퍼아요을 알고 다음 문제 (코드)로 돌아와 https://support.microsoft .com/ko-ko/ko/246335 – dbmitch

+0

나는 엑셀 vba를 사용하여 임시 쿼리를 수행하는 방법을 이미 알고있다. 저장 프로 시저와 같은 저장된 쿼리를 처리하는 방법을 알아 내려고 노력하고있다.) 그리고 콘텐츠를 Excel로 출력합니다. 또한 내가 올린 링크는 Acces-VBA를위한 태그로서 Excel-VBA를 포함합니다. 더 명확하게하기 위해 설명을 업데이트 할 것입니다. –

답변

1

은 단순히 당신이 초기화 ADO 레코드 집합 개체를 사용하여 쿼리를 호출 한 다음 (결과를 배치 할 가장 왼쪽에있는 워크 시트 셀을 지정)을 Range.CopyFromRecordset 방법을 실행합니다.

또한 올바른 연결 문자열을 사용하여 변경된 연결 열기 루틴을 참조하십시오. 레코드 세트는 열 머리글을 자동으로 가져 오지 않고 데이터 만 가져 오므로 레코드 세트의 필드 이름을 반복하는 루프가 추가되었습니다. 제트/ACE SQL 엔진은 모든 Office 또는 Windows 프로그램에 사용할 수있는 윈도우 기술 (.dll 파일)을 그대로 그런데

Private Sub tryagain() 
    Dim con As New ADODB.Connection 
    Dim rs As New ADODB.Recordset 
    Dim strConnection As String 
    Dim i as Integer, fld As Object 

    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _ 
         & "Data Source='C:\Users\Ashleysaurus\Desktop\xyzmanu3.accdb';" 

    con.Open strConnection  
    rs.Open "SELECT * FROM [Invoice Query]", con 

    ' column headers 
    i = 0 
    Sheets(1).Range("A1").Activate 
    For Each fld In rs.Fields 
     ActiveCell.Offset(0, i) = fld.Name 
     i = i + 1 
    Next fld 

    ' data rows 
    Sheets(1).Range("A2").CopyFromRecordset rs 

    rs.Close 
    cn.Close 
End Sub 

이 같은 위의 설정에도 Excel 통합 문서를 조회 할 수 있습니다.

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _ 
        & "Data Source='C:\Path\To\Workbook.xlsm';" _ 
        & "Extended Properties=""Excel 8.0;HDR=YES;"";" 

strSQL = "SELECT * FROM [Sheet1$]"