2016-06-29 1 views
-1

Access의 폼에서 데이터 정렬을 위해 이미 많은 지식이 있습니다. 그러나, 나는 일할 수없고 도움이 필요하지 않습니다.VBA에 의한 Access 2010의 폼에 대한 데이터 정렬

표 "Mitarbeiter"(사용자) 필드 : "UNummer"/ "Sortierung"/ .... 매달

표 "Mo01"(시트

나는 다음과 같은 설정을 가지고) 필드 : "UNummer"/ "01"/ "02"/ ...

표 Mo01에서

분야 UNummer는 Mitarbeiter.UNummer을 얻고

이제 텍스트로 저장 조합 필드 전 내가 테이블 Mo01에 기반을 둔 Formats "Monatsblatt"를 가지고있다.

그 Form I에는 "Mitarbeiter"테이블에서 "Sortierung"을 호출하는 "fldSort"필드가 있습니다. 이 필드의 데이터가 "= DomWert에 기초한다 ("Sortierung ";"Mitarbeiter ";"UNummer = ' "& [ID] &' '')"

이것이 잘 작동이 보이는 모든 :

내가 이렇게 그와 양식을 시작할 때, 그러나

Form_Monatsblatt.OrderBy = "fldSort" 
Form_Monatsblatt.OrderByOn = True 

:

Image of the Form

지금 나는이 코드를 사용하여 양식 "Monatsblatt"의 그 "fldSort"에 의해 형태를 분류하는 것을 시도하고있다 코드 실행 나는 항상 PA를 요청합니다. 액세스에 의해 rameters 당신은이 그림에서 보는 바와 같이 :

Access asking me for Parameter

단순히 코드를 작성하는 다른 방법으로 필드에 참조하는 다른 방법을 많이 시도했습니다

이 작업을 수행하는 방법을 이해할 수 없다 . 나는 테이블 이외의 다른 것에 기초를두기를 원하지 않는다. 확실하게 이것이 가능해야합니다.

누군가이 문제로 나를 도울 수 있기를 바랍니다.

인사말. René

답변

2

넓은 세상에 왜 "매개 변수를 묻는 질문을하는 이유"를 보지 않겠습니까? 그건 내가 생각한 단서에 너를 데려왔을거야. Debug.Print 또는 MsgBox.OrderBy이고 올바른 정렬이 아닌 "fldSort"입니다. 액세스는 fldSort이라는 매개 변수를 사용하려고하지만 변수 fldSort의 문자열을 원하지만 주변의 큰 따옴표로 인해 인식되지 않습니다. 2 큰 따옴표 사이의 모든 것은 문자열로 해석됩니다. 심지어 var 이름입니다.

따옴표를 삭제하면 모든 것이 잘 작동합니다 (정렬 문자열이 충분한 경우).

Form_Monatsblatt.OrderBy = fldSort 

은 [업데이트] 는 늦은하지만 지금은 단서를 참조하십시오. 양식에 계산 된 필드를 추가했지만 정렬하거나 필터링 할 수 없습니다. 테이블에이 필드를 추가하는 대신 쿼리를 만들고 추가 한 다음 폼을 쿼리에 바인딩하고 필드를 폼에 추가합니다. 이제 원하는대로 필터링하고 정렬 할 수 있습니다! 쿼리는 다음과 같습니다

SELECT *, 
    Dlookup("Sortierung","Mitarbeiter","UNummer = '" & [ID] & "'") AS ldSort 
FROM Mo01; 

또는과

조인 : 당신이 바운드 컨트롤이 fldSort라고 때문에
SELECT 
    Mo01.*, 
    Mitarbeiter.Sortierung AS fldSort 
FROM 
    Mo01 
LEFT JOIN 
    Mitarbeiter 
ON 
    Mo01.ID = Mitarbeiter.UNummer; 

지금 당신이

Form_Monatsblatt.OrderBy = "fldSort" 
Form_Monatsblatt.OrderByOn = True 

를 사용할 수 있습니다.

[/ 업데이트]

+0

좋은 답변. 부분적으로 도움이됩니다. 불행히도 정렬은 그렇게 작동하지 않습니다. 기본적으로 다른 테이블을 사용하지 않고 다른 테이블의 연결된 필드로 사용자 정의 된 방식으로 테이블을 정렬하려고합니다. 누구든지 그 일을하는 법을 알아 냈습니까? –

+0

'fldSort'의 값은 무엇입니까? 나는 그것이 유효한 sort 문자열이 아니라고 생각한다. – BitAccesser

+0

값은 숫자 (double)입니다. 내가 지금하고있는 일은 테이블에 필드를 추가하고 폼에 업데이트 쿼리를 채운 다음 입력 된 값으로 테이블을 정렬하는 것입니다. 나는 그것이 실제로 작동 할 것 같아요. 그러나 지금은 업데이트 쿼리에 약간의 문제가 있습니다. –