我想保存很多Checkbox的值在数据库中已备以后查询,如何设计数据库比较好啊!我想到的办法是每个Checkbox为一个字段,但是感觉太笨了!高人赐教

解决方案 »

  1.   

    Checkbox实在很多的话可以考虑用字符串
      

  2.   

    用字符串和数据库里用 check都不是太灵活因为你的check的数量有可能会变化,不是定长的字符可以解决的,这样对应值就是变化了最好做一个记录表,如做一个操作权限的管理表1(操作员表)
    1, aaaa 表2(权限列表)
    1 ,管理员
    2 ,收银员
    3 ,登记员表3(操作员权限表)
    1,2
    1,3这样,说明操作员aaa只有收银和登记的权限,当以后权限增加后,可以随时对操作的权限增加和修改
      

  3.   

    用一个字符串字段,Checkbox有三个值,0,1,2
    字符串的第一个字符存第一个Checkbox的值("0"或"1"或"2"),第二个字符存第二个Checkbox的值("0"或"1"或"2"),,.........
    查询的时候再把各个分开.
      

  4.   

    设计三个字段:
    id      整型
    value   整型
    caption 字符 这个字段不是必需的,仅仅是为了手工查看数据库的时候方便Dim cn As New ADODB.Connection
    Dim rs As New ADODB.RecordsetPrivate Sub Form_Load()
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\学习\test.mdb;Persist Security Info=False"
        cn.Open
        rs.Open "表1", cn, adOpenForwardOnly, adLockReadOnly, adCmdTable
        Do While Not rs.EOF
            Me.Controls(rs.Fields("id")).Value = rs.Fields("value")
            rs.MoveNext
        Loop
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        Dim i As Long
        Dim SQL As String
        SQL = "DELETE FROM 表1"
        cn.Execute SQL
        For i = 0 To Me.Controls.Count - 1
            If TypeOf Me.Controls(i) Is CheckBox Then
                SQL = "insert into 表1 values(" & CStr(i) & "," & CStr(Me.Controls(i).Value) & ",'" & Me.Controls(i).Caption & "')"
                cn.Execute SQL
            End If
        Next
        cn.Close
    End Sub
      

  5.   

    这个可以在窗口退出的时候保存所有checkbox的状态
    窗体重新加载的时候,再从数据库里面恢复
    再提供一个思路
    可能跟楼主的要求不是很符合