Toplu .csv, .xlsx, .xls, .xml Dosya Aktarımı Yapmak
#1
Selam arkadaşlar;

Elimde toplu halde 4 farklı formatta (.csv, .xlsx, .xls, .xml) yer alan dosyaları tabloya aktarmak istiyorum.

1- Her farklı uzantıdaki dosyalar aynı şablondadır. Örneğim 100 adet .csv dosyam varsa alanları aynıdır. Yada 100 tane .xls varsa alanları aynıdır.
2- Her farklı uzantıdaki dosyalar farklı tablolara aktarılacaktır. Yani tüm .csv ler bir "A Tablosu"na yada tüm .xml ler "B Tablosu"na gibi.
3- Klasör altında dosyalar grupludur. Yani aktarılacak dosyalar için kaynak klasör gösterimi yapılabilir.
4- Excel tarafında 2 format vardır. Yine not olarakta yazmak istedim. XLSX ve XLS.

Toplu aktarımı pratik hale nasıl getirebilirim.

Teşekkür ederim.
Saygılar



  Alıntı
Bu mesajı beğenenler:
#2
Merhaba sn adnnfrm,
Elbette bu dediğiniz işlem otomatik olarak yaptırılabilir. Biraz üzerinde çalışmak gerekiyor. Dünde buna benzer bir soruya çözüm önerisinde bulunmuştum. Bu işlemi klasörlerin yolunu belirterek ve döngü oluşturarak yapabiliriz. Örneğin .csv dosyalarını ilgili tabloya almak için aşağıdaki kod kullanılabilir. Zaten bunu yaptıktan sonra diğerleri için de sadece yol ve dosya uzantısı değiştirilebilir.
Visual Basic
  1. Function TextDosyaAktar()
  2. Dim fDialog As Office.FileDialog
  3. Dim varFile As Variant
  4. Dim DosyaSec As String
  5. Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
  6.        With fDialog
  7.                .AllowMultiSelect = True
  8.                .Title = "Liste içeren csv dosyası seçin"
  9.                .Filters.Clear
  10.                .Filters.Add "Not Defteri Dosyaları", "*.csv"
  11. If .Show = True Then
  12.    For Each varFile In .SelectedItems
  13.    DosyaSec = varFile
  14.    DoCmd.TransferText transfertype:=acImportFixed, _
  15.        specificationname:="Tabloya Aktarma", _
  16.        tablename:="Friends", _
  17.        filename:=DosyaSec, _
  18.        hasfieldnames:=False
  19.  
  20. Next
  21.  
  22. If Err.Number = 2501 Then
  23. MsgBox " Kullanıcı tarafından İptal edildi.", vbInformation, "Access-SQL"
  24. Else
  25. End If
  26.      Else
  27.         MsgBox "Dosya Seçme İşlemi İptal edildi."
  28.      End If
  29.   End With
  30.  
  31. MsgBox "Dosya aktarım işlemi başarıyla tamamlandı...", vbInformation, "Access-SQL"
  32. End Function




Bu fonksiyonu herhangi bir olayda kullanabilirsiniz.
Kolay gelsin..



  Alıntı
Bu mesajı beğenenler:
#3
(22-06-2023, 01:26)adnnfrm demiş ki: Toplu aktarımı pratik hale nasıl getirebilirim.


.rar   VeriAlma.rar (Boyut: 33,48 KB / İndirilme: 69)

Sn adnnfrm; Örnek dosyada, klasöre ait dosyaları birinci liste kutusuna aldıktan sonra, birinci liste kutusunu çift tıklama ile verileri tabloya aktarılacak olanlar belirlenmesiyle. düğme ile ikinci liste kutusundaki dosyaları içe almak için tıklanabilir.
Veri aktarım şablonu ve içe alim sonrası tablolara ekleme işlemlerini prosedüre isleyebilirsiniz.

Visual Basic
  1. Private Sub VeriAl_Click()
  2. '******************************** BURASI GELISTIREBILIRSINIZ **********************************
  3. Dim Uzanti, Dosya As String
  4. For SWa = 1 To Me.Secilenler.ListCount - 1
  5. Dosya = Me.Secilenler.Column(2, SWa)
  6. Uzanti = Split(Dosya, ".")(1)
  7. If Eval("'" & Uzanti & "' IN('txt', 'csv')") Then
  8. DoCmd.TransferText acImportFixed, "KayitliTextSablonu", "Gecici" & Uzanti, Dosya, False
  9. '****Alinan Text Dosya Verileri Currentdb.execute "INSERT INTO..... ile ilgili tablolara ekleme yapilabilir. *********
  10. '****Currentdb.execute "INSERT INTO A(......) SELECT * FROM Gecici" & Uzanti
  11. ElseIf Eval("'" & Uzanti & "' IN('xlsx', 'xls', 'xml')") Then
  12. DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12 & IIf(Uzanti = "xml", "Xml", vbNullString), "Gecici" & Uzanti, Dosya, False
  13. '****Alinan Excel Dosya Verileri Currentdb.execute "INSERT INTO..... ile ilgili tablolara ekleme yapilabilir. *********
  14. End If
  15. DoCmd.DeleteObject acTable, "Gecici" & Uzanti
  16. Next SWa
  17.  
  18. End Sub





  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Word Dot şaplonunu Açtırarak Dosya Göndermek Aplt 1 332 12-01-2025, 17:11
Son Mesaj: dsezgin
  Access Ile Web Den Veri Almak Ve Güncelleme Yapmak. karamurat42 0 345 08-10-2024, 15:42
Son Mesaj: karamurat42
  [TABLO] Word Tablodan Tarih Aktarımı kahramanselim 6 510 01-10-2024, 12:34
Son Mesaj: halily
  [TABLO] Excel Aktarımı kahramanselim 6 748 06-04-2024, 21:11
Son Mesaj: kahramanselim
  Aktarım Yaparken Dosya Adını Değiştirme zimbit 4 475 04-02-2024, 00:42
Son Mesaj: zimbit
  [VBA] Rapora Veri Aktarımı zimbit 15 872 19-01-2024, 02:10
Son Mesaj: zimbit
  [FORM] form klasör içinde dosya kontrolü obaysal42 4 2.499 29-12-2023, 10:24
Son Mesaj: burhanb
  [VBA] Dosya Yolu Yazdırma benuva 2 508 26-11-2023, 19:06
Son Mesaj: benuva

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi