我现在正在做一个有关于权限方面的设置的界面,在资料的读取时均没有问题,代码如下:
Call mydovro <-------------这个是调用数据库
SQL = "SELECT * FROM duser Where name='" & ComboBox1 & "'"
RST.Open SQL, CNN, adOpenKeyset, adLockOptimistic
Call frmbw <-------------这个界面清空
CheckBox1.Value = CBool(RST.Fields("fchck"))
CheckBox2.Value = CBool(RST.Fields("DDGL"))
CheckBox3.Value = CBool(RST.Fields("YWGL"))
CheckBox8.Value = CBool(RST.Fields("bb1"))
CheckBox9.Value = CBool(RST.Fields("bb2"))
CheckBox7.Value = CBool(RST.Fields("CWYY"))
Set RST = Nothing
Set CNN = Nothing
问题是出在下面:
我想通过界面上的CheckBox的编辑,获得对权限的设置,代码如下:
Call mydovro
SQL = "Update duser set fchck='" & CBool(CheckBox1.Value) & "' where name='" & ComboBox1 & "'"
RST.Open SQL, CNN, adOpenKeyset, adLockOptimistic
MsgBox "权限设置成功!", vbOKOnly, "DOVRO"现在的问题有2个:
1、在点击编辑后也即上面的第二段代码,产生如下提示:
标准表达式中数据类型不匹配。在我的ACCESS数据库中字段的类型是数字整型!2、我一共有N个Checkbox,如果一直用set fchck='" & CBool(CheckBox1.Value),我不知道这代码有多长,象这个情况代码要怎么写呀?
Call mydovro <-------------这个是调用数据库
SQL = "SELECT * FROM duser Where name='" & ComboBox1 & "'"
RST.Open SQL, CNN, adOpenKeyset, adLockOptimistic
Call frmbw <-------------这个界面清空
CheckBox1.Value = CBool(RST.Fields("fchck"))
CheckBox2.Value = CBool(RST.Fields("DDGL"))
CheckBox3.Value = CBool(RST.Fields("YWGL"))
CheckBox8.Value = CBool(RST.Fields("bb1"))
CheckBox9.Value = CBool(RST.Fields("bb2"))
CheckBox7.Value = CBool(RST.Fields("CWYY"))
Set RST = Nothing
Set CNN = Nothing
问题是出在下面:
我想通过界面上的CheckBox的编辑,获得对权限的设置,代码如下:
Call mydovro
SQL = "Update duser set fchck='" & CBool(CheckBox1.Value) & "' where name='" & ComboBox1 & "'"
RST.Open SQL, CNN, adOpenKeyset, adLockOptimistic
MsgBox "权限设置成功!", vbOKOnly, "DOVRO"现在的问题有2个:
1、在点击编辑后也即上面的第二段代码,产生如下提示:
标准表达式中数据类型不匹配。在我的ACCESS数据库中字段的类型是数字整型!2、我一共有N个Checkbox,如果一直用set fchck='" & CBool(CheckBox1.Value),我不知道这代码有多长,象这个情况代码要怎么写呀?
这句我用这种方式也做过,也是不行!
SQL = "Update [duser] set [fchck]='" & CBool(CheckBox1.Value) & "' where [name]='" & ComboBox1 & "'"
还有,是什么数据库,sql server中是bit型,是认0和1的。与access中不同的。
CheckBox2.Value = CBool(RST.Fields("DDGL"))
CheckBox3.Value = CBool(RST.Fields("YWGL"))
CheckBox8.Value = CBool(RST.Fields("bb1"))
CheckBox9.Value = CBool(RST.Fields("bb2"))
CheckBox7.Value = CBool(RST.Fields("CWYY"))
全部是整型,要不我用BIT试试!
整型不能加单引号呀,改成:
fchck= " & CBool(CheckBox1.Value) & "
就行了。
SQL = "Update [duser] set [fchck]='" & CBool(CheckBox1.Value) & "' where [name]='" & ComboBox1 & "'"
我现在把括号去掉竟然也可以的,但是在修改密码时却一定要括号,不知道为什么?密码是用文本格式的,那儿可以查到这方面的资料?
比如:
sql = "fdasfsadf"
sql = sql & "89898989"
SQL = "Update [duser] set [fchck]='" & CBool(CheckBox1.Value) & "' where [name]='" & ComboBox1 & "'"
我现在把括号去掉竟然也可以的,但是在修改密码时却一定要括号,不知道为什么?密码是用文本格式的,那儿可以查到这方面的资料?
-------------------
你指的是什么括号呀。没明白。
SQL = "Update [duser] set [password]='" & TextBox1.Text & "' where [name]='" & userID & "'"2、如果要更新的资料很多,是不是可以这样写:SQL = "Update [duser] set fchck=" & CBool(CheckBox1.Value) & "
SQL=SQL &"set BB1=" & CBool(CheckBox2.Value) & "
SQL=SQL &"set BB2=" & CBool(CheckBox3.Value) & "
SQL=SQL & "where [name]='" & ComboBox1 & "'"
SQL = "Update duser set fchck=" & CheckBox1.Value & ""
SQL = SQL & "and set DDGL=" & CheckBox2.Value & " "
SQL = SQL & "and set YWGL=" & CheckBox3.Value & " "
SQL = SQL & "and set bb1=" & CheckBox8.Value & " "
SQL = SQL & "and set bb2L=" & CheckBox9.Value & " "
SQL = SQL & "and set CWYY=" & CheckBox7.Value & " "
SQL = SQL & "where name='" & ComboBox1 & "'"
RST.Open SQL, CNN, adOpenKeyset, adLockOptimistic
MsgBox "权限设置成功!", vbOKOnly, "DOVRO"
Set RST = Nothing: Set CNN = Nothing我下面的代码没有难过?郁闷
你可以用 debug.print sql试下下生成和字串 SQL = "Update duser set fchck=" & CheckBox1.Value & ""
SQL = SQL & "and set DDGL=" & CheckBox2.Value & " "应改成
SQL = "Update duser set fchck=" & CheckBox1.Value & ","
SQL = SQL & "DDGL=" & CheckBox2.Value & ","
sql = sql & "ddd = " & ...