Skip to main content

AccessTr.neT


Excelden Veri Alma

Excelden Veri Alma

#10
Abey hem sadece güncelle hem sadece veri al excelden ve her ikisini beraber yaptım.
Örnek dosya sütun sayısı fazla 4 sütunluk olsaydı daha iyi olurdu Img-grin

Kodlar zaten sizin.

[Resim: xcitzxbf.gif]

Option Compare Database
  Dim varFile As Variant
  Dim yahya As String
  Dim fDialog As Office.FileDialog
  Dim SayRS As New ADODB.Recordset
Dim SaySql As String


Private Sub ExcelAl1_Click()
 
Dim Guncelle As String, al As String
    Guncelle = " UPDATE TmpTablo INNER JOIN tesisler ON TmpTablo.KOD = tesisler.kod  " & _
              " SET " & _
              " tesisler.kaynak = [TmpTablo]![Kaynak],  " & _
              " tesisler.Tarih = [TmpTablo]![Tarih],  " & _
              " tesisler.tesis = [TmpTablo]![Tesis],  " & _
              " tesisler.bolum = [TmpTablo]![Yer/Bölüm],  " & _
              " tesisler.tespit_eden = [TmpTablo]![Tespit Yapan],  " & _
              " tesisler.gozlem = [TmpTablo]![Uygunsuzluk/Ramak Kala/Gözlem],  " & _
              " tesisler.oneriler = [TmpTablo]![Önerilen Aksiyon],  " & _
              " tesisler.sorumlu = [TmpTablo]![sorumlu],  " & _
              " tesisler.termin_tarihi = [TmpTablo]![Termin tarihi],  " & _
              " tesisler.sorumlu_gorusu = [TmpTablo]![Sorumlu Görüşü/Kararı],  " & _
              " tesisler.tamamlama_tarihi = [TmpTablo]![Tamamlama Tarihi],  " & _
              " tesisler.durum = [TmpTablo]![Durum] " & _
              " WHERE (((TmpTablo.KOD) In (SELECT tesisler.kod " & _
              " FROM TmpTablo INNER JOIN tesisler ON TmpTablo.KOD = tesisler.kod " & _
              " WHERE ((nz([tesisler]![kaynak] & [tesisler]![tarih] & [tesisler]![tesis] & [tesisler]![bolum] &  " & _
              " [tesisler]![tespit_eden] & [tesisler]![gozlem] & [tesisler]![oneriler] & [tesisler]![sorumlu] &  " & _
              " [tesisler]![termin_tarihi] & [tesisler]![sorumlu_gorusu] & [tesisler]![tamamlama_tarihi] &  " & _
              " [tesisler]![durum],"")<> " & _
              " nz([TmpTablo]![Kaynak] & [TmpTablo]![Tarih] & [TmpTablo]![Tesis] & [TmpTablo]![Yer/Bölüm] &  " & _
              " [TmpTablo]![Tespit Yapan] & [TmpTablo]![Uygunsuzluk/Ramak Kala/Gözlem] &  " & _
              " [TmpTablo]![Önerilen Aksiyon] & [TmpTablo]![Sorumlu] & [TmpTablo]![Termin Tarihi] &  " & _
              " [TmpTablo]![Sorumlu Görüşü/Kararı] & [TmpTablo]![Tamamlama Tarihi] & [TmpTablo]![Durum],""))) )));"
             
    al = " INSERT INTO tesisler ( kod, kaynak, tarih, tesis, bolum, Tespit_eden, gozlem, oneriler, sorumlu, termin_tarihi, sorumlu_gorusu, tamamlama_tarihi, durum )" & _
          " SELECT TmpTablo.KOD, TmpTablo.Kaynak, TmpTablo.Tarih, TmpTablo.Tesis, TmpTablo.[Yer/Bölüm], TmpTablo.[Tespit Yapan], TmpTablo.[Uygunsuzluk/Ramak Kala/Gözlem], TmpTablo.[Önerilen Aksiyon], TmpTablo.sorumlu, TmpTablo.[Termin tarihi], TmpTablo.[Sorumlu Görüşü/Kararı], TmpTablo.[Tamamlama Tarihi], TmpTablo.Durum" & _
          " FROM tesisler RIGHT JOIN TmpTablo ON tesisler.kod = TmpTablo.KOD" & _
          " WHERE (((TmpTablo.KOD) Is Not Null) AND ((tesisler.kod) Is Null))"
             
             
   
    Call AlVeGuncelle(Guncelle, al, 3)


End Sub

Private Sub ExcelSadeceAl_Click()

