2012-11-10 17 views
0

因此,我已經得到了此代碼來遍歷表單中的每個控件,並根據它們的名稱和值,文本或標題創建和更新sql。爲vb6中的每個控件創建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 

之後,我添加了當然的條件,但現在並不重要。 問題是當它到達複選框時,sql的值將是「False」,我不知道爲什麼。 字符串的長度不應該是個問題,第一個複選框是第四個對象,所以字符串不會太長。此外,沒有複選框部分,它就像一個魅力。 那麼有人可以幫助我嗎?

在此先感謝。

+1

你有沒有考慮數據綁定? – MarkJ

+0

這也是一個好主意。 讓我們來看看......我有一個數據表與數據表中的一堆數據。當用戶按下F2時,它將顯示一個框架來編輯活動行的數據。 是否可以將控件設置爲使用所選行?據我所知,我只能設置數據源和數據字段。那麼我可以,如果我創建一個adodc對象,並修改它,每當用戶打開這個表單,我猜。 – Joe88

+0

只是一個次要的事情,我注意到這裏: 'SQL = SQL&ctr.name& 「=」 & 「 '」 &ctr.Text& 「',」' 您有一個額外的符號,並設置報價,你可以這樣寫: 'sql = sql&ctr.name&「='」&ctr.Text&「',」' –

回答

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 
相關問題