สวัสดีครับเพื่อนสมาชิกทุกท่าน
ผมมีปัญหาการเขียน vba ความต้องการคือมีชีท 12 ชีท ต้องการนำข้อมูลจาก access ชื่อ คิวรี 1 - 12มี
ทั้งหมด 12 คิวรีโดยในโปรแกรมจะเรียกมาวางคิวรี 1 วาง ที่ชีท1 คิวรี 2 วางที่ชีท2 ต่อๆไปจนถึงชีท12
พอเขียนเสร็จปรากฎว่า มันทำเพียงชีท 1 ต่อจากนั้นขึ้น Errror ว่า
runtime error 91 object variable or with block variable not set
ซึ่งผมไม่ทราบว่าจะแก้ไขให้ รันรอบต่อไปจนครบ 12 รอบได้อย่างไรจึงขอความอนุเคราะห์จากเพื่อนสมาชิกช่วยแก้ไข
code ให้ผมด้วยครับโดยผมได้แนบ code มาด้วย
Code: Select all
Sub GetData01()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sQRY As String
Dim strFilePath As String
Dim B As String
B = Format(Year(Date), "0000") & Format(Month(Date) - 1, "00")
strFilePath = "D:\Adhoc_2015\ID0060_072015\base2013\OTHERLOAN_2013.mdb"
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
For I = 1 To 12
Sheets("Sheet" & I).Range("AKKE" & I).ClearContents
'sQRY = "SELECT tblData.* FROM tblData"
' sQRY = "NEWCUST"
sQRY = I
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strFilePath & ";"
rs.CursorLocation = adUseClient
rs.Open sQRY, cnn, adOpenStatic, adLockReadOnly
Application.ScreenUpdating = False
Sheets("Sheet" & I).Range("AKKE" & I).CopyFromRecordset rs
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
Next I
Exit Sub
Code นี้จะรันรอบแรกผ่านพอรอบสองเป็นต้นมาขึ้น error ข้อความตามที่แจ้งครับผม
ขอบคุณในความอนุเคราะห์ครับ
เอกกร