通过复选框值

时间:2016-12-27 13:27:12

标签: ms-access access-vba

我最近开始使用Access with VBA。

问题陈述:有4个选修科目,分别是数学,经济学,计算机科学,家庭科学。一个名为'主题'为每个学生存储选修科目(科目数量因学生而异)。

我做了什么:我在表格中创建了一个多值字段,名为' Subject'在设计视图中使用查找向导。在表单视图中,我列出了这4个复选框以供选择和提交。当我尝试为字段' Subject'编写更新语句时使用复选框值,它会给我一个错误。

还有其他方法可以解决这个问题,还是可以纠正我用过的方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

创建一个包含2个字段的新表;学生证和主题。将所有主题写入该表。当您需要返回它们时,可以使用子表单(在StudentID上链接)或在必要时创建数据透视表。

多值列不是最佳的,它们会产生很多问题。如果您绝对必须使用一个,则需要在解压缩时解析数据。当你第一次写它时,你需要写一个像;

这样的语句
MyStr = "" 
If Me.Checkbox1 = True then
  MyStr = MyStr & "SomeValue, "
EndIf
If Me.Checkbox2 = True then
  MyStr = MyStr & "SomeValue2, "
EndIf
If Me.Checkbox3 = True then
  MyStr = MyStr & "SomeValue3, "
EndIf
If Me.Checkbox4 = True then
  MyStr = "SomeValue4, "
EndIf  

If Len(MyStr) > 2 Then
  MyStr = Left(MyStr, Len(MyStr) - 2)
EndIF

这样做会不断地将您指定的值附加到复选框,然后删除最后2个字符(应该是“,”),这样您就拥有了一个完整的字符串。然后你将MyStr写入Subject字段。

当您阅读此信息时,您需要将其解析为数组并向后工作,确定应根据数组中的值标记哪个复选框。