Dim SadeceEkle As String

     CurrentDb.Execute "Delete * from tesisler"
     SadeceEkle = " INSERT INTO tesisler ( kod, kaynak, tarih, tesis, bolum, Tespit_eden, gozlem, oneriler, sorumlu, termin_tarihi, sorumlu_gorusu, tamamlama_tarihi, durum )" & _
          " SELECT TmpTablo.KOD, TmpTablo.Kaynak, TmpTablo.Tarih, TmpTablo.Tesis, TmpTablo.[Yer/Bölüm], TmpTablo.[Tespit Yapan], TmpTablo.[Uygunsuzluk/Ramak Kala/Gözlem], TmpTablo.[Önerilen Aksiyon], TmpTablo.sorumlu, TmpTablo.[Termin tarihi], TmpTablo.[Sorumlu Görüşü/Kararı], TmpTablo.[Tamamlama Tarihi], TmpTablo.Durum" & _
          " FROM tesisler RIGHT JOIN TmpTablo ON tesisler.kod = TmpTablo.KOD" & _
          " WHERE (((TmpTablo.KOD) Is Not Null) AND ((tesisler.kod) Is Null))"
   
    Call AlVeGuncelle(SadeceEkle, "", 1)

End Sub

Private Sub ExcelSadeceGuncelle_Click()

    Dim SadeceGuncelle As String
    SadeceGuncelle = " UPDATE TmpTablo INNER JOIN tesisler ON TmpTablo.KOD = tesisler.kod  " & _
              " SET " & _
              " tesisler.kaynak = [TmpTablo]![Kaynak],  " & _
              " tesisler.Tarih = [TmpTablo]![Tarih],  " & _
              " tesisler.tesis = [TmpTablo]![Tesis],  " & _
              " tesisler.bolum = [TmpTablo]![Yer/Bölüm],  " & _
              " tesisler.tespit_eden = [TmpTablo]![Tespit Yapan],  " & _
              " tesisler.gozlem = [TmpTablo]![Uygunsuzluk/Ramak Kala/Gözlem],  " & _
              " tesisler.oneriler = [TmpTablo]![Önerilen Aksiyon],  " & _
              " tesisler.sorumlu = [TmpTablo]![sorumlu],  " & _
              " tesisler.termin_tarihi = [TmpTablo]![Termin tarihi],  " & _
              " tesisler.sorumlu_gorusu = [TmpTablo]![Sorumlu Görüşü/Kararı],  " & _
              " tesisler.tamamlama_tarihi = [TmpTablo]![Tamamlama Tarihi],  " & _
              " tesisler.durum = [TmpTablo]![Durum] " & _
              " WHERE (((TmpTablo.KOD) In (SELECT tesisler.kod " & _
              " FROM TmpTablo INNER JOIN tesisler ON TmpTablo.KOD = tesisler.kod " & _
              " WHERE ((nz([tesisler]![kaynak] & [tesisler]![tarih] & [tesisler]![tesis] & [tesisler]![bolum] &  " & _
              " [tesisler]![tespit_eden] & [tesisler]![gozlem] & [tesisler]![oneriler] & [tesisler]![sorumlu] &  " & _
              " [tesisler]![termin_tarihi] & [tesisler]![sorumlu_gorusu] & [tesisler]![tamamlama_tarihi] &  " & _
              " [tesisler]![durum],"")<> " & _
              " nz([TmpTablo]![Kaynak] & [TmpTablo]![Tarih] & [TmpTablo]![Tesis] & [TmpTablo]![Yer/Bölüm] &  " & _
              " [TmpTablo]![Tespit Yapan] & [TmpTablo]![Uygunsuzluk/Ramak Kala/Gözlem] &  " & _
              " [TmpTablo]![Önerilen Aksiyon] & [TmpTablo]![Sorumlu] & [TmpTablo]![Termin Tarihi] &  " & _
              " [TmpTablo]![Sorumlu Görüşü/Kararı] & [TmpTablo]![Tamamlama Tarihi] & [TmpTablo]![Durum],""))) )));"
   
     Call AlVeGuncelle(SadeceGuncelle, "", 2)

End Sub

Sub AlVeGuncelle(sqlll As String, sql2 As String, kac As Byte)

'Dosya ac -------------------------------------------------------------------------------------------------------
    Set fDialog = Application.FileDialog(msoFileDialogFilePicker)

  With fDialog
      .AllowMultiSelect = False
        .Title = "Lütfen Aktaraca?ynyz Bilgilerin Bulundu?u Excel Dosyasyny Seçin"
        .InitialFileName = CurrentProject.Path
        .Filters.Clear
        .Filters.Add "All Files", "*.*"
        .Filters.Add "Excel 2003", "*.xls"
        .Filters.Add "Excel 2007", "*.xlsx"


          If .Show = True Then
            For Each varFile In .SelectedItems
                yahya = varFile
            Next
        End If
    End With

    If yahya = "" Or IsNull(yahya) Then
        MsgBox "Dosya secilmedigi icin iptal edildi...", vbCritical, "iptal"
        Set fDialog = Nothing
        Exit Sub
    End If
       
  'Dosya ac sonu -------------------------------------------------------------------------------------------------------

