【发布时间】:2014-01-17 01:38:40
【问题描述】:
我在主表单中嵌入了一个子表单作为数据表。在我选择一些过滤条件并单击“搜索”按钮后,子表单的数据会被填充。除了我在这个子表单中的一个控件外,一切都很好。这是一个未绑定的控件,我将在子窗体的 onLoad 事件中使用从我的子窗体的其他控件输入的值设置它的控件源。当我第一次加载主表单并在选择任何内容或单击“搜索”按钮之前,子表单会显示一个空的记录行。但是,在我的未绑定控件的列上,它显示为“#ERROR”,而其他都是空白的。我知道在我进行搜索并且未绑定的控件数据被填充后这会正常工作,但是无论如何我可以避免在我的子表单中显示丑陋的“#ERROR”吗?
我的部分代码在这里。
Private Sub Form_Load()
Me.text_root_cause_field.ControlSource = "=getLatestRemark([plant], [shipment_no])"
End Sub
Public Function getLatestRemark(plant_code As String, shipment_no As String) As String
Dim db As Database
Dim srRS As Recordset
Set db = CurrentDb
Set srRS = db.OpenRecordset("SELECT TOP 1 root_cause FROM Shipment_Remark" _
& " WHERE plant = '" & plant_code & "'" _
& " AND shipment_no = '" & shipment_no & "'" _
& " ORDER BY update_time DESC", dbOpenDynaset)
If Not srRS Is Nothing Then
If Not srRS.EOF Then
getLatestRemark = srRS!root_cause
srRS.Close
Set srRS = Nothing
End If
Else
getLatestRemark = ""
End If
db.Close
Set db = Nothing
End Function
这些是我的子表单的代码。 text_root_cause_field 是我正在谈论的未绑定字段。它的控制源依赖于另外两个绑定字段 - [plant] 和 [shipment_no]。但是,字段 [plant] 和 [shipment_no] 仅在用户单击主窗体中的搜索按钮并设置子窗体的记录源后在运行时绑定。
感谢您的帮助。
【问题讨论】:
-
即使您要在搜索后更改它,您是否至少不能将其绑定到有效列?
-
@HK1 感谢您的建议。我试图在我的子窗体的记录源中包含一个空列并将该列绑定到该控件。但奇怪的是,“#ERROR”仍然出现......
-
发布您的代码可以帮助我们帮助您。你能澄清一下控件是绑定的还是未绑定的?
标签: ms-access vba ms-access-2003 subform