19/01/2020, 13:05
berduş
sayın @Myalim şablonu oturttum ama çalışmanız sorun çıkartmaya çok açık bir yapıda yani kullanıcı hatalarına çok açık o nedenle ne kadar düzgün çalışır bilemiyorum. eğer kullanıcı yanlışlıkla G sütunu yerine başka bir sütuna yazsa yada yanlışlıkla satır kaydırsa
mesela
Adı: berduş
Adı kelimesi C12 de iken Berduş kelimesi G12 olmalıyken eğer Adı kelimesi C12 ama Berduş yanlışlıkla G13e yazılırsa
yada exceldeki SERİ, TC KİMLİK NO, ...ADI,Baba Adı, Ana Adı..... alanlarının sıralaması değişirse çalışma yine hata verir, daha kötüsü hata vermez ama veriler yanlış alana kaydedilir .
özellikle doğum tarihi alanı ve tabloya eklenmeyecek olan NUFUSA KAYITLI OLDUĞU satırını belirlemek için eklediğim
Not: tablonuza "cinsiyet" alanı eklendi
ve satır değişse bile satır sıralaması kesinlikle değişmemeli
Alan Adı ve Değerler aynı satırda olmalı[attachment=31234]
mesela
Adı: berduş
Adı kelimesi C12 de iken Berduş kelimesi G12 olmalıyken eğer Adı kelimesi C12 ama Berduş yanlışlıkla G13e yazılırsa
yada exceldeki SERİ, TC KİMLİK NO, ...ADI,Baba Adı, Ana Adı..... alanlarının sıralaması değişirse çalışma yine hata verir, daha kötüsü hata vermez ama veriler yanlış alana kaydedilir .
özellikle doğum tarihi alanı ve tabloya eklenmeyecek olan NUFUSA KAYITLI OLDUĞU satırını belirlemek için eklediğim
If x = 8 Then GcDgr = ", '" & CStr(CDate(rs.Fields(1))) & "'"
If x = 11 Then GcDgr = ""
kodlar nedeniyle sıralama daha da önemliNot: tablonuza "cinsiyet" alanı eklendi
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConn As String, sConn2 As String
Dim degerler, cinsiyet, sSql, GcDgr As String
txtDosyaAdres = CurrentProject.Path & "\Bilgiler.xlsx" ' Buraya dosya adresi ve adı yazılacak
degerler = ""
sSql = "select F2,F6,f15 from [Bilgiler1$] where f2 Is Not Null" '
sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & txtDosyaAdres
sConn2 = ";Extended Properties=""Excel 12.0 Xml;HDR=No;Imex=1"";"
Set con = New ADODB.Connection
con.Open sConn & sConn2
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open sSql, con, adOpenKeyset 'rather use this so RecordCount works
If rs.RecordCount = 0 Then Exit Sub
rs.MoveLast
rs.MoveFirst
x = 0
Do Until rs.EOF = True
x = x + 1
cinsiyet = cinsiyet & rs.Fields(2)
GcDgr = ", '" & rs.Fields(1) & "'"
If x = 8 Then GcDgr = ", '" & CStr(CDate(rs.Fields(1))) & "'" 'doğum tarihini tarihe çevirmek için
If x = 11 Then GcDgr = "" 'NUFUSA KAYITLI OLDUĞU satırını pas geçmesi için
degerler = degerler & GcDgr
rs.MoveNext
Loop
degerler = Mid(degerler & ", '" & cinsiyet & "'", 2)
sSql = " insert into [Veriler1] (seriNo, kimlikNo, soyad, adi, babaAd, anneAd, dogumYeri, dogumTarih, medeni, durumu, nufusil, nufusilce, nufusKoyMahalle,cinsiyet) " & _
" values (" & degerler & ")"
CurrentDb.Execute sSql
Set rs = Nothing
UYARI!!! tekrar hatırlatıyorum şablonda tek bir kaydırma yapılmamalı sütunlar asla ama asla değişmemeli ve satır değişse bile satır sıralaması kesinlikle değişmemeli
Alan Adı ve Değerler aynı satırda olmalı[attachment=31234]