Suche | Statistiken | Benutzerliste | Access-FAQ | Datenschutz Foren
donkarl Forum
donkarl Forum ->  Themen -> Access -> Diskussion ansehen

Du bist als Gast eingelogt. ( Anmelden | Registrieren )
  • Löschen bestätigen
  • Marzer07.06.15 16:49
       └ RE: Löschen bestätigen PeterDoering08.06.15 00:26
          └ RE: Löschen bestätigen Marzer08.06.15 11:15
       └ RE: Löschen bestätigen PhilS08.06.15 09:56
  • Erinnerung: 19. Access-Stammtisch Hannover am 20.0...
  • KlausWerther19.05.15 16:19
  • Bild in den Vordergrund
  • erwin12.05.15 17:45
       └ RE: Bild in den Vordergrund PhilS13.05.15 12:29
          └ RE: Bild in den Vordergrund erwin15.05.15 14:33
  • Access Kreuztabelle
  • jwiejuergen01.05.15 09:37
       └ RE: Access Kreuztabelle PeterDoering03.05.15 17:04
          └ RE: Access Kreuztabelle jwiejuergen07.05.15 12:02
  • Runtime Hyperlin in Textfeld einfügen
  • Tuermer04.05.15 14:21
       └ RE: Runtime Hyperlin in Textfeld einfügen PeterDoering04.05.15 15:40
          └ RE: Runtime Hyperlin in Textfeld einfügen Tuermer04.05.15 17:46
             └ RE: Runtime Hyperlin in Textfeld einfügen Karl Donaubauer05.05.15 16:34
  • Access Stammtisch München am 07.05.2015 (Do)
  • StefanWirrer04.05.15 16:40
  • Import mit einer csv-Datei, welche z.T. HMTL Felde...
  • ThomasKlarer29.04.15 16:53
       └ RE: Import mit einer csv-Datei, welche z.T. HMTL... PhilS30.04.15 14:42
  • Abfrage mit mehreren Artikelmerkmalen
  • tubenhuber16.04.15 11:18
       └ RE: Abfrage mit mehreren Artikelmerkmalen Jörg28.04.15 07:52
  • Frontend und Backend per VBA trennen
  • Jörg27.04.15 13:02
       └ RE: Frontend und Backend per VBA trennen PhilS27.04.15 13:49
          └ RE: Frontend und Backend per VBA trennen Jörg27.04.15 14:26
             └ RE: Frontend und Backend per VBA trennen PhilS27.04.15 15:32
                └ RE: Frontend und Backend per VBA trennen Jörg27.04.15 16:21
  • Bericht öffnen
  • deltapapa23.04.15 20:30
       └ RE: Bericht öffnen StefanWirrer24.04.15 12:24
       └ RE: Bericht öffnen PeterDoering24.04.15 22:17
          └ RE: Bericht öffnen deltapapa25.04.15 12:21
             └ RE: Bericht öffnen PeterDoering26.04.15 23:27
  • Button durch Funktion ausführen
  • Tuermer23.04.15 13:16
       └ RE: Button durch Funktion ausführen Karl Donaubauer23.04.15 13:48
          └ RE: Button durch Funktion ausführen Tuermer23.04.15 19:48
             └ RE: Button durch Funktion ausführen Karl Donaubauer23.04.15 23:44
  • Berichte mit mehreren,variablen PDFs erstellen
  • daniel_il23.04.15 14:47
  • Erstellung einer Datenbank auf Basis der Kontaktda...
  • User250923.04.15 14:15
  • SEPA-XML-Export
  • Lorenz15.04.15 13:28
       └ RE: SEPA-XML-Export Axelander22.04.15 12:42
  • Anzahl summieren?
  • Lorenz11.04.15 07:46
       └ RE: Anzahl summieren? Karl Donaubauer11.04.15 11:04
          └ RE: Anzahl summieren? Lorenz11.04.15 11:28
             └ RE: Anzahl summieren? Karl Donaubauer11.04.15 11:52
                └ RE: Anzahl summieren? Lorenz11.04.15 12:02
                   └ RE: Anzahl summieren? (Lösung) Lorenz15.04.15 13:22
    Lorenz
    Gesendet: 15.04.15 13:22
    Betreff: RE: Anzahl summieren? (Lösung)


    Regular

    Beiträge: 84
    252525
    Hallo an alle Mitleser,

    weil das immer blöd ist, wenn man so eine Frage gefunden hat und keine Lösung dabei steht, hier mein (voraussichtlich letzter) Entwicklungsstand: Es ist lösbar, indem ich beim Formatieren anhand der (an den Bericht übergebenen) 4 Gruppierungsfelder via VBA schnell den aktuellen Berichtsfilter hinzufüge und ein DSum() ausführe. Diesen Werte schreibe ich dann in die jeweilige Textbox. Der Code dazu steht weiter unten.

    In der lokalen Testdatenbank war das alles super und einigermaßen robust. Auf dem Echtsystem allerdings waren die Datenquellen einiges komplexer und der Server fühlbar langsamer, so dass der Bericht damit mehrere Minuten Erstellungszeit gebraucht hat und ich das gemeinsam mit dem Kunden für unbenutzbar erklärt habe.

    Wer so etwas trotzdem mal braucht, kann unten im Code forschen.

    tschö, Lorenz


    #################################################
    im Berichtsmodul (grpE... heißen die Gruppenkopf-Elemente der jeweiligen Ebene):

    Dim m_strFilter As String
    Dim m_strFeld01 As String
    Dim m_strFeld02 As String
    Dim m_strFeld03 As String
    Dim m_strFeld04 As String

    Private Sub Report_Open(Cancel As Integer)
    m_strFilter = "WHERE " & IIf(Me.FilterOn, Me.Filter & " AND ", "")
    m_strFeld01 = "fakturgtypIDRef"
    m_strFeld02 = "faktufirmaIDRef"
    m_strFeld03 = "faktuartikIDRef"
    m_strFeld04 = "faktuID"
    End Sub


    Private Sub grpE1_Format(Cancel As Integer, FormatCount As Integer)
    ZaehleFirmen Me.edtE01, ErzeugeSQL(Me, m_strFilter, m_strFeld01, m_strFeld02)
    End Sub

    Private Sub grpE2_Format(Cancel As Integer, FormatCount As Integer)
    ZaehleFirmen Me.edtE02, ErzeugeSQL(Me, m_strFilter, m_strFeld01, m_strFeld02, m_strFeld03)
    End Sub

    Private Sub grpE3_Format(Cancel As Integer, FormatCount As Integer)
    ZaehleFirmen Me.edtE03, ErzeugeSQL(Me, m_strFilter, m_strFeld01, m_strFeld02, m_strFeld03, m_strFeld04)
    End Sub



    #################################################
    in einem allgemeinen Modul dann die Funktionen:

    Sub ZaehleFirmen(edtEbene As TextBox, strSQL As String)
    Dim rcsX As DAO.Recordset

    If Left(UCase(strSQL), 6) = "SELECT" Then
    Set rcsX = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
    'Debug.Print strSQL
    rcsX.MoveLast
    edtEbene.Value = rcsX.RecordCount
    rcsX.Close
    Else
    edtEbene.Value = strSQL 'dann war es kein SQL, sondern direkt ein Wert!
    End If
    End Sub



    Function ErzeugeSQL(rptDieser As Report, strFilter As String, ParamArray varFelder() As Variant) As String
    Dim strSQL As String
    Dim intI As Integer
    Dim booUnterFirma As Boolean

    If varFelder(UBound(varFelder) - 1) = "faktufirmaIDRef" Then
    'dann ist es die Bank-Ebene, also 1 zurückgeben
    strSQL = "1"
    Else
    For intI = 0 To UBound(varFelder) - 2
    If varFelder(intI) = "faktufirmaIDRef" Then
    booUnterFirma = True 'dann ist es eine Ebene unterhalb einer Firmen-Ebene, dort dürfen keine Ergebnisse mehr ermittelt werden
    Exit For
    End If
    Next

    If booUnterFirma Then
    strSQL = "" 'dann kann es kein Ergebnis geben
    Else
    strSQL = "SELECT "

    For intI = 0 To UBound(varFelder)
    strSQL = strSQL & "[" & varFelder(intI) & "], "
    Next
    If Right(strSQL, 2) = ", " Then
    strSQL = Left(strSQL, Len(strSQL) - 2)
    End If

    strSQL = strSQL & " FROM [" & rptDieser.RecordSource & "] " & strFilter

    For intI = 0 To UBound(varFelder) - 1
    strSQL = strSQL & " [" & varFelder(intI) & "]=" & rptDieser.Controls(varFelder(intI)).Value & " AND "
    Next

    If Right(strSQL, 4) = "AND " Then
    strSQL = Left(strSQL, Len(strSQL) - 4)
    End If
    strSQL = strSQL & " GROUP BY "

    For intI = 0 To UBound(varFelder)
    strSQL = strSQL & "[" & varFelder(intI) & "], "
    Next
    If Right(strSQL, 2) = ", " Then
    strSQL = Left(strSQL, Len(strSQL) - 2)
    End If

    strSQL = strSQL & ";"
    End If
    End If

    ErzeugeSQL = strSQL
    End Function

    Top of the page Bottom of the page


    Seite: < 24 25 26 27 28 29 ... 30 31 32 33 34 35 36 ... >
    Suche in diesem Forum
    Druckfreundliche Version
    (Alle Cookies von dieser Seite löschen.)