2016-04-12 20 views
0

MySQL ve Visual Basic 6 kullanan veritabanımdan seçilen kaydı silmek çalışıyorum ama onun içinde hiç hata çalışmıyor bile çalışmıyor. İşte bağlantı için benim kod ve aynı zamanda düğme için KullanıcıGrubu sayısal olduğundan MySQL DELETE kayıt çalışmıyor vb

Public rs As New ADODB.Recordset 
Public cn As New ADODB.Connection 
Public sql As String 
Dim dbpath As String 

Sub main() 
Set rs = New ADODB.Recordset 
Set cn = New ADODB.Connection 

With rs 
.CursorLocation = adUseClient 
.CursorType = adOpenDynamic 
.LockType = adLockOptimistic 
End With 

dbpath = "DSN=RetailPOS;" 

On Error GoTo errhandler 
With cn 
    .Open dbpath 
    '.CursorLocation = adUseClient 
    MDIMAIN.Show 
End With 
'cn.Open dbpath 
    Exit Sub 

errhandler: 
    MsgBox "Error Number: " & Err.Number & vbCrLf & "Description: " & Err.Description, _ 
    vbCritical 
End Sub 

düğme tıklama kodu

Private Sub RmvBtn_Click() 
    If rs.State = 1 Then rs.Close 
    sql = "DELETE FROM tbluserinfo WHERE UserGroup = '" & Txt(3).Text & "'" 
    cn.Execute (sql) 
    MsgBox "The selected user was successfully deleted!", vbInformation + vbOKOnly, ShowProductLabel 
End Sub 
+0

UserGroup hangi veri türüdür? Txt (3) 'in değeri nedir? Test ederken mi? UserGroup sayısal ise, bu değerin etrafında tek tırnaklara gerek yoktur. UserGroup metinse, Txt (3) .Text öğesinin, sorgunun değeri bulamaması için neden olan herhangi bir beyaz alan olmadığı konusunda emin misiniz? Ayrıca, UserGroup metinse, büyük/küçük harfe duyarlı bir harmanlama kullanıyor musunuz? – Marc

+0

UserGroup sayısal yani ** int (5) ** –

cevap

0

sen de Txt geçerli kılacak

sql = "DELETE FROM tbluserinfo WHERE UserGroup = " & Txt(3).Text 

kullanmalıdır tıklayın (3) Sorguyu çağırmadan önce. Boşsa, o zaman bir hata atacak olan aşağıdaki sorgu ile bitecektir.

DELETE FROM tbluserinfo WHERE UserGroup = 

Ayrıca, Txt (3) .ext'in sayısal olduğundan emin olmak için işaretlemelisiniz. IsNumeric() 'in içine Trim() eklenmesi, sayısal olmayacağı için boş bir dize yakalayacaktır.

If Not IsNumeric(Trim(Txt(3).Text)) Then 
    'Tell the user and don't run the query 
End If 
+0

Çözüldü tesekkurler –