2011-04-21 3 views
0

어떻게해야합니까? 사실, 일부 하위 폼이 있고 제목을 클릭하면이 하위 폼의 레코드 세트를 orderby에 넣을 수 있습니다. 이것은 내가하는 일의 예입니다여러 필드가있는 VBA - OrderBy에 액세스

Private Sub sigle_cours_Label_Click() 
    If (Me.OrderBy = "COU.sigle_cours") Then 
     Me.OrderBy = "COU.sigle_cours DESC" 
    Else 
     Me.OrderBy = "COU.sigle_cours" 
    End If 
    Me.OrderByOn = True 
End Sub 

내 문제는 이것이다 : 나는 sigle_cours 및 num_cours와 ORDERBY하고 싶지만 동작하지 않습니다. 나는 이것을 시도하지만 DESC별로 정렬 할 수있는 방법은 없습니다 :

Private Sub sigle_cours_Label_Click() 
    If (Me.OrderBy = "COU.sigle_cours,COU.num_cours") Then 
     Me.OrderBy = "COU.sigle_cours DESC,COU.num_cours DESC" 
    Else 
     Me.OrderBy = "COU.sigle_cours,COU.num_cours" 
    End If 
    Me.OrderByOn = True 
End Sub 

어떻게해야합니까?

답변

3

OrderBy 속성에 문자열 값을 할당하면 Access에서 변환 할 수 있으므로 예상 한 내용을 정확하게 저장하지 못합니다. ...

Me.OrderBy = "COU.sigle_cours,COU.num_cours" 
Debug.Print "Me.OrderBy='" & Me.OrderBy & "'" 

당신은 직접 실행 창에서 볼 수 ... 귀하의 경우에는, 나는 액세스 쉼표 뒤에 공백을 추가 의심, 그래서 당신은 당신의 폼의 코드에서이 문제를 포함하는 경우

Me.OrderBy = 'COU.sigle_cours, COU.num_cours' 

사실 저는 당신의 문제에 대한 설명이 긍정적이지는 않습니다. 그럼에도 불구하고 고정 문자열에 정확히 일치하는지 테스트하는 대신 현재 OrderBy 값을 패턴 일치시켜 기쁨을 찾을 가능성이 더 높습니다. 이 방법을 사용해보십시오 :

Private Sub sigle_cours_Label_Click() 
    If (Me.OrderBy Like "*DESC*") Then 
     Me.OrderBy = "COU.sigle_cours, COU.num_cours" 
    Else 
     Me.OrderBy = "COU.sigle_cours DESC, COU.num_cours DESC" 
    End If 
    Me.OrderByOn = True 
End Sub 
+0

액세스가 매우 이상한 것들을 양식의 ORDER BY 속성에 할 수 있습니다. ORDER BY 절의 필드 사이에 3 ~ 4 개의 공백을 삽입하는 응용 프로그램이 있습니다. 그 때문에 가장 쉬운 방법은 모든 공백을 Replace()로 바꾸고 그 결과를 테스트하는 것입니다. –

+0

당신은 남자 야 !! 나 인쇄하기. 오더. 쉼표 뒤에 공백을 넣으라고 말했어. 그 후, 그것은 코드를 수리하기위한 케이크 조각이었습니다. 감사! –

관련 문제