【发布时间】:2015-01-22 16:56:57
【问题描述】:
我正在建立一个包含患者信息的数据库。现在,用户可以使用搜索/确认表单导航到特定的患者信息(患者主页)。主页具有指向其他表格的链接,其中包含其他患者信息。当用户搜索从一开始就放入的患者时,该代码起作用(也就是我在开始时作为测试人员放入的“患者”将出现并且代码的行为与预期的一样)。但是,当我尝试添加新患者时,确认表将不再起作用。新记录在患者列表中创建,搜索表单将找到新患者,但是当我单击确认表单上的继续按钮时,患者主页作为新(空白)记录拉出。该代码仅适用于新患者。
当我将新患者添加到主页表单时,我在“设备日志”表单中创建新记录时也遇到了问题。我在设备日志和患者主页之间有一对一的关系,pt ID 是两个表的主键。当我通过“pt 主页”添加新患者时,我需要在通过 pt ID 连接的设备日志中创建链接记录。到目前为止,我已经尝试过类似于下面的代码和其他类似的东西,但似乎没有任何效果。
下面是搜索和确认页面的代码,以及患者主页的部分代码(虽然我不知道那个代码很有用)。任何帮助表示赞赏,我已经坚持了一段时间。
患者搜索页面:
Private Sub Patient_Search_Click()
On Error GoTo Patient_Search_Click_Err
DoCmd.OpenForm "Confirmation", acNormal, "", "", acReadOnly, acNormal
Patient_Search_Click_Exit:
Exit Sub
Patient_Search_Click_Err:
MsgBox Error$
Resume Patient_Search_Click_Exit
End Sub
Private Sub add_new_Click()
On Error GoTo add_new_Click_Err
' _AXL:<?xml version="1.0" encoding="UTF-16" standalone="no"?>
' <UserInterfaceMacro For="Patient Search" Event="OnClick" xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application" xmlns:a="http://schemas.microsoft.com/office/accessserv
' _AXL:ices/2009/11/forms"><Statements><Action Name="OpenForm"><Argument Name="FormName">Confirmation</Argument><Argument Name="DataMode">Read Only</Argument></Action></Statements></UserInterfaceMacro>
DoCmd.OpenForm "Patient Home Page"
DoCmd.GoToRecord , , acNewRec
add_new_Click_Exit:
Exit Sub
add_new_Click_Err:
MsgBox Error$
Resume add_new_Click_Exit
End Sub
患者确认页面(*注意:我对此进行了编辑并在 debug.print 处添加了一个断点。当我运行该命令时,什么都不会打印,现在什么都不会打开)
Private Sub confirm_Click()
testid = [Patient List_ID]
Debug.Print
DoCmd.OpenForm "Patient Home Page", acNormal, "", "[ID]=" & "'" & [Patient List_ID] & "'"
End Sub
患者主页:
Private Sub Form_Current()
If Me.NewRecord Then
Me.equipment_log.Visible = False
Me.echos.Visible = False
Me.open_logs.Visible = False
Me.openadvisory.Visible = False
Me.save.Visible = True
Me.edit.Visible = False
Me.cancelupdate.Visible = True
Last_Name.Locked = False
First_Name.Locked = False
Middle_name.Locked = False
Device.Locked = False
Patient_List_ID.Locked = False
MRN.Locked = False
DOB.Locked = False
Implant_Date.Locked = False
Transplant_Goal.Locked = False
Status.Locked = False
Caregiver.Locked = False
Address.Locked = False
City.Locked = False
State.Locked = False
Zipcode.Locked = False
Phone_1.Locked = False
Phone_2.Locked = False
Phone_3.Locked = False
Else
Me.equipment_log.Visible = True
Me.echos.Visible = True
Me.open_logs.Visible = True
Me.openadvisory.Visible = True
Me.save.Visible = False
Me.edit.Visible = True
Me.cancelupdate.Visible = False
Last_Name.Locked = True
First_Name.Locked = True
Middle_name.Locked = True
Device.Locked = True
Patient_List_ID.Locked = True
MRN.Locked = True
DOB.Locked = True
Implant_Date.Locked = True
Transplant_Goal.Locked = True
Status.Locked = True
Caregiver.Locked = True
Address.Locked = True
City.Locked = True
State.Locked = True
Zipcode.Locked = True
Phone_1.Locked = True
Phone_2.Locked = True
Phone_3.Locked = True
End If
End Sub
根据患者列表中的新条目在设备日志中创建新记录(在 if 语句中创建新记录)
Dim crit As String
crit = [Patient List_ID]
DoCmd.OpenForm "Patient Equipment Log"
DoCmd.GoToRecord , , acNewRec
Forms![Patient Equipment Log]![Patient Equipment.ID] = crit
【问题讨论】:
-
您能否详细说明关于设备日志的第二个问题?例如究竟什么不起作用以及到目前为止您已经尝试过什么。
-
我无法确切告诉您我尝试了什么,因为我尝试了很多与其他帖子/网站不同的东西,并在它不起作用时将其删除。编辑原始问题以扩展该问题。
-
希望对您有所帮助,如果我能澄清更多,请告诉我。在我尝试过的所有方法中,这种方法似乎最有意义。