2016-11-02 5 views
0

oledb 연결을 통해 Windows PC에서 Excel 2016에 매크로를 작성했습니다. 하지만 내 Mac에서는 작동하지 않습니다. 이걸 어떻게하면 안되지? 일반적으로 Windows에서는 도구> 참조를 선택하고 oledb 연결을 확인하지만 Excel Mac에서는 도구 옵션이 없습니다. 나는 여기에 코드가 중요하다는 것을 모르지만 어쨌든 그것을 공유 할 것이다.Mac에서 Excel 시트에 대한 Sql 쿼리

Dim sorgu1 As String 
Dim con As Object, rs As Object 
    Set con = CreateObject("adodb.connection") 
    Set rs = CreateObject("adodb.recordset") 
    con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _ 
    ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes""" 

    makine = Sheets("Dashboard").Cells(2, 11).Value 

    sorgu1 = "select [Resource Id], [Order No], Sum(([Bitim Zamani]-[Basl Zamani])*1440)" 'as Plansiz, Sum(([Bitim Zamani]-[Basl Zamani])*1440)as Planli, Sum([Qty]) as Uretim" 
    sorgu1 = sorgu1 + " from [Data$] where [Resource Id] = " + "'" + makine + "'" 
    sorgu1 = sorgu1 + "GROUP BY [Resource Id], [Order No], [Duru Kodu]" 

    Set rs = con.Execute(sorgu1) 
    Sheets("Dashboard").Range("B65536").End(3).Offset(1, 0).CopyFromRecordset rs 
    Set rs = Nothing 

답변

3

코드는 후기 바인딩을 사용하며 컴퓨터에서 라이브러리를 사용할 수있는 경우 "참조"가 필요하지 않습니다. 귀하의 경우 Mac OS에서 라이브러리는 존재하지 않으며 명시 적으로 허용되지 않습니다.

From Microsoft (강조는 추가) :

는 Microsoft SQL Server와 같은 데이터베이스에서 데이터를 가져 오려면 당신은 쿼리의 컴퓨터에 설치와 호환되는 ODBC 드라이버가 있어야합니다. 호환되는 ODBC 드라이버는 타사 공급 업체에서 구할 수 있습니다. 자세한 내용은 ODBC drivers that are compatible with Excel for Mac을 참조하십시오. ODBC 드라이버 설치에 대한 자세한 내용은 Microsoft Query 도움말을 참조하십시오.

Mac 용 Excel 2011을 사용하는 경우 중요하게도 OLE DB는 Mac OS에서 명시 적으로 지원되지 않습니다.

Mac 용 Excel 2011은 OLE DB 또는 OLAP 데이터 원본에서 데이터를 가져올 수 없습니다.

그래서, 당신의 질문에 대답하는 Mac에서 작업 할 수 당신의 SQL 쿼리를 볼 수있는 방법이 없습니다, 당신은 완전히 다른 뭔가를 사용해야합니다. 언급 한 바와 같이 당신은 Mac 용 Excel 2016을 사용하는 경우

은 그러나, 당신이 그것을 할 수 있습니다

엑셀이 버전의 SQL 서버 데이터베이스에 연결하기위한 ODBC 드라이버를 제공한다. 데이터 탭에서 새 데이터베이스 쿼리> SQL Server ODBC를 클릭합니다. 그런 다음 대화 상자를 사용하여 데이터를 가져옵니다.

다른 ODBC 데이터 소스 (예 : FileMaker Pro)에 연결하는 경우 Mac에 데이터 소스 용 ODBC 드라이버를 설치해야합니다. Mac 용 Excel와 호환되는 드라이버는이 회사에서 사용할 수 있습니다

또는 비슷한 질문이 대답은 유망한 같습니다

https://stackoverflow.com/a/25126885/1467082

+0

이 대답은, SQL Server 쿼리 도움이 대답하지 않습니다 운영 체제가 언급 한 버전 인 Mac 용 Office 2016에서 기본적으로 사용할 수 있습니다. 이것은 단지 당신이 2011 년에 그것을 할 수 없다고 말합니다. – TravisPUK

+0

@TravisPUK OP는 PC에서 Excel 2016을 나타내며, Mac 용 Excel 버전이 사용됨에 대한 표시가 없습니다. 어쨌든, 나는 대답을 수정했다. (링크 된 MSDN 기사 *는 Mac 용 2016 Excel에서도 가능하다고 설명한다.) –

+0

이 올바르지 않습니다. OP는 특별히 "oledb 연결을 통해 Windows PC에 Excel 2016에 매크로를 작성했습니다.하지만 Mac에서는 작동하지 않습니다." – TravisPUK