Next Without For hatası

Katılım
30 Mart 2023
Mesajlar
3
Excel Vers. ve Dili
2016
Merhaba arkadaşlar, alttaki örnek gibi bir butona bağlı bir işlev yapmak istiyorum. Ancak next without hatası veriyor.
Aslında benim yapmak istediğim şu; Bu örnek ile Excel'den SQL'deki bazı alanlardaki verileri toplu değiştirmek istiyorum.
Bir tablom var; ürünlerin satış fiyatı, 1.özel kod, 2.özel kod vs. gibi aşağıdaki yaptığım örnekte EĞER R2 HÜCRESİNDEKİ VERİ (SATISFIYAT) YAZIYORSA SADECE SATIŞ FİYAT HÜCRESİNDEKİ VERİLER DEĞİŞSİN, DİĞER 1.ÖZEL KOD, 2.ÖZEL KOD'DA Kİ ALANLAR AYNI KALSIN İSTİYORUM. Evet yapmak istediğim bu belki örnek hatalıdır.
Yardımcı olabilirseniz sevinirim. Bu arada Altın üyeliğim olmadığı için dosya ekleyip/indiremiyorum. Şimdi den anlayışınız için teşekkür ederim. İyi çalışmalar,

Private Sub CommandButton1_Click()
Dim answer As Integer
Set con = CreateObject("adodb.connection")
Set rs = CreateObject("ADODB.Recordset")
con.Open "Provider=SQLOLEDB.1;Password=1234**;Persist Security Info=True;User ID=sa;Initial Catalog=GO3;Data Source=HP;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=HP;Use Encryption for Data=False;Tag with column collation when possible=False"
answer = MsgBox("Fiyatları değiştirmek istediğinize emin misiniz?", vbYesNo + vbQuestion, "Dikkat!!!")
If answer = vbYes Then

For i = 3 To Range("A13000").End(3).Row
If Range(R2).Value = "SATISFIYAT" Then
sorgu = "UPDATE LG_005_PRCLIST SET PRICE = '" & Cells(i, "B").Value & "' WHERE CARDREF = '" & Cells(i, "A").Value & "' "
Set rs = con.Execute(sorgu)

Next
con.Close: Set con = Nothing
MsgBox "Fiyat değişmiştir"
Range("G3", "G13000").Clear
Else
End If
End Sub
 
Son düzenleme:

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,604
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaşım,
Set rs = con.Execute(sorgu)
ifadenin bulunduğu satırdan sonraki satıra da End If yazınız
İyi çalışmalar
 
Katılım
30 Mart 2023
Mesajlar
3
Excel Vers. ve Dili
2016
Merhaba cevap için teşekkürler. end if ekledikten sonra da; Run time error '1004' hatası Aplication defined diye bir hata veriyor.
Birde arkadaşım bu kod çalışırsa sadece SATISFIYAT taki alanlar değişecek diğerleri değişmeyecek değil mi?
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,604
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Bilemiyorum, ornek koyarsaniz anlamak mumkun olabilir.
iyi calismalar
 
Katılım
30 Mart 2023
Mesajlar
3
Excel Vers. ve Dili
2016
Kodu düzelttim ve çalıştı. Ancak kodu biraz daha genişlettiğim zaman yani aşağıdaki gibi; R2 hücresinde OZELKOD1 seçili iken veri değiştireceğim zaman da SATISFIYAT taki veriyi de değiştiriyor. Bunun için ne yapılabiir. Teşekkürler. İyi çalışmalar,

For i = 3 To Range("A13000").End(3).Row
If Range("R2").Value = SATISFIYAT Then
sorgu1 = "UPDATE LG_005_PRCLIST SET PRICE = '" & Cells(i, "B").Value & "' WHERE CARDREF = '" & Cells(i, "A").Value & "' "
Set rs = con.Execute(sorgu1)

If Range("R2").Value = OZELKOD1 Then
sorgu2 = "UPDATE LG_005_ITEMS SET SPECODE = '" & Cells(i, "C").Value & "' WHERE LOGICALREF = '" & Cells(i, "A").Value & "' "
Set rs = con.Execute(sorgu2)
End If

Next
con.Close: Set con = Nothing
MsgBox "Fiyat değişmiştir"
Range("G3", "G13000").Clear
Else
End If
End Sub
 
Üst