Merhabalar
Elimde Ana_Listesi isimli tablom var bu tabloya toplu veri girişi yapmam gerekiyor.
Ama access'te Ana_Listesi isimli tablosunu sayısal değer olarak tutmaktayım.
Text olan veriyi içeri sayısal değer olarak nasıl import edebilirim.
Bu konu hakkında yardımcı olabilir misiniz?
Bu yöntem ile veri türünü değiştiremeyiz diye biliyorum
Insert yöntemiyle verileri alırken alan türleri değiştirilebilir belki
Amacınız tam olarak ne?
Verileri var olan bir tabloya mi ekleyeceksiniz yoksa sıfırdan bir tablo mu olusturacaksiniz?
Hocam
Evet var olan bir tabloya ekleyecez.
Çalışmam da örneğin İl - ilçe kısmı var Ana tabloma ilişkilendirmişim
Ana Tablomda verileri ilişkilendirdiğim için örneğin Van ilini 1 olarak ana tablomda tutuyorum.
Ama bana bazen veriler toplu geliyor Import etmem gerekiyor.
Veriler de bana Metin olarak geliyor. Metin olarak gelen veriyi Import aşamasında İl tablosunu tarayıp Van ilinin ID sini Ana Tabloya Yazdıramaz mıyız?
Hocam
Çalışmamda içeri Import etmek için veri tablosu bıraktım.
Veri tablosundaki değerler metinsel Ama
Access içindeki tablom sayısal değer ilişkilendirilmiş.
Normalde bu çalışmamı Formdan giriş için ayarlamıştım.
Toplu Import işin içine girince takılı kaldım.
Sayın @
footprinting
Ana_Listesi tablosuna toplu veri çekip sayısal dönüşümlü olarak aktarmak için alttaki kodu dener misiniz?
Ancak verilerin tabloya kaydedilebilmesi için
Ana_Listesi tablosundaki ilişkileri kaldırmalısınız. Verileri aldıktan sonra ilişkileri tekrar oluşturabilirsiniz. Ancak her toplu veri çekiminde bu ilişkileri kaldırmanız gerekir. Aksi takdirde tabloya kayıt izni vermeyecektir.
Private Sub Btn_Ana_Liste_Import_Click()
'Veri toplu import kodu
Dim StrAdres As String
Dim f As Object 'FileDialog
Set f = Application.FileDialog(3) 'msoFileDialogFilePicker
StrAdres = CurrentProject.Path & "\"
With f
' .AllowMultiSelect = True 'default
.InitialFileName = StrAdres
' .Filters.Clear
.Filters.Add "All Files", "*.*"
.Show
Dim varFile As Variant
For Each varFile In .SelectedItems
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Gecici", varFile, True 'MsgBox Trim(varFile)
Next
End With
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO Ana_Listesi ( Tesisat_ID, Kesinti_No, Isim_ID, Unvan_ID, Il_ID, Ilce_ID, Ay_ID, Yil, Miktar, Dekont_ID, Ödeme_Tarihi, Iban_ID, Tazminat_Turu_ID, Aciklama ) " & vbCrLf & _
"SELECT Tesisat_No.Tesisat_ID, Gecici.Kesinti_No, Isim_Listesi.Isim_ID, Unvan.Unvan_ID, Il.Il_ID, Ilce.Ilce_ID, Ay.Ay_ID, Gecici.Yil, Gecici.Miktar, Dekont.Dekont_ID, Gecici.Ödeme_Tarihi, Ibanlar.Iban_ID, Turu.Tazminat_Turu_ID, Gecici.Aciklama " & vbCrLf & _
"FROM (((((Unvan INNER JOIN (((Gecici INNER JOIN Il ON Gecici.Il_ID = Il.Il_Adi) INNER JOIN Ilce ON Gecici.Ilce_ID = Ilce.Ilce_Adi) INNER JOIN Isim_Listesi ON Gecici.Isim_ID = Isim_Listesi.Adi_Soyadi) ON Unvan.Unvan = Gecici.Unvan_ID) INNER JOIN Ay ON Gecici.Ay_ID = Ay.Ay) INNER JOIN Dekont ON Gecici.Dekont_ID = Dekont.Dekont_No) INNER JOIN Ibanlar ON Gecici.Iban_ID = Ibanlar.Iban_No) INNER JOIN Turu ON Gecici.Tazminat_Turu_ID = Turu.Tazminat_Turu) INNER JOIN Tesisat_No ON Gecici.Tesisat_ID = Tesisat_No.Tesisat_No"
DoCmd.SetWarnings True
CurrentDb.Execute "DROP TABLE Gecici;"
MsgBox "Verileriniz aktarıldı."
End Sub