(19/01/2020, 13:05)berduş yazdı: 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ırsaHocam efsanesiniz gene harika çalışıyor son bir soru soruyorum lütfen mazur görün. Şimdi bu bilgileri aldığım sistemde sorgulayıp Excel dosyası halinde d ye her zaman farklı kaydetmek zorundayım, sanırım bu dosya değişken olduğundan acceste yeni kayıt alırken hata veriyor.Fakat Excel içindeki sayfa ismini değiştirmeden Bilgiler1 kısmına bir defa tıklayıp kapatınca problem olmadan alıyor. Sanırım problem Bilgiler Excel in değişken olması.
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
kodlar nedeniyle sıralama daha da önemliIf x = 8 Then GcDgr = ", '" & CStr(CDate(rs.Fields(1))) & "'"
If x = 11 Then GcDgr = ""
Not: tablonuza "cinsiyet" alanı eklendi
UYARI!!! tekrar hatırlatıyorum şablonda tek bir kaydırma yapılmamalı sütunlar asla ama asla değişmemeliDim 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
ve satır değişse bile satır sıralaması kesinlikle değişmemeli
Alan Adı ve Değerler aynı satırda olmalı
Excel Den Hücre Verisi Alma ?
Konuyu Okuyanlar: 2 Ziyaretçi