sorgunun excel olarak alınması

07/12/2016, 22:26

koruyucu

Selamlar herkese

yapmış olduğum bir sorguyu kod ile  excel olarak almak istiyorum

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "sorgugmrapor", "C:\Users\Yunus\Desktop\rapor.xlsx", True

bu kodu yazdım ve Excel dosyasını masa üstüne kaydediyorum fakat açmak istediğimde hata veriyor. yardımcı olabilirmsiniz
07/12/2016, 22:57

ozanakkaya

Yazdığınız kod xlsx uzantısını desteklemiyor. Koddaki rapor.xlsx kısmını rapor.xls olarak değiştirin veya aşağıdaki kodu kullanın.



DoCmd.OutputTo acOutputQuery, "sorgugmrapor", "ExcelWorkbook(*.xlsx)", "C:\Users\Yunus\Desktop\rapor.xlsx", False, "", , acExportQualityPrint
07/12/2016, 23:05

koruyucu

Teşekkür ederim işe yaradı
08/12/2016, 12:15

atoz112

sayın koruyucu,

sadece bilgilendirme amacı ile,aşağıdaki açıklamanın yapılması uygun görülmüştür.

1)

DoCmd.TransferSpreadsheet acExport komutunun kullanımı üzerine;

bu komut ile,uygulamada mevcut hazırlanmış bir raporu direkt olarak Excel dosyasına dönüştürülememektedir.sadece,Tablo ya da Sorgu (ya da,raporun kaynağını oluşturan sorguyu seçmek sureti ile de geçerli olabilir) olarak işlem yapabilirsiniz.çünkü;

KULLANIM KALIBI:


DoCmd.TransferSpreadsheet(TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range, UseOA)

kodlar ve aşağıda bağlantısı yazılı

DoCmd.TransferSpreadsheet Method (Access)

ilgili açıklama konusundan da üzerinden de anlaşılacağı üzere,sadece;Tablo ya da Sorgu kullanılmak sureti ile geçerli olmaktadır.

dolayısı ile de,bu kodu,ancak;rapora kaynak oluşturan sorguyu seçmek sureti ile kullanabilirsiniz.

2)

bir diğer husus ise,
bu komut ile direkt olarak ".XLSX" uzantılı olacak şekilde kullandığınız Ofis sürümünüze göre geçerli olan sürüm tipi acSpreadsheetTypeExcel9 değeri üzerinden aktarım yapamazsınız.

çünkü;".XLSX" uzantısı,sadece XML sürüm tipi (SpreadsheetType) için geçerli olarak kullanılabilir.zaten,yazdığınız sürüm tipi ile birlikte ".XLSX" uzantısını denediğinizde geçersizliğine vurgu yaparak hata iletisi (uyarı mesajı) gösterecektir.

fakat,".XLSX" olarak ille de kaydetmek istiyorsanız eğer,o zaman;

DoCmd.TransferSpreadsheet acExport, 10, "sorgugmrapor", "C:\Users\Yunus\Desktop\rapor.xlsx", True

veyahut da,

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "sorgugmrapor", "C:\Users\Yunus\Desktop\rapor.xlsx", True

olarak kullanmayı deneyiniz.bilginize...iyi çalışmalar,saygılar.