Excelden Veri Alma Ve Kaydı Güncelleme

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
30/01/2020, 19:05

yahyamacit

Arkadaşlar excelden Access formu yardımıyla verileri çekebiliyorum. İstediğim şey var olan verileri güncelleyecek . Yeni eklenen kayıtları ekleyecek. Kod alanını ölçüt olarak kullanacak. Access veritabanında aynı koddan veri varsa güncelleyecek. Yoksa yeni kayıt ekleyecek. Yardımlarını için şimdiden teşekkürler.
31/01/2020, 03:49

feraz

Dosya ve kodlar son mesajlarda.

Mesaj düzeltildi.
31/01/2020, 10:09

yahyamacit

Çok teşekkür diyorum . Tam istediğim kod oldu. Harikasınız.
31/01/2020, 10:42

feraz

Rica ederim,kolay gelsin.
01/02/2020, 02:01

feraz

Exceli hiç açtırmadan dosya ekledim.

Deneyebilirsiniz.

Bence bu dosya daha kullanışlı.

Option Compare Database

 
Private Sub Komut0_Click()
 
    Dim say As Long, say1 As Long
    Dim con As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sSql As String
    Dim txtDosyaAdres As String
 
   
    txtDosyaAdres = CurrentProject.Path & "\veri.xlsx"
    sSql = "select [KOD],[AD],[YAŞ] from [Sayfa1$B3:E] where [KOD] Is Not Null" '

   
    Set con = New ADODB.Connection
    con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & txtDosyaAdres & ";extended properties=""excel 12.0;hdr=Yes;imex=1"""
   
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.CursorType = adOpenKeyset
    rs.LockType = adLockOptimistic
    rs.Open sSql, con

    Do While Not rs.EOF And Not rs.BOF 'Tablo güncelleme icin(Exceldeki recordseti icine alinan veriler icin döngü)
        If DCount("[kod]", "Tablo1", "[kod] = '" & rs(0) & "'") > 0 Then 'Eger Tablo1 deki kod sütununda excelden alinan recordset icindeki veri mevcutsa

          CurrentDb.Execute _
            "UPDATE Tablo1 SET [kod] = '" & rs(0) & "'," & _
                              "[ad] = '" & rs(1) & "'," & _
                              "[yas] = '" & rs(2) & "' WHERE [kod] = '" & rs(0) & "'"
           
            say = say + 1
           
        ElseIf DCount("[kod]", "Tablo1", "[kod] = '" & rs(0) & "'") = 0 Then 'Eger Tablo1 deki kod sütununda excelden alinan recordset icindeki veri mevcut degilse
           
            CurrentDb.Execute _
                        "INSERT INTO Tablo1" _
                          & " ([kod], [ad], [yas])" _
                          & " VALUES ( '" & rs(0) & "' , '" & rs(1) & "' , " & rs(2) & " );" 'Kayit ekle exceldekinde olup accesste mevcut olmayan veri

            say1 = say1 + 1
        End If

        rs.MoveNext
    Loop


  Form2.Requery
 
  MsgBox "Eklenen kayit sayisi=" & say1, vbInformation, "Bilgi"
  MsgBox "Düzeltilen kayit sayisi=" & say, vbInformation, "Bilgi"
 

    rs.Close
    con.Close
    Set rs = Nothing


End Sub
01/02/2020, 07:50

accessman

Tam da böyle bir şeye ihtiyacım vardı teşekkürler
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19