BasZmn = Now
'hy_Geçici_tablo_var_mı_varsa_sil_____
   If Not IsNull(DLookup("Name", "MSysObjects", "Name='TmpTablo'")) Then DoCmd.DeleteObject acTable, "TmpTablo"
'hy_tablo_kontrol____________________Bitti
TestBil = ""

DoCmd.TransferSpreadsheet TransferType:=acLink, _
                          TableName:="TmpTablo", _
                          SpreadsheetType:=10, _
                          FileName:=yahya, _
                          HasfieldNames:=True, _
                          Range:="Sayfa1$B2:N" '"Hy bin 2!B3:E"

'hy Tablo Boş Mu_____________

SaySql = "select * from TmpTablo"

    SayRS.Open SaySql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    KytSay = SayRS(0)
     Krt = " where [" & SayRS(0).Name & "] Is Not Null"
    SayRS.Close
    SayRS.Open SaySql & Krt, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    If SayRS.RecordCount = 0 Then
        DoCmd.DeleteObject acTable, "TmpTablo"
        MsgBox "Tabloda veri yok"
        Exit Sub
    End If
    SayRS.Close

'hy Excel Boş Mu_____________Bitti
SaySql = " SELECT Count([TmpTablo]![KOD]) AS GnclSay " & _
         " FROM TmpTablo INNER JOIN tesisler ON TmpTablo.KOD = tesisler.kod " & _
         " WHERE ((([tesisler]![kaynak] & [tesisler]![tarih] & [tesisler]![tesis] & [tesisler]![bolum] &  " & _
         " [tesisler]![tespit_eden] & [tesisler]![gozlem] & [tesisler]![oneriler] & [tesisler]![sorumlu] &  " & _
         " [tesisler]![termin_tarihi] & [tesisler]![sorumlu_gorusu] & [tesisler]![tamamlama_tarihi] &  " & _
         " [tesisler]![durum])<>([TmpTablo]![Kaynak] & [TmpTablo]![Tarih] & [TmpTablo]![Tesis] &  " & _
         " [TmpTablo]![Yer/Bölüm] & [TmpTablo]![Tespit Yapan] & [TmpTablo]![Uygunsuzluk/Ramak Kala/Gözlem] &  " & _
         " [TmpTablo]![Önerilen Aksiyon] & [TmpTablo]![Sorumlu] & [TmpTablo]![Termin Tarihi] &  " & _
         " [TmpTablo]![Sorumlu Görüşü/Kararı] & [TmpTablo]![Tamamlama Tarihi] & [TmpTablo]![Durum])));"


    SayRS.Open SaySql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    GuncellenecekKyt = SayRS(0)
    SayRS.Close




    If kac = 1 Then
        CurrentDb.Execute "Delete * from tesisler"
        CurrentDb.Execute sqlll
    ElseIf kac = 2 Then
        CurrentDb.Execute sqlll
    ElseIf kac = 3 Then
        CurrentDb.Execute sqlll
        CurrentDb.Execute sql2
    End If



SaySql = " SELECT Count(TmpTablo.KOD) AS SayKOD " & _
         " FROM tesisler RIGHT JOIN TmpTablo ON tesisler.kod = TmpTablo.KOD " & _
         " GROUP BY tesisler.kod " & _
         " HAVING (((Count(TmpTablo.KOD)) Is Not Null) AND ((tesisler.kod) Is Null))"
    SayRS.Open SaySql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    EklenecekKyt = SayRS(0)
    SayRS.Close


Me.tesisler.Requery
    CurrentDb.TableDefs.Refresh
    DoCmd.DeleteObject acTable, "TmpTablo"
BitZmn = Now


TSaniye = DateDiff("s", BasZmn, BitZmn)

LngSn = TSaniye Mod 60
LngDk = (TSaniye \ 60) Mod 60
LngSt = (TSaniye \ 3600) Mod 60

Me.TestBil = "Yöntem : 4 " & vbCrLf & _
             "Transfer bitti       " & vbCrLf & _
             "Güncellenen Kayıt Sayısı : " & GuncellenecekKyt & vbCrLf & _
             "Eklenen  Kayıt Sayısı : " & EklenecekKyt & vbCrLf & _
             "Toplam Kayıt Sayısı : " & DCount("*", "tesisler") & vbCrLf & _
             "Başlama Zamanı : " & Format(BasZmn, "hh:nn:ss") & vbCrLf & _
             "Bitiş   Zamanı : " & Format(BitZmn, "hh:nn:ss") & vbCrLf & _
             "Geçen Süre     : " & LngSt & ":" & _
                 LngDk & ":" & _
                 LngSn & " ( " & TSaniye & "sn )"
