特殊的 listbox.Requery 视觉错误
Peculiar listbox.Requery visual bug
我有一个列表框,它根据组合框中的值过滤 AfterUpdate
事件。一切正常,除了有时不能正确显示所有记录。
但是,如果我只是单击列表框中的一行,它会自行纠正。
此外,它在出错时显示数据的方式非常奇特 - 它完整显示了最后一列,但其余数据却一团糟。
知道如何解决这个问题吗?我有一个简单的 Me.listBoxName.Requery
作为 cboObjedn_AfterEvent()
中的最后一个车道,并且在这样做之前从来没有遇到过问题。
我附上了 2 张示例图片(通常有 10 行以上,而不是 2 行)。
编辑:
AfterUpdate子的代码如下:
Private Sub cboOrder_ID_AfterUpdate()
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset(mSQL(Me))
Set Me.lst1Model_Operation.Recordset = rst
Me.lst1Model_Operation.Requery
End Sub
并且:
Public Property Get mSQL(object As Object) As String
mySQL = "SELECT MO.Model_Operation_ID, MO.Model_ID, MO.Operation_Value_ID, OV.Operation_Name_ID, OL.Operation_Name AS Operácia, OM.Quantity AS [Poèet párov], " & "Format([OV].[Value], " & """0.0000 €""" & ")" & "AS Sadzba, OM.Order_ID, OM.Order_Name, ML.Model_Name" _
& " FROM tbl2ModelsList AS ML INNER JOIN (tbl3OperationsList AS OL INNER JOIN (tbl2Operation_Value AS OV INNER JOIN (tbl1Model_Operation AS MO INNER JOIN tbl1Order_Model AS OM ON MO.Model_ID = OM.Model_ID) ON OV.Operation_Value_ID = MO.Operation_Value_ID) ON OL.Operation_ID = OV.Operation_Name_ID) ON ML.Model_ID = OM.Model_ID" _
& " WHERE (((OM.Order_ID)=" & object.cboOrder_ID & "))"
End Property
将查询语句分配给列表框的 RowSource 属性:
Me.lst1Model_Operation.RowSource = mSQL(Me)
更改 RowSource 会更新列表框内容以响应更新后的 SELECT
语句,因此您无需再次调用 Requery
你的代码。
我有一个列表框,它根据组合框中的值过滤 AfterUpdate
事件。一切正常,除了有时不能正确显示所有记录。
但是,如果我只是单击列表框中的一行,它会自行纠正。
此外,它在出错时显示数据的方式非常奇特 - 它完整显示了最后一列,但其余数据却一团糟。
知道如何解决这个问题吗?我有一个简单的 Me.listBoxName.Requery
作为 cboObjedn_AfterEvent()
中的最后一个车道,并且在这样做之前从来没有遇到过问题。
我附上了 2 张示例图片(通常有 10 行以上,而不是 2 行)。
编辑: AfterUpdate子的代码如下:
Private Sub cboOrder_ID_AfterUpdate()
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset(mSQL(Me))
Set Me.lst1Model_Operation.Recordset = rst
Me.lst1Model_Operation.Requery
End Sub
并且:
Public Property Get mSQL(object As Object) As String
mySQL = "SELECT MO.Model_Operation_ID, MO.Model_ID, MO.Operation_Value_ID, OV.Operation_Name_ID, OL.Operation_Name AS Operácia, OM.Quantity AS [Poèet párov], " & "Format([OV].[Value], " & """0.0000 €""" & ")" & "AS Sadzba, OM.Order_ID, OM.Order_Name, ML.Model_Name" _
& " FROM tbl2ModelsList AS ML INNER JOIN (tbl3OperationsList AS OL INNER JOIN (tbl2Operation_Value AS OV INNER JOIN (tbl1Model_Operation AS MO INNER JOIN tbl1Order_Model AS OM ON MO.Model_ID = OM.Model_ID) ON OV.Operation_Value_ID = MO.Operation_Value_ID) ON OL.Operation_ID = OV.Operation_Name_ID) ON ML.Model_ID = OM.Model_ID" _
& " WHERE (((OM.Order_ID)=" & object.cboOrder_ID & "))"
End Property
将查询语句分配给列表框的 RowSource 属性:
Me.lst1Model_Operation.RowSource = mSQL(Me)
更改 RowSource 会更新列表框内容以响应更新后的 SELECT
语句,因此您无需再次调用 Requery
你的代码。