Hai Tio, coba buat object ado connection nya dulu. Lakukan connection baru buka recordset.
dim con as adodb.connection set con=new adodb.connection con.open myconnect 'baru baris sisanya yang ada di script Anda. 2016-02-04 14:52 GMT+07:00 Tio Adi Bayu Adjie [email protected] [belajar-excel] <[email protected]>: > > > Salam Excel Expert, > > Saya ada code untuk import query Microsoft access ke Excel tapi tidak > jalan. Mohon pencerahannya, bagaimana solusinya ? > > Error yang muncul di .Parameters("[Harga <= Dari?]") = Range("B1").Value > (yg saya kasih tanda warna hijau). Di computer saya 2003 tidak berhasil, tapi > kalau di Access 2007 berhasil. Mohon pencerahannya > > > > Berikut yang saya dapat : > > > > Sub CopyRecordDariAccess2() > > 'Sebelum menjalankan procedure dibawah ini, pastikan library ini sudah > ditambahkan > > 'di Tools -> References: > > '- Microsoft ActiveX Data Objects Library > > 'Versi sesuai dengan Office yg diinstall di PC nya > > > > 'Tahap 1: Deklarasi nama object dan variable yg digunakan > > Dim MyConnect As String > > Dim MyRecordset As ADODB.Recordset > > Dim MyQueryDef As DAO.QueryDef > > Dim MyDatabase As ADODB.Recordset > > > > 'Tahap 2: Deklarasi jenis koneksi database dan lokasinya > > MyConnect = "Provider=Microsoft.JET.OLEDB.4.0;" & _ > > "Data Source=" & ActiveWorkbook.Path & "\KolaborasiAccessExcel.mdb" > > > > 'Tahap 3: Tentukan nama table/query > > Set MyDatabase = New ADODB.Recordset > > MyRecordset.Open "[TestParameterQuery]", MyConnect, adOpenStatic, > adLockReadOnly > > > > Set MyQueryDef = MyDatabase.QueryDefs("TestParameterQuery") > > > > 'Tahap 3: Definiskan Parameter yg digunakan > > With MyQueryDef > > .Parameters("[Harga <= Dari?]") = Range("B1").Value > > End With > > > > 'Langkah 4: Membuka query > > Set MyRecordset = MyQueryDef.OpenRecordset > > > > 'Tahap 4: Copy seluruh record ke Excel > > Sheets("Sheet1").Select > > ActiveSheet.Range("A2").CopyFromRecordset MyRecordset > > > > 'Tahap 5: Tambahkan judul kolom di Excel > > For i = 1 To MyRecordset.Fields.Count > > ActiveSheet.Cells(1, i).Value = MyRecordset.Fields(i - 1).Name > > Next i > > > > 'Tahap 6: Bersihkan memory di VBA > > MyRecordset.Close > > Set MyRecordset = Nothing > > > > Terima kasih. > > Tio_,_._,___ > > >