MsgBox "bitti"
End Sub
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Excelden Veri Alma - Yazar: berduş - 07/02/2020, 17:48
Cvp: Excelden Veri Alma - Yazar: ozanakkaya - 07/02/2020, 18:13
Cvp: Excelden Veri Alma - Yazar: feraz - 07/02/2020, 21:10
Cvp: Excelden Veri Alma - Yazar: berduş - 07/02/2020, 21:57
Cvp: Excelden Veri Alma - Yazar: feraz - 07/02/2020, 22:06
Cvp: Excelden Veri Alma - Yazar: feraz - 07/02/2020, 22:28
Cvp: Excelden Veri Alma - Yazar: berduş - 08/02/2020, 00:41
Cvp: Excelden Veri Alma - Yazar: feraz - 08/02/2020, 11:11
Cvp: Excelden Veri Alma - Yazar: berduş - 08/02/2020, 11:24
Cvp: Excelden Veri Alma - Yazar: feraz - 08/02/2020, 13:54
Cvp: Excelden Veri Alma - Yazar: berduş - 08/02/2020, 14:04
Cvp: Excelden Veri Alma - Yazar: feraz - 08/02/2020, 14:12
Cvp: Excelden Veri Alma - Yazar: berduş - 08/02/2020, 14:21
Cvp: Excelden Veri Alma - Yazar: berduş - 08/02/2020, 16:02
Cvp: Excelden Veri Alma - Yazar: feraz - 08/02/2020, 16:11
Cvp: Excelden Veri Alma - Yazar: berduş - 08/02/2020, 16:15
Cvp: Excelden Veri Alma - Yazar: berduş - 08/02/2020, 17:19
Cvp: Excelden Veri Alma - Yazar: feraz - 08/02/2020, 19:37
Cvp: Excelden Veri Alma - Yazar: feraz - 08/02/2020, 20:43
Cvp: Excelden Veri Alma - Yazar: feraz - 17/02/2020, 20:04
Cvp: Excelden Veri Alma - Yazar: berduş - 08/02/2020, 20:51
Cvp: Excelden Veri Alma - Yazar: feraz - 08/02/2020, 20:58
Cvp: Excelden Veri Alma - Yazar: feraz - 08/02/2020, 23:12
Cvp: Excelden Veri Alma - Yazar: berduş - 08/02/2020, 23:35
Cvp: Excelden Veri Alma - Yazar: feraz - 08/02/2020, 23:37
Cvp: Excelden Veri Alma - Yazar: feraz - 08/02/2020, 23:49
Cvp: Excelden Veri Alma - Yazar: berduş - 08/02/2020, 23:58
Cvp: Excelden Veri Alma - Yazar: feraz - 09/02/2020, 00:11
Cvp: Excelden Veri Alma - Yazar: berduş - 09/02/2020, 00:19
Cvp: Excelden Veri Alma - Yazar: feraz - 09/02/2020, 00:22
Cvp: Excelden Veri Alma - Yazar: berduş - 09/02/2020, 00:27
Cvp: Excelden Veri Alma - Yazar: feraz - 09/02/2020, 00:34
Cvp: Excelden Veri Alma - Yazar: feraz - 09/02/2020, 00:53
Cvp: Excelden Veri Alma - Yazar: berduş - 09/02/2020, 00:59
Cvp: Excelden Veri Alma - Yazar: feraz - 09/02/2020, 01:02
Cvp: Excelden Veri Alma - Yazar: feraz - 09/02/2020, 01:33
Cvp: Excelden Veri Alma - Yazar: accessman - 16/02/2020, 06:54
Cvp: Excelden Veri Alma - Yazar: accessman - 16/02/2020, 08:19
Cvp: Excelden Veri Alma - Yazar: feraz - 16/02/2020, 12:37
Cvp: Excelden Veri Alma - Yazar: accessman - 16/02/2020, 13:19
Cvp: Excelden Veri Alma - Yazar: feraz - 16/02/2020, 13:34
Cvp: Excelden Veri Alma - Yazar: feraz - 17/02/2020, 20:05
Cvp: Excelden Veri Alma - Yazar: berduş - 18/02/2020, 12:37
RE: Excelden Veri Alma - Yazar: mgunes - 19/12/2022, 09:34
RE: Excelden Veri Alma - Yazar: berduş - 19/12/2022, 09:49
Re: Excelden Veri Alma - Yazar: mgunes - 19/12/2022, 09:58
RE: Excelden Veri Alma - Yazar: berduş - 19/12/2022, 11:04
Re: Excelden Veri Alma - Yazar: mgunes - 19/12/2022, 11:14
RE: Excelden Veri Alma - Yazar: berduş - 19/12/2022, 11:20
Task