(05/03/2020, 13:47)ozanakkaya yazdı: Üstteki kod, Access uygulamanızla aynı dizindeki exceldokuman.xlsx isimli Excel belgesinin Sayfa1 sayfasındaki verileri, tbl_tablo1 isimli tabloya aktarır.
(05/03/2020, 14:06)incsoft yazdı: Mesela Access database dosyam crystal.mbd ve Sayfa1 tablosu var.. Alacağım dosyada donemoncesi.xlsx ve Sayfa1 ya da herhangi bir sayfa... Bu verilerin hepsini alıp crystal.mdb de bulunan Sayfa1 database'ine eklemesi mümkünmüdür?
crystal.mdb isimli veritabanında, forma ekleyeceğiniz butona tıklarsanız mümkündür.
Excel belgesinin adı, Sayfa adı ile accessde tablo adını kodda düzeltmelisiniz.
(05/03/2020, 14:19)ozanakkaya yazdı: (05/03/2020, 13:47)ozanakkaya yazdı: Üstteki kod, Access uygulamanızla aynı dizindeki exceldokuman.xlsx isimli Excel belgesinin Sayfa1 sayfasındaki verileri, tbl_tablo1 isimli tabloya aktarır.
(05/03/2020, 14:06)incsoft yazdı: Mesela Access database dosyam crystal.mbd ve Sayfa1 tablosu var.. Alacağım dosyada donemoncesi.xlsx ve Sayfa1 ya da herhangi bir sayfa... Bu verilerin hepsini alıp crystal.mdb de bulunan Sayfa1 database'ine eklemesi mümkünmüdür?
crystal.mdb isimli veritabanında, forma ekleyeceğiniz butona tıklarsanız mümkündür. Excel belgesinin adı, Sayfa adı ile accessde tablo adını kodda düzeltmelisiniz.
Hocam yeni olduğum için yapamadım kusura bakmayın ama öğrenmek istiyorum. Sitemize premium üyelikte yapacam. Bazı arkadaşlar örnek dosya istemişler basit birşey hazırladım. Amacım donemoncesi.XLSX dosyasında başlıklar haricindeki tüm verileri crystal.mdb dosyasının sonuna otomatik olarak ekletirmek. Ben access'de normal olarak aldırmak istediğimde ne şekilde denersem deneyim olmadı. crystal.mdb dosyam normalde 650.000 satır ve
donemoncesi.XLSX dosyamda 100.000 satır ve hergün yaklaşık 750 satır olarak artmaktadır.
Diğer arkadaşların örneklerine baktım ama bu konuda yeni olduğumdan maalesef yapamadım kusura bakmayın.
crystal.mdb veritabanına form ekledim. Formda da buton mevcut. Butona tıkladığınızda
Excel verilerini sheet1 isimli tabloya aktarır.
Bu da 2. bir yöntem --> referanslara Ado 2.8 eklenmiştir
'hy_Geçici_tablo_var_mı_varsa_sil_____
If DCount("*", "MSysObjects", "Name='TmpTablo' and type in (1,4,6)") > 0 Then DoCmd.DeleteObject acTable, "TmpTablo"
DoCmd.TransferSpreadsheet TransferType:=acLink, _
TableName:="TmpTablo", _
SpreadsheetType:=10, _
FileName:=CurrentProject.Path & "\donemoncesi.XLSX", _
HasfieldNames:=True, _
Range:="Sheet1$"
'hy Tablo Boş Mu_____________
Dim SayRS As New ADODB.Recordset
Dim SaySql As String
SaySql = "select * from TmpTablo"
SayRS.Open SaySql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
KytSay = SayRS(0)
krt = " where [" & SayRS(0).Name & "] Is Not Null"
SayRS.Close
SayRS.Open SaySql & krt, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If SayRS.RecordCount = 0 Then
DoCmd.DeleteObject acTable, "TmpTablo"
MsgBox "Tabloda veri yok"
Exit Sub
End If
SayRS.Close
'hy Excel Boş Mu_____________Bitti
SaySql = "select * from Sheet1"
SayRS.Open SaySql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
SqlSheet1 = " INSERT INTO Sheet1 ( "
krt = ""
For x = 0 To SayRS.Fields.Count - 1
krt = krt & " , [" & SayRS.Fields.Item(x).Name & "]"
Next x
SqlSheet1 = SqlSheet1 & Mid(krt, 3) & ")"
SayRS.Close
'hy_Sheet1_tbl______________________________||
SaySql = "select * from TmpTablo"
SayRS.Open SaySql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
SqlTmp = " select "
krt = ""
For x = 0 To SayRS.Fields.Count - 1
krt = krt & " , TmpTablo.[" & SayRS.Fields.Item(x).Name & "]"
Next x
SqlTmp = SqlTmp & Mid(krt, 3)
SayRS.Close
'hy_TmpTablo_tbl______________________________||
SqlEkle = SqlSheet1 & vbCrLf & SqlTmp & vbCrLf & " FROM TmpTablo "
CurrentDb.Execute SqlEkle
CurrentDb.TableDefs.Refresh
DoCmd.DeleteObject acTable, "TmpTablo"
(05/03/2020, 16:15)ozanakkaya yazdı: crystal.mdb veritabanına form ekledim. Formda da buton mevcut. Butona tıkladığınızda Excel verilerini sheet1 isimli tabloya aktarır.
Ozan bey sizde çalışıyormuydu? Çalışması için diğer dosyanın açık olması ya da standart bir konumda olması gerekiyormu? Bende kod hatası verdi ve aktarmadı.. Birde evde deneyeceğim..
(05/03/2020, 18:02)incsoft yazdı: Ozan bey sizde çalışıyormuydu? Çalışması için diğer dosyanın açık olması ya da standart bir konumda olması gerekiyormu? Bende kod hatası verdi ve aktarmadı.
excel belgesinin
Access uygulaması ile aynı dizinde bulunması gerekiyor.
Excel belgesinin açık olmasına gerek yok.