vb+sql2000
数据库内容如下:
项目             功能
-------------------
S_11       0
S_12       1
S_13       1
S_14       0
S_15       0
S_16       0
S_17       0
B_11       0
B_12       1
B_13       1
B_14       1
--------------------
现在我想逐条数据进行对比
---------------------
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Driver={sql server};server=" & sServer & ";uid=sa;pwd=;database=" & logodata & ""
conn.ConnectionTimeout = 20
conn.Open
rs.Open "select * from [表1]", conn, adOpenStatic, adLockReadOnly, adCmdText
 While Rs.EOF = False
      Select Case Rs.Fields("项目")
        Case "s_11"
          MDI.S_11.Enabled = IIf(Rs.Fields("功能"), False, True)
        Case "s_12"
          MDI.S_12.Enabled = IIf(Rs.Fields("功能"), False, True)
        Case "s_13"
          MDI.S_13.Enabled = IIf(Rs.Fields("功能"), False, True)
         End Select
    Rs.MoveNext
Wend
 Rs.Close
 Set Rs = Nothing
-----------------------------
数据连接通过的。就是当case "s_11" 不起作用。我想它当case "s_11" 就是数据库里的 s_11.
请各位大侠帮忙

解决方案 »

  1.   

    你的比较运算中数据变量类型是一样的吗?不同类型怎么进行比较?
    IIF()中也是一样.
      

  2.   

    是一样的。
    当我使用Select Case Rs.Fields("项目") 
            Case Rs.Fields("功能") 
              MDI.S_11.Enabled = IIf(Rs.Fields("功能"), False, True) 
            Case Rs.Fields("功能") 
              MDI.S_12.Enabled = IIf(Rs.Fields("功能"), False, True) 
            Case Rs.Fields("功能")  
              MDI.S_13.Enabled = IIf(Rs.Fields("功能"), False, True) 
              End Select 
    时,第一条可以执行,第二条开始就不行了。
    其实我是使用逐条数据进行对比。也就是当我的“项目”中对应的“功能”等于0时就是MDI菜单中对应的菜单名称FALSE,如果等于1时就是TURE。