首先,改变:
recordID = Me.CurrentRecord
To:
recordID = Me.ID
其中 Me.ID 是当前表单上的字段或控件的名称 (Microsoft Access - 单击按钮时获取记录 ID https://stackoverflow.com/questions/13497950/microsoft-access-get-record-id-when-button-is-clicked/13498362#13498362 ).
当您引用变量时,请将其放在引号之外:
DoCmd.OpenForm "Form3", , , "ID = " & recordID
这对于数字 ID 来说没问题,但对于文本和日期来说会变得有点复杂,因为您需要分隔符。只要这样就可以很好地工作sometextvar
不包含引号:
DoCmd.OpenForm "Form3", , , "Atext = '" & sometextvar & "'"
否则
DoCmd.OpenForm "Form3", , , "Atext = '" & Replace(sometextvar,"'","''") & "'"
日期需要#
DoCmd.OpenForm "Form3", , , "ADate = #" & somedatevar & "#"
为了避免区域设置问题,最好将格式设置为年、月、日,因此:
DoCmd.OpenForm "Form3", , , "ADate = #" & Format(somedatevar,"yyyy/mm/dd") & "#"