Per VBA Daten an Bericht weitergeben und Vorschau öffnen!

fonds

Mitglied
Habe folgenden VBA-Code und möchte dass nicht die Abfrage anzeigt wird, sondern dass die Daten an einen Bericht weitergegeben werden und dieser in der Vorschau erscheint.
Wie kann ich das Problem lösen? Vielen Dank!

Option Compare Database

Option Explicit

Private Sub Befehl0_Click()
Dim strSQL As String
Dim strC1 As String, strC2 As String
Dim Anz&, I&, tmp As Variant

strSQL = "SELECT TOP 10 [Sales Zahlen].Fondsname, Sum([Sales Zahlen].AuM_) AS SummevonAuM_, Sum([Sales Zahlen].NetflowsMTD) AS SummevonNetflowsMTD, Sum([Sales Zahlen].NetflowsYTD) AS SummevonNetflowsYTD FROM [Sales Zahlen]"
With Me.Liste0
Anz = .ItemsSelected.Count
If Anz <> 0 And Anz < .ListCount Then
For Each tmp In .ItemsSelected
strC1 = strC1 & "Country='" & .ItemData(tmp) & "' or "
Next tmp
strC1 = Left$(strC1, Len(strC1) - 4)
End If
End With
With Me.Liste2
Anz = .ItemsSelected.Count
If Anz <> 0 And Anz < .ListCount Then
For Each tmp In .ItemsSelected
strC2 = strC2 & "Konzern='" & .ItemData(tmp) & "' or "
Next tmp
strC2 = Left$(strC2, Len(strC2) - 4)
End If
End With
If strC1 <> "" And strC2 <> "" Then
strSQL = strSQL & " where (" & strC1 & ") and (" & strC2 & ")"
ElseIf strC1 <> "" Then
strSQL = strSQL & " where " & strC1
ElseIf strC2 <> "" Then
strSQL = strSQL & " where " & strC2
End If
strSQL = strSQL & " GROUP BY [Sales Zahlen].Fondsname ORDER BY Sum([Sales Zahlen].AuM_) DESC;"
'MsgBox strSQL
CurrentDb.QueryDefs("Abfrage1").SQL = strSQL
DoCmd.OpenQuery "Abfrage1", acViewNormal

End Sub
 
Hy Fonds

Viel Code :-) damit kann ich eh nichts anfangen, brauche dazu immer was zu sehen um zu drehen.

Mein Tipp:

DoCmd.OpenQuery "Abfrage1", acViewNormal sollte man umändern in Öffne Bericht.(siehe unten)

Der Bericht und dessen Inhalt hat ja die Daten der Abfrage 1 und somit müsste es klappen.Und man kann dies im Code (siehe unten) nochmals angeben.

DoCmd.OpenReport "DEIN BERICHT NAME ", acPreview, "Abfrage1", ""

Greatz RavelinePower
 
Hat geklappt. Wenn ich nun versuche, eine weitere Abfage zu intergrieren mit folgendem Ansatz, bekomme ich Probleme. Wie kann ich weitere Abfrage am sinnvollsten hinzufügen? Alle Abfragen werden über Unterberichte dann in einen Masterbericht zusammengefügt! Besten Dank im Voraus?

Option Compare Database

Option Explicit

Private Sub Befehl0_Click()
Dim strSQL As String
Dim strC1 As String, strC2 As String
Dim Anz&, I&, tmp As Variant

strSQL = "SELECT TOP 10 [Sales Zahlen].Fondsname, Sum([Sales Zahlen].AuM_) AS SummevonAuM_, Sum([Sales Zahlen].NetflowsMTD) AS SummevonNetflowsMTD, Sum([Sales Zahlen].NetflowsYTD) AS SummevonNetflowsYTD FROM [Sales Zahlen]"
With Me.Liste0
Anz = .ItemsSelected.Count
If Anz <> 0 And Anz < .ListCount Then
For Each tmp In .ItemsSelected
strC1 = strC1 & "Country='" & .ItemData(tmp) & "' or "
Next tmp
strC1 = Left$(strC1, Len(strC1) - 4)
End If
End With
With Me.Liste2
Anz = .ItemsSelected.Count
If Anz <> 0 And Anz < .ListCount Then
For Each tmp In .ItemsSelected
strC2 = strC2 & "Konzern='" & .ItemData(tmp) & "' or "
Next tmp
strC2 = Left$(strC2, Len(strC2) - 4)
End If
End With
If strC1 <> "" And strC2 <> "" Then
strSQL = strSQL & " where (" & strC1 & ") and (" & strC2 & ")"
ElseIf strC1 <> "" Then
strSQL = strSQL & " where " & strC1
ElseIf strC2 <> "" Then
strSQL = strSQL & " where " & strC2
End If
strSQL = strSQL & " GROUP BY [Sales Zahlen].Fondsname ORDER BY Sum([Sales Zahlen].AuM_) DESC;"
'MsgBox strSQL
CurrentDb.QueryDefs("Abfrage1").SQL = strSQL



strSQL = "SELECT TOP 10 [Sales Zahlen].Fondsname, Sum([Sales Zahlen].AuM_) AS SummevonAuM_, Sum([Sales Zahlen].NetflowsMTD) AS SummevonNetflowsMTD, Sum([Sales Zahlen].NetflowsYTD) AS SummevonNetflowsYTD FROM [Sales Zahlen]"
With Me.Liste0
Anz = .ItemsSelected.Count
If Anz <> 0 And Anz < .ListCount Then
For Each tmp In .ItemsSelected
strC1 = strC1 & "Country='" & .ItemData(tmp) & "' or "
Next tmp
strC1 = Left$(strC1, Len(strC1) - 4)
End If
End With
With Me.Liste2
Anz = .ItemsSelected.Count
If Anz <> 0 And Anz < .ListCount Then
For Each tmp In .ItemsSelected
strC2 = strC2 & "Konzern='" & .ItemData(tmp) & "' or "
Next tmp
strC2 = Left$(strC2, Len(strC2) - 4)
End If
End With
If strC1 <> "" And strC2 <> "" Then
strSQL = strSQL & " where (" & strC1 & ") and (" & strC2 & ")"
ElseIf strC1 <> "" Then
strSQL = strSQL & " where " & strC1
ElseIf strC2 <> "" Then
strSQL = strSQL & " where " & strC2
End If
strSQL = strSQL & " GROUP BY [Sales Zahlen].Fondsname ORDER BY Sum([Sales Zahlen].NetflowsMTD) DESC;"
'MsgBox strSQL
CurrentDb.QueryDefs("Abfrage2").SQL = strSQL



DoCmd.OpenReport "Master", acViewPreview


End Sub
 

Neue Beiträge

Zurück