Docmd.transferspreadsheet Fonksiyon Olarak Çağırma

1 2 3 4 5 6 7 8 9 10 11 12 13
16/02/2020, 20:46

feraz

Evet berduş hocam o kodlar zaten mevcut lakin accessman hocamızın gönlü olsun yinede
16/02/2020, 20:51

berduş

konu çözümüne kavuştuysa taşıyalım mı cevaplanmışlara?
16/02/2020, 21:39

accessman

eklediğim kodda Excel sayfa isimlerini buluyormuş galiba 
mesela birden fazla sayfayı ayrı ayrı tablolara alacak şekilde yapılabilir mi
5 sayfa varsa 5 ayrı tabloya nasıl aldırırız bakacak kaç sayfa varsa o kadar tablo yapacak
16/02/2020, 21:50

berduş

https://accesstr.net/konu-excelden-veri-...tarma.html
bağlantısını incelerseniz orada belli bir dosyada yer alan tüm sayfaları alan bir kod var işinize yarayabilir
Set db = OpenDatabase(txtDosyaAdres, True, True, "Excel 5.0")
Me.LstExcelSyf.RowSource = ""

For Each tbl In db.TableDefs
tblAdi = CStr(Replace(tbl.Name, "'", ""))
If Len(tblAdi) = InStr(tblAdi, "$") Then Tur = "Sayfa" Else Tur = "Alan"
Me.LstExcelSyf.AddItem Tur & ";" & tblAdi & ";" & Replace(tblAdi, "$", "")
Next
orada dosya seçme penceresinden ilgili dosya seçilip tüm sayfa ve alanlar liste kutusuna aktarılır
siz sadece sayfa türünde olanları liste kutusuna yada diziye aktararak yapabilirsiniz
16/02/2020, 22:13

accessman

teşekkürler inceleyeceğim
16/02/2020, 22:25

feraz

(16/02/2020, 16:40)berduş yazdı: iyi de orada zaten kullanılmış
If Not IsNull(DLookup("Name", "MSysObjects", "Name='TmpTablo'")) Then DoCmd.DeleteObject acTable, "TmpTablo"
önce dosya var mı diye kontrol ediyor sonrada varsa siliyor. sizin yapmanız gereken silmek yerine kendi istediğiniz kodu yazmak.

Alttaki kod koşullu tablo adı buluyor anladığım.
Çok ilginçmiş.Standart olarak böyle arayabiliriz değil mi ?


DLookup("Name", "MSysObjects", "Name='TmpTablo'")
1 2 3 4 5 6 7 8 9 10 11 12 13