当前位置:编程学习 > VB >>

新手请教:怎么在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的世界里,不总也得转化为数值吗? --------------------编程问答--------------------
引用 3 楼 cbm666 的回复:
哈哈哈是吗? 谢谢提醒, 我可没试过呢, 2用得上吗?


只是用得很少而已。 --------------------编程问答-------------------- 随便找一文件夹,右击属性,如果里面的文件属性不全一致,那属性窗口里的“只读”之类的就会变成2的样式 --------------------编程问答--------------------
引用 8 楼 alifriend 的回复:
您就不能自己动手试试行不行吗? 
在数据库里,0代表假,1代表真 
在VB里,0代表假,-1代表真 
VB的Checkbos里,未选中值为0,选中值0为1(2的情况暂不讨论) 

假与真,在0和1的世界里,不总也得转化为数值吗?


如果这样子,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 ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,