首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以在Access表单上设置一些有条件的域吗?

我可以在Access表单上设置一些有条件的域吗?
EN

Stack Overflow用户
提问于 2020-03-29 05:05:37
回答 1查看 187关注 0票数 0

我正在创建一个数据库,我有一个表,我正在收集病人是否已经或正在服用特定的药物。我列出了17种我们关心的药物,并且每种药物都有一个yes/no复选框。如果患者正在或曾经服用过这些药物之一,我们希望收集9个额外的字段。

我想创建一个只列出药物和复选框的表单。当用户选中复选框时,我希望出现额外的字段供他们填写。

大多数患者只服用了2-5种药物,所以我不想在表单中填满不必要的空白栏。

有没有办法在没有VBA的情况下做到这一点?如果没有,谁能给我一个VBA代码应该是什么样子的例子?

非常感谢!我们收集这些数据作为正在进行的登记的一部分,监测特定研究药物的长期安全性。当病人在诊所时,我们通常以不同的方式收集这些数据,然而,在流行病爆发之前,我们需要通过电话来收集这些数据,而这个数据库对于确保这些重要数据的持续收集至关重要!!

谢谢,艾伦

EN

回答 1

Stack Overflow用户

发布于 2020-03-29 16:48:41

您可以做的是依赖于这样一个事实: Yes/No字段存储为0 (False)和non-0 (True)。然后,您可以在表单后面添加一小段VBA代码,用于添加所有的Yes/No字段,以确定是否显示其他文本框:

代码语言:javascript
运行
复制
Sub sCheckMedication()
    On Error GoTo E_Handle
    If (Me!Medication1 + Me!Medication2 + Me!Medication3) <> 0 Then
        Me!txtMedicationNotes.Visible = True
    Else
        Me!txtMedicationNotes.Visible = False
    End If
sExit:
    On Error Resume Next
    Exit Sub
E_Handle:
    MsgBox Err.Description & vbCrLf & vbclf & "sCheckMedication", vbOKOnly + vbCritical
    Resume sExit
End Sub

然后,您可以在窗体的Current事件中调用此过程(以涵盖首次加载窗体的时间,以及在记录之间导航的时间),还可以在CheckBox的Click事件上调用此过程:

代码语言:javascript
运行
复制
Private Sub chkMedication1_Click()
    Call sCheckMedication
End Sub

致以敬意,

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60906997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档