我在Access 2003中执行ServerFilterByForm时遇到问题 当我应用输入的过滤器时,它返回所请求的数据但在它出现在屏幕(表格)后它会消失。不知道为什么会发生这种情况
有没有人有同样的问题?怎么解决? 这是代码“
的一部分Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
Dim stSql As String
If Len(ServerFilter) > 0 Then
stSql = "SELECT * FROM v_InitialReviewQuery " & _
" WHERE " + ServerFilter & _
" ORDER BY acctnumber"
Else
stSql = "SELECT top 1 * FROM v_InitialReviewQuery ORDER BY acctnumber"
End If
Me.RecordSource = stSql
End Sub
答案 0 :(得分:0)
尝试更改此行
" WHERE " + ServerFilter & _
要
" WHERE " & ServerFilter & _
ServerFilter的价值是什么?
答案 1 :(得分:0)
我有一个类似的.adp。
我用来设置队列的方法是表单上的一个视图(我将它用作具有各种进程队列的子表单),它为serverfilter提供了critera。这将取代你的"选择前1 *"和我。记录。该表单作为主表单上的子表单嵌入,我提供有关各种队列的信息。行中的数字,接下来的工作,下一个SLA到期......我用它打开初始表格:
Dim stDocName As String
Dim stLinkCriteria As String
Dim Next_TD_ID As String
Forms![Launch_Control]![queue_subfrom].Form.Refresh
Next_ID = Forms![Launch_Control]![queue_subfrom].Form.[nxt_id]
stLinkCriteria = "nxt_ID = " & Next_ID
stDocName = "Work_form"
DoCmd.OpenForm stDocName, , , stLinkCriteria
然后在work_form上我使用2个按钮
一个用于que中的下一个work_item:
private sub next_button_click()
dim nxt_id as string
nxt_id = Forms![Launch_Control]![queue_subfrom].Form![nxt_id]
Me.ServerFilter = "identifier_in_view = " & Nxt_id
Me.Refresh
end sub
另一个从命令调用filterby。
Private Sub button_click(button As String)
Forms![your_form].Reviewer.SetFocus
Me.ServerFilter = ""
Me.Refresh
Me.ServerFilterByForm = True
Me.Refresh
DoCmd.RunCommand acCmdServerFilterByForm
end Sub
仅供参考我的子表格参考可能不是非常正确。
希望这会有所帮助。