Dosyaları Alt Alta Birleştirme

1 2 3 4 5 6 7 8 9
05/03/2020, 14:19

ozanakkaya

(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:55

incsoft

(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.
05/03/2020, 16:15

ozanakkaya

crystal.mdb veritabanına form ekledim. Formda da buton mevcut. Butona tıkladığınızda Excel verilerini sheet1 isimli tabloya aktarır.
05/03/2020, 16:38

berduş

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, 18:02

incsoft

(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, 19:12

ozanakkaya

(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.
1 2 3 4 5 6 7 8 9