0

したがって、このコードを使用して、フォーム内の各コントロールをループし、名前と値、テキスト、またはキャプションに基づいて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条件を追加しますが、今は関係ありません。問題は、チェックボックスに到達すると、SQLの値が「False」になり、その理由がわかりません。文字列の長さは問題ありません。これを作成する最初のチェックボックスは4番目のオブジェクトであるため、文字列は長すぎません。また、チェックボックス部分がないので、チャームのように機能します。だから誰かが私を助けることができますか?

前もって感謝します。

4

1 に答える 1

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
于 2012-11-10T13:34:49.553 に答える