2010-04-20 3 views
0

Access 2003의 ServerFilterByForm 실행에 문제가 있습니다 입력 한 필터를 적용하면 요청 된 데이터가 반환되지만 화면 (양식) 사라진다. 왜 이런 일이 일어나는지 모르겠다.MS Access : 이벤트의 이벤트 순서

누구나 같은 문제가 있었습니까? 어떻게 해결 될 수 있습니까? 다음은 또한 ServerFilter의 값이 무엇

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

" WHERE " & ServerFilter & _ 

에이 라인

" WHERE " + ServerFilter & _ 

을 changeing 시도 코드 "의 일부입니다?

+0

문제를 해결할 수 있을지는 모르지만 올바른 연결 연산자를 사용하는 것이 중요합니다. &는 정상 연결 (널 (Null) 무시)을위한 것이고 +는 널 (Null)을 전파하는 것입니다. Null + "String"= "String", Null + "String"= Null입니다. –

+0

나는 변화를했고 같은 결과를 얻었다. 내 서버 필터의 값은 사용자가 필터에 사용하는 것에 따라 다릅니다. sFirstName 필드에 문자열 "Her"의 일부를 포함한다고 가정합시다. ServerFilter의 값은 '% Her %'처럼 sFirstName입니다. 이제 디버깅 할 때 요청한 값이 Access에 있음을 알 수 있습니다. 그러나 페이지를 새로 고친 후 모든 정보가 화면에서 사라집니다. 화면에서 정보를 얻으려면 동일한 값으로 다시 필터링해야합니다. – JAVH

0

나는 비슷한이 .adp.

대기열을 설정하는 데 사용하는 방법은 serverfilter에 대한 critera를 제공하는 양식 (다양한 프로세스 대기열을 갖는 하위 양식으로 사용)에 대한보기입니다. 이것은 당신의 "select top 1 *"과 me.recordsource를 대신 할 것입니다. 이 양식은 기본 양식에 하위 양식으로 포함되어 다양한 대기열에 대한 정보를 제공합니다. 나는 2 개 버튼의 다음 WORK_ITEM에 대한

하나를 사용 work_form에 그런

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 

: 라인, 다음의 번호가 일을 할, 다음 SLA 만료 ... 나는 초기 양식을 열려면이를 사용 que :

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 

FYI 내 하위 형식의 refrence가 정확하지 않을 수 있습니다.

희망이 도움이됩니다.