vba - 获取 MS-Access 表单以在查询和表中将不可见的组合框保存为 null 或 0 值
问题描述
我不知道我如何构建我的表单一定是我能做到的最好的方式,但这是我可以让它工作的方式,至少部分。我在 ms-access 2007 中构建了一个表单,它使用 vba 来隐藏或使某些组合框可用。第一个选择和表单其余部分所基于的是一个是/否选项,即客户是否需要外部服务来完成他们的工作。一旦选择了该选项,用户就可以从外部服务选项中进行选择(哪些是组合框,根据第一选择可见或不可见)。所以这就是问题所在,我编写了代码,这样如果用户在第一个框中选择“否”,则其余框将不可见。但是,如果用户选择是,则他们必须选择值,再次是或否,以保留或删除表格其余部分的其他选项。我要做的是让用户返回表单时,他们所做的选择仍然存在。因此,如果他们选择“否”,那么该表格基本上是空白的,如果他们最初说“是”,那么该答案以及他们做出的其他选择将可用。
我目前使用的是一个简单的 if-then 语句来使框可见或不可见。
Private Sub Combo36_AfterUpdate()
If Combo36.Value = "No" Then Me.Combo18.Visible = False
If Combo36.Value = "Yes" Then Me.Combo18.Visible = True
If Combo36.Value = "No" Then Me.Combo20.Visible = False
If Combo36.Value = "Yes" Then Me.Combo20.Visible = True
End Sub
显然,我对访问没有经验,并且跌跌撞撞地通过它。如果我上面所说的任何内容令人困惑,我很抱歉。如果需要澄清,请告诉我。
解决方案
首先,“Flase”应该更新为“False”。
与其存储然后重新填充选定的值,不如根据选择将整个表单的可见性变为真/假,这将保留用户选择的最后一个值,这可能更容易。
为了显示控件的可见性,请尝试:
Private Sub Combo36_Change()
If Me.Combo36.Value = "No" Then
Me.Combo18.Visible = False
Me.Combo20.Visible = False
ElseIf Me.Combo36.Value = "Yes" Then
Me.Combo18.Visible = True
Me.Combo20.Visible = True
End If
End Sub
推荐阅读
- python - 递归函数嵌套字典python
- php - 我想将其限制为仅添加一个类别的产品,而不允许使用 woocommerce 的其他产品
- python - 我如何解决这个 python 大学问题?
- python - 无法为标记器构建轮子,这是安装基于 pyproject.toml 的项目所必需的
- vba - 根据另一个文本框的值填充文本框
- variables - 在Csharp中,我如何计算每次单击特定按钮时都会增加的某个值
- javascript - 从子组件函数更新 React 状态
- sql - 根据另一列中的值将空值替换为同一列中的非空值
- security - 无效的内存地址或零指针取消引用?
- python - 如何将 JSON 发布到持久的 Azure 函数(Python)?