我正在创建一个数据库,我有一个表,我正在收集病人是否已经或正在服用特定的药物。我列出了17种我们关心的药物,并且每种药物都有一个yes/no复选框。如果患者正在或曾经服用过这些药物之一,我们希望收集9个额外的字段。
我想创建一个只列出药物和复选框的表单。当用户选中复选框时,我希望出现额外的字段供他们填写。
大多数患者只服用了2-5种药物,所以我不想在表单中填满不必要的空白栏。
有没有办法在没有VBA的情况下做到这一点?如果没有,谁能给我一个VBA代码应该是什么样子的例子?
非常感谢!我们收集这些数据作为正在进行的登记的一部分,监测特定研究药物的长期安全性。当病人在诊所时,我们通常以不同的方式收集这些数据,然而,在流行病爆发之前,我们需要通过电话来收集这些数据,而这个数据库对于确保这些重要数据的持续收集至关重要!!
谢谢,艾伦
发布于 2020-03-29 16:48:41
您可以做的是依赖于这样一个事实: Yes/No字段存储为0 (False)和non-0 (True)。然后,您可以在表单后面添加一小段VBA代码,用于添加所有的Yes/No字段,以确定是否显示其他文本框:
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事件上调用此过程:
Private Sub chkMedication1_Click()
Call sCheckMedication
End Sub致以敬意,
https://stackoverflow.com/questions/60906997
复制相似问题