Excel vba If Then Else yapamadım ?

Katılım
1 Haziran 2006
Mesajlar
16
Merhaba ,
Excelde bir çalışmam var
Burdaki Textbox'ta veya bir hücredeki değerleri Sql datama giriş yapmak istiyorum,
aşağıdaki koda End If without block If hatası alıyorum.
nasıl düzeltebilirim
Değerli Yardımlarınızı Bekliyorum.
Teşekkürler.

Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strConn As String, strSQL As String
Dim lngRc As Long

strConn = "PROVIDER=SQLOLEDB;"
strConn = strConn & "DATA SOURCE=.;INITIAL CATALOG=DATA;"
strConn = strConn & " User ID=sa;"
strConn = strConn & " Password=1234;"
strConn = strConn & " INTEGRATED SECURITY=sspi;"
cnt.ConnectionString = strConn

If strSQL = "SELECT * from Tablo Where No = '" & TextBox3.Text & "' Then MsgBox "HATAver" Else strSQL = "insert into Tablo (No,Musteri,Urun,ST,Tutar) values('" & TextBox3.Text & "' , '" & TextBox1.Text & "' , '1' , '1' , '1')"
End If

'connection'u aç
cnt.Open


rst.Open strSQL, cnt, 1, 4




Set rst = Nothing
Set cnt = Nothing


End Sub

Private Sub CommandButton3_Click()
kayit
End Sub
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
then'den önce çift tırnak " olmalıydı.
Kod:
If strSQL = "SELECT * from Tablo Where No = '" & TextBox3.Text & "'" Then
    MsgBox "HATAver"
Else
    strSQL = "insert into Tablo (No,Musteri,Urun,ST,Tutar) values('" & TextBox3.Text & "' , '" & TextBox1.Text & "' , '1' , '1' , '1')"
End If
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
kodların bir kısmının buraya kopyalanmadığını var sayıyorum elbette.
 
Katılım
1 Haziran 2006
Mesajlar
16
Olmadı ,

Data kayıt tamam ama mükrerrer kayıtta msgbox hata vermiyor.

İstediğim aynı koddan kayıt yapmasını engellemek.

Değerli yardımlarınızı bekliyorum,

teşekkürler
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
Olmadı ,
Data kayıt tamam ama mükrerrer kayıtta msgbox hata vermiyor.
İstediğim aynı koddan kayıt yapmasını engellemek.
bu ilk defa gündeme geliyor. ilk mesajda yer alması,ihtiyacın tam olarak tarif edilmesi gerekirdi.

mükerrer kaydın bu şekilde engellenebileceği de kafama yatmadı.


karanlık suda kulaç atmak gibi. üyenin kafasından geçenleri tahmin etmek mümkün değil.
konuya son mesajım olarak tahminimi yazayım.

Kod:
If strSQL = "SELECT * from Tablo Where No = '" & TextBox3.Text & "'" Then
    MsgBox "HATAver"
    Exit Sub
Else
    strSQL = "insert into Tablo (No,Musteri,Urun,ST,Tutar) values('" & TextBox3.Text & "' , '" & TextBox1.Text & "' , '1' , '1' , '1')"
End If
 
Katılım
1 Haziran 2006
Mesajlar
16
Aslında Yapmak İstediğim

Excel sayfamın üzerinde bulunan textbox ve ya her hangi bir hücredeki değerleri SQL tabloma kayıt ettirmek ve
Ayını kaydı tekrar mükerrer girişinde mesaj vermesini istiyorum.

Teşekkürler.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
5 no.lu mesajdan onu anlıyoruz.

strSQL As String xl'e strSQL'in bir metin olduğunu bildiriyor.
herhangi bir değer atanmadığı için strSQL = "" şu anda. dolayısı ile
Kod:
If strSQL = "SELECT * from Tablo Where No = '" & TextBox3.Text & "'" Then
mantık ifadesi YANLIŞ/FALSE değerini döndürecek ve kod ELSE ile başlayan ifadeyi DOĞRU/TRUE olarak dikkate alacaktır. yani bu yapıda
Kod:
    strSQL = "insert into Tablo (No,Musteri,Urun,ST,Tutar) values('" & TextBox3.Text & "' , '" & TextBox1.Text & "' , '1' , '1' , '1')"
geçerli olacaktır.

bu nedenle kodların tamamının kopyalanmadığı yorumunu yaptım.


dosyayı yüklerseniz bir kez daha bakabilirim.
veya daha bilgili bir arkadaşımız belki yardımcı olabilir.
 
Üst