Excelden veri almayla ilgili aşağıdaki bağlantıyı inceleyebilirsiniz
Olmazsa yeni konu açın oradan devam edelim.
N Kadar CSV Dosyasını Access İçine Atmak
yeni konu açmama gerek yok konu devamı
kodlar böyle;
rivate Sub BtnCSVAl_Click()
Dim DosyaBul As Object
Dim vrtSelectedItem As Variant
Dim tblAdi, Tur As String
Set DosyaBul = Application.FileDialog(3)
With DosyaBul
.AllowMultiSelect = True
.ButtonName = "Dosya Seç"
.InitialFileName = CurrentProject.Path
.Filters.Clear
.Filters.Add "CSV Dosyası", "*.xls"
' .Filters.Add "Excel", "*.xls,*.xlsx,*.xlsm,*.csv"
.Filters.Add "Hepsi", "*.*"
.FilterIndex = 0
.Title = "Seç..."
If .Show = True Then
For Each vrtSelectedItem In .SelectedItems
DoCmd.TransferText acImportDelim, "CSVAktar", "Book1", vrtSelectedItem, True, ""
Next vrtSelectedItem
MsgBox "Kopyalama Bitti"
Else
MsgBox "Kopyalama iptal edildi"
Exit Sub
End If
End With
End Sub
------------------
.xls,*.xlsx,*.xlsm bu uzantıları almam gerekiyor
ama bu kodlar sadece *.csv uzantı çalıştırıyor ve kolonların ver türleri tek metin, diğer veri türler sayı tarih para birimi gibi onlar ne olacak
örnek ekleyecektim ama eklenecek yer yok ekleyemedim
kodlar böyle;
rivate Sub BtnCSVAl_Click()
Dim DosyaBul As Object
Dim vrtSelectedItem As Variant
Dim tblAdi, Tur As String
Set DosyaBul = Application.FileDialog(3)
With DosyaBul
.AllowMultiSelect = True
.ButtonName = "Dosya Seç"
.InitialFileName = CurrentProject.Path
.Filters.Clear
.Filters.Add "CSV Dosyası", "*.xls"
' .Filters.Add "Excel", "*.xls,*.xlsx,*.xlsm,*.csv"
.Filters.Add "Hepsi", "*.*"
.FilterIndex = 0
.Title = "Seç..."
If .Show = True Then
For Each vrtSelectedItem In .SelectedItems
DoCmd.TransferText acImportDelim, "CSVAktar", "Book1", vrtSelectedItem, True, ""
Next vrtSelectedItem
MsgBox "Kopyalama Bitti"
Else
MsgBox "Kopyalama iptal edildi"
Exit Sub
End If
End With
End Sub
------------------
.xls,*.xlsx,*.xlsm bu uzantıları almam gerekiyor
ama bu kodlar sadece *.csv uzantı çalıştırıyor ve kolonların ver türleri tek metin, diğer veri türler sayı tarih para birimi gibi onlar ne olacak
örnek ekleyecektim ama eklenecek yer yok ekleyemedim
Son Düzenleme: 31/10/2020, 20:53, Düzenleyen: hakkih.
aşağıdaki bağlantıda excelden veri alma yöntemi ayrıntılı olarak gösterilmiştir
https://accesstr.net/konu-excelden-veri-...tarma.html
bu konu CSVden veri almayla ilgili yani bu konudan devam edemeyiz.
https://accesstr.net/konu-excelden-veri-...tarma.html
bu konu CSVden veri almayla ilgili yani bu konudan devam edemeyiz.
DoCmd.TransferSpreadsheet kodu ile exceldeki veriler accessteki tabloya aktarilabilir
Eger tablo yoksa olusturulur varsa yeni veriler eklenir
TransferSpreadsheet yöntemiyle ilgili genel bilgiler dilerim işinize yarar
DoCmd.TransferSpreadsheet acLink, "Dosya türü excel/versiyonu", "hangi isimle bağlanacak", "tamAdresveAd", "Başlık var mı", "Hangi aralık"
DoCmd.TransferSpreadsheet _
TransferType:=acImport, _
TableName:="TmpTablo", _
SpreadsheetType:=10, _
FileName:=yahya, _
HasfieldNames:=True, _
Range:="B3:E" '"Hy bin 2!B3:E"
TransferType:= transfer türü
İsim - Sayısal değer - Tanım
acImport 0 Varsayılan değerdir, içeri aktatrır
acExport 1 Başka dosyaya gönderir
acLink 2 Başka dosyadaki veriye bağlantı sağlar
TableName:="Hangi İsimle bağlanacak-acLink İse/hangi tabloya aktarılacak"
SpreadsheetType:= tablo türü
İsim Sayısal Değer Tanım
acSpreadsheetTypeExcel3 0 Microsoft Excel 3.0 format
acSpreadsheetTypeExcel4 6 Microsoft Excel 4.0 format
acSpreadsheetTypeExcel5 5 Microsoft Excel 5.0 format
acSpreadsheetTypeExcel7 5 Microsoft Excel 95 format
acSpreadsheetTypeExcel8 8 Microsoft Excel 97 format
acSpreadsheetTypeExcel9 8 Microsoft Excel 2000 format
acSpreadsheetTypeExcel12 9 Microsoft Excel 2010 format
acSpreadsheetTypeExcel12Xml 10 Microsoft Excel 2010/2013/2016 XML format (.xlsx, .xlsm, .xlsb)
FileName:=Dosya yaolu ve adı "d:\deneme\erzak.xlsm" gibi
HasfieldNames:=Satır başlığı var mı True(var)/False(yok)
Range:=veri alınacak bölge "Hy bin 2!B3:E" --> "Hy bin 2" sayfasındaki "B3" ve "E" stunları arasındaki verileri al
Eger tablo yoksa olusturulur varsa yeni veriler eklenir
TransferSpreadsheet yöntemiyle ilgili genel bilgiler dilerim işinize yarar
DoCmd.TransferSpreadsheet acLink, "Dosya türü excel/versiyonu", "hangi isimle bağlanacak", "tamAdresveAd", "Başlık var mı", "Hangi aralık"
DoCmd.TransferSpreadsheet _
TransferType:=acImport, _
TableName:="TmpTablo", _
SpreadsheetType:=10, _
FileName:=yahya, _
HasfieldNames:=True, _
Range:="B3:E" '"Hy bin 2!B3:E"
TransferType:= transfer türü
İsim - Sayısal değer - Tanım
acImport 0 Varsayılan değerdir, içeri aktatrır
acExport 1 Başka dosyaya gönderir
acLink 2 Başka dosyadaki veriye bağlantı sağlar
TableName:="Hangi İsimle bağlanacak-acLink İse/hangi tabloya aktarılacak"
SpreadsheetType:= tablo türü
İsim Sayısal Değer Tanım
acSpreadsheetTypeExcel3 0 Microsoft Excel 3.0 format
acSpreadsheetTypeExcel4 6 Microsoft Excel 4.0 format
acSpreadsheetTypeExcel5 5 Microsoft Excel 5.0 format
acSpreadsheetTypeExcel7 5 Microsoft Excel 95 format
acSpreadsheetTypeExcel8 8 Microsoft Excel 97 format
acSpreadsheetTypeExcel9 8 Microsoft Excel 2000 format
acSpreadsheetTypeExcel12 9 Microsoft Excel 2010 format
acSpreadsheetTypeExcel12Xml 10 Microsoft Excel 2010/2013/2016 XML format (.xlsx, .xlsm, .xlsb)
FileName:=Dosya yaolu ve adı "d:\deneme\erzak.xlsm" gibi
HasfieldNames:=Satır başlığı var mı True(var)/False(yok)
Range:=veri alınacak bölge "Hy bin 2!B3:E" --> "Hy bin 2" sayfasındaki "B3" ve "E" stunları arasındaki verileri al
Konuyu Okuyanlar: 1 Ziyaretçi