Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > Diğer Yazılımlar > SQL
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

SQL Yapısal sorgulama dili hakkında sorularınızı buraya sorabilirsiniz.

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 21-05-2016, 11:25   #1
sarigozoglu
Altın Üye
 
Giriş: 26/09/2014
Şehir: Manisa
Mesaj: 46
Excel Vers. ve Dili:
2013 tr 2010 tr 2007 tr 2003 tr
Varsayılan INSERT / UPDATE basit işlem.

Arkadaşlar çok basit bir insert / update için yardımınıza ihtiyacım var.
Baz alıp projelerime devam edeceğim, benim için bir nevi yol gösterici olacak.

Şimdiden çok teşekkür ederim.
Eklenmiş Resimler
Dosya Türü: jpg Ekran Alıntısı.JPG (77.2 KB, 8 Görüntülenme)
Eklenmiş Dosyalar
Dosya Türü: xlsx INSERT_UPDATE.xlsx (14.9 KB, 6 Görüntülenme)
sarigozoglu Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-05-2016, 13:45   #2
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,367
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Dosyaları dosya.tc ye yükler mi siniz?
bende insert update ler ile ufaktan ilgileniyorum
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-05-2016, 14:14   #3
sarigozoglu
Altın Üye
 
Giriş: 26/09/2014
Şehir: Manisa
Mesaj: 46
Excel Vers. ve Dili:
2013 tr 2010 tr 2007 tr 2003 tr
Varsayılan

http://s4.dosya.tc/server/taekt9/INS...DATE.xlsx.html

buraya yükledim.
sarigozoglu Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-05-2016, 14:31   #4
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,367
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

ID YIL AY SATIŞ
1 2015 1 100,00

Değişiklik olup olmaması konusunda referans ne olacak.
ID mi, YIL mı, Satış mı?
Aynı ID ancak YIL ,AY, SATIŞ farklı olduğunda yeni bir kayıt mı? Update mi?

ID dikkate alınacak mı? ID dikkate alınacak ise, en son ID den sonrakiler yeni kayıt diğerleri tümü update olacaktır.

Bunları yazdıktan sonra aşağıdaki kriterlere gerek yok sanırım.
Bunlar özel bir durum mu?

ŞAYET 2016 3. AYDAKİ SATIŞ İÇİN BU TABLODA DEĞİŞİKİLİK YAPTI İSEM, UPDATE EDECEK. 2016 5. VEYA 6.AY YENİ İÇİN KAYIT GİRDİYSEM BUNU DA YENİ SATIRA INSERT EDECEK
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-05-2016, 21:38   #5
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,367
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Dosyanız ektedir.

http://s2.dosya.tc/server/cluofi/INS...E_SQL.zip.html

Menu bölümünde SQL server ayarlarını yapınız.

Bilmeyenler için;
ADODB bağlantısının VBA da çalışması için VBA editörde tools da References de Microsoft Activex Data Objects en son sürümü seçiniz.

Program ilk satırdan itibaren yıl ve ayı alır. DB de kontrol eder.
Var ise satış ı update eder.
Yok ise yıl, ay, satış ı insert eder.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
'www.asriakdeniz.com - asriakdeniz@gmail.com  21.05.2016

Private CN As ADODB.Connection
Dim RS As ADODB.Recordset
Dim Field As ADODB.Field

Dim SQL As String
Dim Connected, hata As Boolean
Dim i, j, satis As Long
Dim yil, ay As Integer
Dim veri As String
Dim serverip, db, kullanici, sifre As String


Sub menu()
  serverip = "127.0.0.1"
  db = "TESTDB"
  kullanici = "sa"
  sifre = "123"
  hata = False
  
  Call karsilastir
  
  If hata Then
     MsgBox ("Server bağlantsı sağlanamadı.")
  Else
     MsgBox ("Insert ve Update işlemleri tamamlandı.")
  End If
  
End Sub

Sub karsilastir()
 Connected = Connect(serverip, db)
 If Connected Then
    Set RS = New ADODB.Recordset
 Else
    hata = True
    Exit Sub
 End If
  
 sonsatir = Cells(Rows.Count, "A").End(3).Row
 For j = 2 To sonsatir
     yil = Cells(j, 2).Value
     ay = Cells(j, 3).Value
     satis = Cells(j, 4).Value

     If yil = "" Then Exit For
     
     veri = "T.YIL=" & yil & " AND T.AY=" & ay
     SQL = "SELECT count(*) FROM TESTDB.DBO.TBLSATIS T WHERE " & veri
     Set RS = CN.Execute(SQL)
     
     If RS.Fields(0).Value <= 0 Then
        veri = yil & "," & ay & "," & satis
        SQL = "INSERT INTO TESTDB.DBO.TBLSATIS ([YIL],[AY],[SATIS]) VALUES(" & veri & ")"
        If RS.State = adStateOpen Then RS.Close
        RS.Open SQL, CN, adOpenStatic, adLockReadOnly, adCmdText
     Else
        veri = satis & " WHERE YIL=" & yil & " AND AY=" & ay
        SQL = "UPDATE TESTDB.DBO.TBLSATIS SET SATIS=" & veri
        Set RS = CN.Execute(SQL)
     End If
 Next
 
 Set RS = Nothing
 Call Disconnect
End Sub

Function Disconnect()
    CN.Close
End Function

Function Connect(Server, database) As Boolean
 
    Set CN = New ADODB.Connection
    On Error Resume Next
 
    With CN
         .ConnectionString = "Provider=SQLOLEDB.1;" & _
                             "Persist Security Info=False;" & _
                             "Initial Catalog=" & database & ";" & _
                             "Data Source=" & Server & ";" & _
                             "User ID=" & kullanici & ";Password=" & sifre & ";"
        .Open
    End With

    If CN.State = 0 Then
        Connect = False
    Else
        Connect = True
    End If
 
End Function
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-05-2016, 09:21   #6
sarigozoglu
Altın Üye
 
Giriş: 26/09/2014
Şehir: Manisa
Mesaj: 46
Excel Vers. ve Dili:
2013 tr 2010 tr 2007 tr 2003 tr
Varsayılan

Çok teşekkür ederim Sn. Asri.
Gayet başarılı ve tam istediğim gibi çalışıyor. Bunun üzerinden devam edeceğim.
Tekrar ellerinize sağlık
sarigozoglu Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-05-2016, 10:53   #7
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,367
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Alıntı:
sarigozoglu tarafından gönderildi Mesajı Görüntüle
Çok teşekkür ederim Sn. Asri.
Gayet başarılı ve tam istediğim gibi çalışıyor. Bunun üzerinden devam edeceğim.
Tekrar ellerinize sağlık
Teşekkür ederim.
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 23:08


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Özel Eğitim- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Palet- Çerkezköy Palet- Çorlu Prefabrik- Çorlu Sürücü Kursu- Çorlu Sandviç Panel- Şişli Avukat- Korona Test Kalemi- Çorlu Vinç- Çorlu Pimapen Tamiri-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden