为vb6中的每个控件创建sql更新

时间:2012-11-10 13:06:41

标签: sql vb6 foreach controls

所以我已经让这段代码循环遍历表单中的每个控件,并根据它们的名称和值,文本或标题创建和更新sql。

Dim sql as String
Dim ctr as Control

sql = "update table set "
For Each ctr In Me.Controls
    If TypeOf ctr Is TextBox Then
        If ctr.Container = "Carton Config data input" Then
            sql = sql & ctr.name & " = " & "'" & ctr.Text & "',"
        End If
    ElseIf TypeOf ctr Is OptionButton Then
        If ctr.Value = True Then
            sql = sql & " status = '" & ctr.Caption & "',"
        End If
    ElseIf TypeOf ctr Is CheckBox Then
        If ctr.Value = 1 Then
            sql = sql & ctr.name = "'OK',"
        ElseIf ctr.Value = 0 Then
            sql = sql & ctr.name = "'',"
        End If
    End If
Next

之后我添加了where where条件,但现在没关系。 问题是当它到达一个复选框时,sql的值将是“False”而我不知道为什么。 字符串的长度应该不是问题,第一个复选框使得这是第4个对象,因此字符串不会太长。此外,没有复选框部分,它就像一个魅力。 有人可以帮助我吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我发现了问题,所以我会为那些可能需要它的人解答。 这是一个简单的语法错误:

刚换成:

If ctr.Value = 1 Then
   sql = sql & ctr.name = "'OK',"
ElseIf ctr.Value = 0 Then
   sql = sql & ctr.name = "'',"
End If

使用:

If ctr.Value = 1 Then
    sql = sql & ctr.name & " = 'OK',"
ElseIf ctr.Value = 0 Then
    sql = sql & ctr.name & " = '',"
End If