Comboboxes visual basic 6

时间:2015-11-16 21:53:02

标签: sql-server vb6

我有多个组合框,用户可以选择项目。如果没有选择任何项,我将NULL插入SQL-SERVER:

if cboSchool.text="" then
g_strSQL = g_strSQL & "NULL,"
else
g_strSQL = g_strSQL & "'" & cboschool.itemdata(cboschool.listindex) & "',"
End if

我的问题如下:稍后我允许用户编辑他们以前没有选择的信息。所以稍后当他们想要编辑信息时,我需要能够让应用程序意识到某个值或者(SQLSERVER)中的表中没有值,如果它与值不同则进行比较被选中了。如果信息不同,则需要更新表格。这是我的代码寻找EDIT:

If g_RS!SchoolID <>cboSchool.ItemData(cboSchool.ListIndex)Then
    g_strSQL2 = g_strSQL2 & " School ID = '" & cboSchool.ItemData (cboSchool.ListIndex) & "',"
End If

我看到的问题是g_RS!SCHOOLID显示为&#34; NULL&#34;但是它确实注意到该值与cboschool.itemdata不同,它只是跳到if语句的末尾。我不明白它是如何看到差异的。

2 个答案:

答案 0 :(得分:0)

If Val("" & g_RS!SchoolID) <> cboSchool.ItemData(cboSchool.ListIndex) Then

答案 1 :(得分:0)

它是因为空值的,它没有看到差异。

你可以:

If g_RS!SchoolID <> "Hello world!" Then
    g_strSQL2 = "DROP TABLE X"
Else
    MsgBox ("g_RS!SchoolID = Hello world!")
End If

只要SchoolID为NULL,您就会收到一个消息框。

您可以通过以下方式解决此问题:

If Iif(IsNull(g_RS!SchoolID), "", g_RS!SchoolID) <> cboSchool.ItemData(cboSchool.ListIndex) Then
    'do stuff
End If