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

Du bist als Gast eingelogt. ( Anmelden | Registrieren )
  • 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
  • Nicht genügend Speicher / Mehr Fenster können nich...
  • acimen04.04.15 18:13
       └ RE: Nicht genügend Speicher / Mehr Fenster könne... PeterDoering04.04.15 23:16
          └ RE: Nicht genügend Speicher / Mehr Fenster kön... acimen08.04.15 16:15
             └ RE: Nicht genügend Speicher / Mehr Fenster k... PeterDoering09.04.15 00:29
       └ RE: Nicht genügend Speicher / Mehr Fenster könne... sks12.04.15 19:19
  • Datenbank Größe
  • Greiff08.04.15 12:14
       └ RE: Datenbank Größe Karl Donaubauer08.04.15 12:44
          └ RE: Datenbank Größe Greiff08.04.15 22:25
             └ gelöst: Datenbank Größe Greiff09.04.15 23:43
  • Access Stammtisch München am 09.04.2015 (Do)
  • StefanWirrer08.04.15 14:04
  • unterschiedliches Verhalten Suchroutine in verschi...
  • Greiff21.12.13 19:41
       └ gelöst: unterschiedliches Verhalten Suchroutine ... Greiff07.04.15 14:25
  • Benutzeranmeldeinformationen bei ado-Connection du...
  • GerdM19.03.15 19:11
       └ RE: Benutzeranmeldeinformationen bei ado-Connect... jpa04.04.15 00:31
  • Inhalt löschen mit Abfrage
  • U92E30.03.15 10:10
       └ RE: Inhalt löschen mit Abfrage Karl Donaubauer30.03.15 17:41
  • Seitenansicht
  • dreho25.03.15 11:12
       └ RE: Seitenansicht Karl Donaubauer25.03.15 16:13
  • Abfrage mit Parametern gestalten ...
  • LKro197620.03.15 15:39
       └ RE: Abfrage mit Parametern gestalten ... Karl Donaubauer23.03.15 15:33
    Lorenz
    Gesendet: 15.04.15 13:22
    Betreff: RE: Anzahl summieren? (Lösung)


    Veteran

    Beiträge: 102
    100
    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: < 40 41 42 43 44 45 ... 46 47 48 49 50 51 52 ... >
    Suche in diesem Forum
    Druckfreundliche Version
    (Alle Cookies von dieser Seite löschen.)