ListBox üzerinden TextBox lara hata

Katılım
6 Mart 2006
Mesajlar
251
Arkadaşlar merhaba,

ListBox üzerinde bilgileri TextBox lara almak için aşağıdaki kodu kullanıyorum.Fakat hata veriyor.

Acaba nerde yanlış yapıyorum?


Private Sub ListBox1_Click()
Dim ith, tdr, mlz, urn, srn, rnk As String
Dim r As Integer

r = ListBox1.ListIndex

ith = ListBox1.List(r, 0) ' ithalat_no
tdr = ListBox1.List(r, 1) ' tedarikci
mlz = ListBox1.List(r, 2) ' malzeme_cinsi
urn = ListBox1.List(r, 3) ' urun_adi
srn = ListBox1.List(r, 4) ' sira_no
rnk = ListBox1.List(r, 4) ' renk

Set RS = CreateObject("ADODB.recordset")

strSQL = "SELECT * FROM [MyTable]Where (ithalat_no='" & ith & "' and tedarikci='" & tdr & "' and malzeme_cinsi='" & mlz & "' and urun_adi='" & urn & "'and sira_no='" & srn & "'and renk='" & rnk & "')"

RS.Open strSQL, adoCN, 1, 3
TextBox1 = RS("ithalat_no")
TextBox2 = RS("tedarikci")
TextBox3 = RS("malzeme_cinsi")
TextBox9 = RS("urun_adi")
TextBox14 = RS("sira_no")
TextBox16 = RS("renk")

CommandButton5.Enabled = True
CommandButton3.Enabled = True
Set RS = Nothing
End Sub
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
adoCN'i nerede tanımladınız?

Global/Public bir sabit veya değişkense, bu prosedürün dışında bir yerde tanımlanmış mı?

Eğer yerel bir değişkense; hata vermesi gayet normal, çünkü prosedürün içinde hiçbir yerde tanımlanmamış.

adoCN, sizin bağlantı protokolünüzdür. Eğer veritabanı ile bir bağlantı protokolü oluşturmazsanız, SQL stringini (sorgusunu) çalıştırıp bir recordset açamazsınız... Hata verir.
 
Katılım
6 Mart 2006
Mesajlar
251
adoCN tanımları

Private Sub UserForm_Initialize()
On Error Resume Next
Set adoCN = CreateObject("ADODB.Connection")
DatabasePath = "C:\a\TestDB.mdb"
If Dir(DatabasePath) = "" Then
MsgBox DatabasePath & " bulunamadı, programdan çıkılacak !", vbCritical, "DB"
Unload Me
Exit Sub
End If
adoCN.Provider = "Microsoft.Jet.OLEDB.4.0"
adoCN.ConnectionString = DatabasePath
adoCN.Open
RefreshDB
CommandButton5.Enabled = False
CommandButton3.Enabled = False
End Sub
 
Katılım
6 Mart 2006
Mesajlar
251
"Öğe,istenilen ad veya sıra sayısı ile ilişkili derleme içinde bulunamıyor."

gelen hata bu.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Syntax hatası olacağını tahmin etmiyorum ama strSql sorgu stringini aşağıdaki gibi değiştirin.

Kod:
strSQL = "SELECT " & _
                        "* " & _
         "FROM " & _
                        "[MyTable] " & _
         "WHERE " & _
                        "ithalat_no='" & ith & "' AND " & _
                        "tedarikci='" & tdr & "' AND " & _
                        "malzeme_cinsi='" & mlz & "' AND " & _
                        "urun_adi='" & urn & "'AND " & _
                        "sira_no='" & srn & "'AND " & _
                        "renk='" & rnk & "'"
Aldığınız hata mesajı, sorgu içerisinde koşul olarak gönderdiğiniz bir alanın tabloda bulunmamasından kaynaklanıyor olabilir. Bu durum, hatalı alan adı yazımından da kaynaklanabilir. WHERE'de belirtilen alan adlarının doğru yazıldığından emin olun.

Diğer yandan, Excel sheetini adının "MYTABLE" olup olmadığını da kontrol edin derim.

Ayrıca, belirttiğiniz alanların yapısı gereği, nümeric ve diğer tipteki alanların sorguda belirtiliş tarzları da farklılık gösterir.

Kullandığınız "'" (tek tırnak) işareti, metin ve tarih formatlı alanların sorgulanmasında kullanılır. Sayısal bir alana, tek tırnak içinde sorgu gönderirseniz, hata alabilirsiniz. Nümeric alanlarda, tek tırnak işareti kullanmanıza gerek yoktur. Bu durumu da kontrol ediniz.
 
Üst