2017-04-13 1 views
1

Access 및 VBA 프로그래밍에 대한 지식이 있지만 일부는입니다. 나는 대학 때부터 Access를 실제로 사용하지 않았다.테이블의 정보를 기반으로 쿼리 만들기

PostcodeGroup Code의 두 필드가있는 Location 테이블이 있습니다. 이 목록에는 1,693,353 개의 레코드가 있습니다.

나는 Group NameGroup Code의 두 필드가있는 Group이라는 테이블이 있습니다. 약 300 개의 권한 레코드가 있습니다.

각 그룹에 대해 테이블 ​​/ 쿼리를 만들고 테이블에 다른 위치 포스트 코드가 있어야합니다.

나는 그룹 코드를 기준으로 300 개의 다른 쿼리를 모두 만들 수 있고 그것들이 일치한다는 것을 알았지 만 그것은 300 개의 다른 쿼리를 만드는 것을 의미합니다.

내가 알고 싶은 것은이 프로세스를 자동화하는 방법이 있는지입니다. 나는 사람들이 나를 위해 그것을 만들 것을 요구하지는 않는다. (원한다면)하지만 도움이 될만한 Access VBA를 배우기 위해 사람들이 추천 할 수있는 가이드 나 튜토리얼이 있다면 말이다.

+1

가 확실하지 '그룹'이 가장 좋은 이름은 - '그룹 By'와 충돌 할 수 있습니다. 단일 쿼리를 사용하여 'SELECT GroupName, Postcode FROM [Group] INNER JOIN Location ON Group.GroupCode = Location.GroupCode' 모든 그룹을 반환 할 수 없습니까? 그런 다음 각 GroupName에서 필터링합니까? –

답변

1

이 쿼리에는 모든 그룹 (SQL_Group이라는 이름이 붙어 있습니다)이 포함됩니다. SELECT GroupName, Postcode FROM [Group] INNER JOIN Location ON Group.GroupCode = Location.GroupCode이 그룹을 만듭니다. 각 그룹을 통해

이 코드 의지주기 :

Public Sub FilterQuery() 

    Dim qdf As DAO.QueryDef 
    Dim rst As DAO.Recordset 
    Dim rst_Groups As DAO.Recordset 
    Dim rst_Filtered As DAO.Recordset 
    Dim db As DAO.Database 

    Set db = CurrentDb 

    Set qdf = db.QueryDefs("SQL_Group") 
    Set rst = qdf.OpenRecordset 
    Set rst_Groups = db.OpenRecordset("Group") 

    With rst_Groups 
     If Not (.BOF And .EOF) Then 
      .MoveFirst 
      Do While Not .EOF 
       rst.Filter = "GroupName = '" & rst_Groups.Fields("GroupName") & "'" 
       Set rst_Filtered = rst.OpenRecordset 
       With rst_Filtered 
        If Not (.BOF And .EOF) Then 
         .MoveFirst 
         Do While Not .EOF 
          Debug.Print .Fields("GroupName") & " : " & .Fields("PostCode") 
          .MoveNext 
         Loop 
        End If 
        .Close 
       End With 
       .MoveNext 
      Loop 
     End If 
     .Close 
    End With 

    Set rst_Filtered = Nothing 
    Set rst = Nothing 
    Set rst_Groups = Nothing 

End Sub 
+0

감사합니다. 그것은 레코드를 휘젓다에 잘 작동하고 나는 그것이 관련 이름과 SQL 문자열로 쿼리를 만들 수 있도록 코드를 변경할 수있었습니다. –

관련 문제