|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 엑셀 버전(95,97,2000,xp,2003,2007): 구독하고있습니다.
* 아래줄에 질문을 작성하세요 >>
아래의 코드를 실행시키면 6만 몇천행 이하에서는 실행이 되다가 넘어가면 런타임 오류가 납니다.
오류코드는 -2147217865 (80040e37), Microsoft Access 개체를 찾을 수 없다고 나옵니다. 웹에서 여러번 찾아봤지만 수정할 수가 없습니다.
도와주시면 감사하겠습니다. 엑셀 기본이 부족하여 코딩이 서툴다는 생각이 듭니다.
Sub backupSQL()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim lSeq As Long
' Declare variables
strFile = "C:\Users\kimyo\Downloads\koStocks.xlsb"
' construct connection string
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=0"""
' create connection and recordset objects
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
' open connection
cn.Open strCon
' Open backup workbook
Workbooks.Open "C:\Users\kimyo\Downloads\koStocks.backup.xlsb"
' Check the last datetime of backuped.
lSeq = Workbooks("koStocks.backup").Worksheets("koStocks").Cells(Rows.Count, 2).End(3)
' SQL query string
strSQL = "SELECT * FROM " & getListObjectSQLAdress(Sheet1.ListObjects(1)) & " where [datetime] > " & lSeq & ";"
Workbooks("koStocks").Worksheets("koStocks").Activate
' execute SQL query
rs.Open strSQL, cn
***여기에서 오류가 발생합니다.*****
'Append data rows to bckup sheet from copied recordset.
Workbooks("koStocks.backup").Worksheets(1).Cells(Rows.Count, 1).End(3)(2).CopyFromRecordset rs
Workbooks("koStocks.backup").Close
' close connection
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub
Function getListObjectSQLAdress(tbl As ListObject) As String
getListObjectSQLAdress = "[" & tbl.Parent.Name & "$" & tbl.Range.Address(False, False) & "] AS [" & tbl.Name & "]"
End Function |
|