• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Excel'e Sorgu Aktarma

Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Merhaba,

Aşağıki kodlar ile tablodaki verileri excele aktarabiliyorum.

Bu verileri tablo yerine oluşturduğum sorgudan nasıl excele aktarabilirim?

Bulduğum çözümlerde bu kodlar hem tablo, hemde sorgu için gösteriyor. Fakat sorgu ismi yazdığımda "Parametre bekleniyor , 9 ... hatası verdi.

Kod:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim SQLStr, SQLStr1 As String
Dim SQLOrderBy As String
Set db = CurrentDb
SQLStr = "select * from datatable"
Set rs = db.OpenRecordset(SQLStr)
 
If rs.RecordCount > 0 Then
Dim oApp As New Excel.Application
Dim oBook As Excel.Workbook
Dim oSheet As Excel.Worksheet
Set oBook = oApp.Workbooks.Add
Set oSheet = oBook.Worksheets(1)
 
sat = 1
            rs.MoveFirst
            For i = 1 To rs.RecordCount
                    oSheet.Cells(sat + i, "a").Value = rs.AbsolutePosition + 1
                    oSheet.Cells(sat + i, "b").Value = rs(0)
                    oSheet.Cells(sat + i, "c").Value = rs(1)
                    rs.MoveNext
            Next i
 
Else
    MsgBox "Kayıt bulunamadı", vbInformation + vbDefaultButton1 + vbOKOnly, "Bilgi"
End If
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
 
Merhaba Recep bey..

Bu prosedürü alternatif olarak kullanbilirsinizz..:

Kod:
[COLOR=#0600ff]Dim[/COLOR] yol [COLOR=#0600ff]As[/COLOR] [COLOR=#0600ff]String[/COLOR]
yol [COLOR=#008000]=[/COLOR] [COLOR=#0600ff]Environ[/COLOR][COLOR=#000000]([/COLOR][COLOR=#fb0000]"userprofile"[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#008000]&[/COLOR] [COLOR=#fb0000]"\Desktop\sorgu_adı.xls"[/COLOR]
 
[COLOR=#008004][I]'Dosyaları 2007 sürümde kaydetmek için "....acExport, 8,..." kısmında buluna 8'i 9 yapınız..[/I][/COLOR]
DoCmd.TransferSpreadsheet acExport, [COLOR=#7d2252]8[/COLOR], [COLOR=#fb0000]"sorgu_adı"[/COLOR], yol, [COLOR=#0600ff]True[/COLOR], [COLOR=#fb0000]"sorgu_adı"[/COLOR]
 
MsgBox [COLOR=#fb0000]"Aktarım tamamlandı.."[/COLOR]

Access vba komut kartelasında yine bu amaç için hazırlanmış bu yöntem de var..:

Kod:
 DoCmd.OutputTo acOutputQuery, [COLOR=#fb0000]sorgu_adı[/COLOR], [COLOR=#fb0000]"MicrosoftExcel(*.xls)"[/COLOR], [COLOR=#fb0000]""[/COLOR], [COLOR=#0600ff]False[/COLOR], [COLOR=#fb0000]""[/COLOR], [COLOR=#7d2252]0[/COLOR]
 
Geri
Üst