2011-05-11 5 views
0

Microsoft Access (2010)에서 필터링 된 테이블의 결과를 쿼리로 저장할 수 있어야합니다. Access의 보고서는 쿼리를 기반으로하는 경우에만 동적입니다. 테이블 자체에서 보고서를 기반으로하면 검색어/필터 결과가 저장되지 않습니다. Access 매크로 빌더에서 DoCmd.save는 현재 테이블 만 저장합니다. 필터링 된 테이블을 쿼리로 저장할 수 있도록 VBA에서 "다른 이름으로 저장"을 수행 할 수 있어야합니다. 당신은 형태의 필터있는 OrderBy 설정을 기반으로 SQL 문을 작성해야합니다MS Access 필터 된 테이블을 VBA에서 쿼리로 저장하는 방법

감사

+0

"내 보고서가 쿼리를 기반으로하는 경우에만 동적입니다"라는 문구는 나에게 잘 보이지 않습니다. DoCmd.OpenReport 명령에서 WHERE 조건을 전달하여 데이터 하위 집합으로 보고서를 실행할 수 있습니다. 이것이 보고서의 레코드 소스에 기준이없는 한 가지 이유이므로 필요에 따라 모든 레코드 또는 하위 집합을 인쇄 할 수 있습니다. –

답변

1

.

Dim sSQL As String 

sSQL = "Select ... From MyTable" 

If Len(Me.Filter) > 0 Then 
    sSQL = sSQL & " Where " & Me.Filter 
End If 

If Len(Me.OrderBy) > 0 Then 
    sSQL = sSQL & " Order By " & Me.OrderBy 
End If 

Call DBEngine.Workspaces(0).Databases(0).CreateQueryDef("MyQueryName", sSQL) 
+0

입력 해 주셔서 감사합니다. 나는 내가 문제를 잘못된 방향으로 돌릴지도 모른다라고 결정했다. 필자는 필터링 작업을 수행하지 않고 사용자가 필터링 된 데이터를보다 쉽게 ​​작성하도록합니다. 지금은 코드가 없어도 사용자가 필터링 된 테이블을 쿼리로 저장 한 다음 방금 저장 한 쿼리를 기반으로 원하는 보고서를 열어야합니다 (필터링 된 테이블을 저장할 때마다 보고서는에 근거합니다). 테이블의 필터링 된 부분을 쿼리로 저장하는 매크로는 어떻게 작성합니까? – user748872

+0

@ user748872 - AFAIK, 직접적인 방법은 없습니다. SQL을 빌드하고 코드로 쿼리를 생성해야합니다. 데이터를 데이터 시트보기로 표시하고 내가 제공 한 것과 유사한 기능을 수행하는 하위 폼을 가질 수 있음을 명심하십시오. – Thomas

+0

도움을 주셔서 감사합니다! 이 경우에는 사용자가해야 할 일 중 하나 일뿐입니다. 내가 좋아했을 것만 큼 사용자 친화적 인 것은 아니지만 최소한 일은 끝났습니다. – user748872

관련 문제