2017-12-06 3 views
0

Ich ziehe einen Bericht im Zugriff durch Schreiben einer Abfrage in VBA und es hat Beitritt von Tabellen. Das Problem besteht darin, dass der Bericht jetzt doppelte Werte in den Bericht zieht.Bericht ziehen doppelte Werte mit JOIN Zugriff

ReCrt1 = "SELECT TeamDetails_v1.vName 
      FROM TeamDetails_v1 
      LEFT JOIN Attendance ON TeamDetails_v1.vName = Attendance.Name 
      WHERE ([Attendance!Team] In ('" & Mylist & "')) 
       AND ([Attendance!Dates]>Forms!AttendanceSummary!DTPicker0) 
       AND ([Attendance!Dates]<Forms!AttendanceSummary!DTPicker6) 
       AND ([TeamDetails_v1.vEmployment_Status]='Active')" 
DoCmd.OpenReport "Monthly Report", acViewReport, , , , ReCrt1 

Die Zeilenumbrüche in SQL-Anweisung ist nicht im Code. Ich lege es für deine Bequemlichkeit dort hin.

Ich brauche den Bericht, um Namen aus der Tabelle "TeamDetails_v1" zu ziehen, die nur eindeutige Namenseinträge hat und "aktiv" in "vEmployment_Status" ist. Und ihre jeweilige Anzahl von Datensätzen (Zählungsformel wird im Bericht verwendet) in der Tabelle "Anwesenheit", wobei Daten zwischen den Datumsangaben der Datumsauswahlsteuerelemente liegen sollten. "Mylist" ist ein Array mit bestimmten Teams, die anhand eines Listenfelds gefiltert werden bilden.

Hier wird anstelle von einzelnen Namensdatensätzen von TeamDetails_v1 der Bericht eine Anzahl n derselben Daten abgerufen, wenn es eine Anzahl von Daten gibt. Ich habe nur ein einzelnes Textfeld im Bericht bereitgestellt und seine Steuerquelle wird als "TeamDetails_v1.vName" angegeben. Gibt es irgendwelche Probleme mit JOIN, das ich verwendete, oder ist es die Textbox Feldsteuerquelle?

Antwort

1

Haben Sie versucht, das Stichwort "Distinct" nach SELECT

ReCrt1 = "SELECT DISTINCT TeamDetails_v1.vName FROM TeamDetails_v1 LEFT JOIN Attendance ON TeamDetails_v1.vName = Attendance.Name 
    WHERE ([Attendance!Team] In ('" & Mylist & "')) And ([Attendance!Dates]>Forms!AttendanceSummary!DTPicker0) And 
    ([Attendance!Dates]<Forms!AttendanceSummary!DTPicker6) And ([TeamDetails_v1.vEmployment_Status]='Active')" 

     DoCmd.OpenReport "Monthly Report", acViewReport, , , , ReCrt1 
+0

setzen, die funktionierte. Vielen Dank. – srt