新手请教:怎么在VB中编写Checkbox的值(其对应Access中的yes/no值)
我在Access数据库中的某一字段值设置是Yes/No,在VB编程中具体对应是Checkbox,我设想是如在程序中点击checkbox传递到access中就是yes.但我编程却碰到麻烦.我查阅了一下, checkbox.value(一般是0,1,2)是不能返回的,用checkbox.checked提式错误:未找到方法或数据成员.请问你们是怎么实现的呢?
多谢. --------------------编程问答-------------------- checkbox 就只有 0与 1 没有 2
'添加 Command1 Check1
Private Sub Command1_Click()
MsgBox IIf(Check1.Value = 1, "选中", "没选")
'If Check1.Value = 1 Then
' MsgBox "选中"
'Else
' MsgBox "没选"
'End If
End Sub
--------------------编程问答-------------------- To: LS
VB中,CheckBox的Value属性值有2
^_^
====================
To: LZ
没明白“checkbox.value(一般是0,1,2)是不能返回的”是什么意思,它怎么不能返回??? --------------------编程问答-------------------- 哈哈哈是吗? 谢谢提醒, 我可没试过呢, 2用得上吗? --------------------编程问答-------------------- 2得用代码控件,就是灰色的选中,比较少用而已
没太明白楼主的意思,是不是要把checkbox选中与否转化成yes/no传进数据库字段?那就直接.fields(xxx)=check1.value --------------------编程问答-------------------- 回楼上几位热心人,我查阅论坛上有关checkbox,有人讲.value是不能返回值的.我在access标段中设置该格式为number,然后尝试接收vb程序中checkbox.value的返回值,但提示错误,我当时就认为可能的确.checkvalue是不能返回值.
我的意思的确就是checkbox选中与否转化成yes/no传进数据库字段.我现在已在access中将其格式改为yes/no,我是用insert into语句的.如下:
strSQL = " INSERT INTO Function ([SystemID],[Leak], [Alarm], [TempCorr], [Printer],[Water],[Temp],[Weight] ,"
strSQL = strSQL & "[POS] , [Delivery]"
strSQL = strSQL & " VALUES("
strSQL = strSQL & Text1(1).Text & "',"
strSQL = strSQL & Check1(0).Checked & ","
strSQL = strSQL & Check1(1).Checked & ","
strSQL = strSQL & Check1(2).Checked & ","
strSQL = strSQL & Check1(3).Checked & ","
strSQL = strSQL & Check1(4).Checked & ","
strSQL = strSQL & Check1(5).Checked & ","
strSQL = strSQL & Check1(6).Checked & ","
strSQL = strSQL & Check1(7).Checked & ","
strSQL = strSQL & Check1(8).Checked & ","
strSQL = strSQL & Check1(9).Checked & ")"
请问以上怎么就运行不了呢?
多谢. --------------------编程问答-------------------- .value --------------------编程问答-------------------- to LS:您意思是不是将.checked改为.value?但这样返回值不就是0,1这样的数字值了吗?不是boolean了啊.
3ku. --------------------编程问答-------------------- 您就不能自己动手试试行不行吗?
在数据库里,0代表假,1代表真
在VB里,0代表假,-1代表真
VB的Checkbos里,未选中值为0,选中值0为1(2的情况暂不讨论)
假与真,在0和1的世界里,不总也得转化为数值吗? --------------------编程问答--------------------
只是用得很少而已。 --------------------编程问答-------------------- 随便找一文件夹,右击属性,如果里面的文件属性不全一致,那属性窗口里的“只读”之类的就会变成2的样式 --------------------编程问答--------------------
如果这样子,checkbox.value值的0与1不就是对应access中的yes与No吗?开起来不需要转换,那我怎么还是不行呢?程序就是提示错误.
不好意思,问题可能太初级了.望不吝赐教.
--------------------编程问答-------------------- 错误提示变成了:Syntax error in insert into statement.
唉,实在不行,就将access格式换成text了. --------------------编程问答-------------------- 不会自己在程序里转换一下?
闹到要改数据库这么恐怖? --------------------编程问答-------------------- 我将checkbox.value值转换为true和false,再运行,还是提示语法错误.难道true及false不能直接对应access的yes和No吗?
该怎么转换呢? --------------------编程问答-------------------- strSQL = " INSERT INTO Function ([SystemID],[Leak], [Alarm], [TempCorr], [Printer],[Water],[Temp],[Weight] ,"
strSQL = strSQL & "[POS] , [Delivery]"
strSQL = strSQL & " VALUES("
strSQL = strSQL & Text1(1).Text & "',"
strSQL = strSQL & Check1(0).Checked & ","
strSQL = strSQL & Check1(1).Checked & ","
strSQL = strSQL & Check1(2).Checked & ","
strSQL = strSQL & Check1(3).Checked & ","
strSQL = strSQL & Check1(4).Checked & ","
strSQL = strSQL & Check1(5).Checked & ","
strSQL = strSQL & Check1(6).Checked & ","
strSQL = strSQL & Check1(7).Checked & ","
strSQL = strSQL & Check1(8).Checked & ","
strSQL = strSQL & Check1(9).Checked & ")"
上面是你在5楼贴出来的代码,我觉得好象少了一个右括号:
strSQL = " INSERT INTO Function ([SystemID], 这里有一个左括号
strSQL = strSQL & " VALUES(" 这里又有一个左括号
strSQL = strSQL & Check1(9).Checked & ")" 只看到一个右括号
--------------------编程问答-------------------- 同上,是你的SQL语句有问题
以后若出了问题,先debug.print出来试试
看不出来可以到查询分析器里执行一次 --------------------编程问答-------------------- 终于解决了.
好长时间不编程了,如今不得已捧起来,却发现不行啊.
多谢楼上各位的. --------------------编程问答-------------------- 都是很好的建议! 值得学习 --------------------编程问答-------------------- 我也来学习学习
补充:VB , 数据库(包含打印,安装,报表)