0

我正在 MS Access 中编写一个简单的复选框。事情是这样的:

  1. 我有一个组合框,其中包含用户可以选择的值的下拉列表。(例如 b1、b2、c1、d1、d2、d3、e0、e2 等)它们只是 2 个字符的文本字符串。
  2. 当用户想要修改下拉列表中的值时,我有一个复选框可供使用。基本上它所做的就是,当复选框被选中时,它会将任何值更改为“ds(下拉值)”,所以它只是添加“ds()”。(例如ds(b1),ds(b2) , ds(c1) 等)
  3. 如果用户取消选中该复选框,则该值将保留为 2 个字符的文本字符串。

这是我第一次涉足 Access 编程。我的伪代码如下:

Private Sub distchk_Click()
if distchk is checked then
   Me.ECOSITE = "ds(" & Me.ECOSITE & ")"
else:
   Me.Ecosite
End Sub

我测试过:

Private Sub distchk_Click()
Me.ECOSITE = "ds(" & Me.ECOSITE & ")"
End Sub

但它会在我检查它时不断添加额外的 ds() ,如果我取消选中它就不会删除它。

任何建议都会很棒!

麦克风

4

1 回答 1

3

您正在为自己做不必要的工作,并为您的用户带来更混乱的界面。您正在收集两个离散的数据:LandCoverType(文本字段)和 IsDisturbed(是/否字段,也称为布尔值或位字段),因此我认为没有理由将它们组合到输入表单中。通过将土地覆盖类型包装在“ds()”中,您不会向用户提供任何附加信息。我建议两种替代方法:

两个单独的字段 (首选方法)

  • 创建一个 LandCoverType 字段(文本);将您的组合框绑定到此字段(在 ComboBox ControlSource 中输入LandCoverType
  • 创建一个 IsDisturbed 字段(是/否);将您的复选框绑定到此字段(与上述相同)
  • 如果您想在报告中显示“ds()”,则将其作为报告字段格式的一部分(例如,=IIf([IsDisturbed], "ds(" & [LandCoverType] & ")", [LandCoverType])

一个联合领域

  • 创建单个 LandCoverType 字段(文本)
  • 更改组合框的 RowSource 以包括所有带和不带的 LandCoverType ds()(例如,如果您的 RowSource 是值列表b1, b2, c1, ds(b1), ds(b2), ds(c1):)
于 2012-04-13T20:53:42.647 回答