Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: trkiller am November 15, 2011, 13:50:22

Titel: Bericht aus Formular erstellen
Beitrag von: trkiller am November 15, 2011, 13:50:22
Hallo
ich bräuchte mal dringend Hilfe in Sachen Berichte.
Ich habe ein Datenbanksystem zusammengestellt mit Access 2003 das ein Ticketsystem sein soll. Diese funktioniert wunderbar, bis ins kleinste Deteil. Alles was ich haben will habe ich per VBA programmiert und erstellt.
Ich dachte mir ich mache noch eine Auswertung, wieviele Aufträge in einem Monat bearbeitet wurden, das funktioniert auch wunderbar jedoch will ich genau jetzt ein Bericht erstellen aus den gefillterten Daten.
Wie kann ich das machen, sitze schon seit paar Stunden dran und komme einfach nicht darauf.
Kurze Erläuterung:
Ich habe eine Abfrage mit qrytickets in dem alle meine Aufträge stehen.
Im Formular ist ein Unterformular, das die ganzen Tickets beinhaltet, diese Ändern sich sobald ich Monat und Jahr auswähle.
Jetzt wurde gefiltert, anschließend will ich ein Button drücken, das mir ein Bericht anzeigt mit den ganzen Daten, damit ich es archivieren kann.

Hoffe ich konnte mich gut ausdrücken, wenn nicht sorry
Titel: Re: Bericht aus Formular erstellen
Beitrag von: MzKlMu am November 15, 2011, 14:18:03
Hallo,
Du musst dem Bericht die gleichen Kriterien mitgeben wie für das Formular.
Wie filterst Du das Formular?

Zitatdas mir ein Bericht anzeigt mit den ganzen Daten, damit ich es archivieren kann.
Mit einem Bericht archivieren, wie soll das gehen?
Und warum archivieren?
Archivieren ist im Regelfall in einer DB nicht notwendig, da man die Daten jederzeit neu zusammenstellen kann.
Titel: Re: Bericht aus Formular erstellen
Beitrag von: trkiller am November 15, 2011, 15:01:34
Bis jetzt habe ich so gefiltert:

    Dim sql As String
    Dim rs As New ADODB.Recordset
    If (DatMonat.ListIndex = -1) Then
        MsgBox ("Bitte Monat auswählen")
    ElseIf (DatJahr.ListIndex = -1) Then
        MsgBox ("Bitte Jahr auswählen")
    Else
        sql = "SELECT * FROM qryfiltern Where Format(Datum, 'mm') = " & Me.DatMonat & " and Format(Datum,'yyyy') = " & Me.DatJahr
        Set rs = CurrentProject.Connection.Execute(sql)
        Me.FrmDatum.Form.RecordSource = sql
    End If

Gut das mit mit der Archivierung könnte natürlich unnötig sein, da hast du recht
Titel: Re: Bericht aus Formular erstellen
Beitrag von: MzKlMu am November 15, 2011, 15:07:43
Hallo,
und wie rufst Du den Bericht auf?
Titel: Re: Bericht aus Formular erstellen
Beitrag von: trkiller am November 16, 2011, 08:59:25
Sorry konnte leider nicht früher antworten.
Also wenn ich auf meinem Button Drücke dann macht er das hier:(die Abfrage für ueber ist nur für testzwecke gewesen)

    ueber = "SELECT t1.ID, t2.Nachname, t2.Vorname, t2.USERID, t2.Abteilung, t1.Datum, t1.Problem, t4.Nachname, t4.Vorname, t3.Status, t1.Änderungsdatum FROM ((tblAuftraege AS t1 INNER JOIN tblMitarbeiter AS t2 ON t1.Mitarbeiter=t2.ID) INNER JOIN tblStatus AS t3 ON t1.Status=t3.ID) INNER JOIN tblBearbeiter AS t4 ON t1.Bearbeiter=t4.ID;"
    DoCmd.OpenReport "Auswertung", , , , , ueber

In meinem Bericht dann beim öffnen:

    strSQL = OpenArgs
    Me.RecordSource = strSQL

Ich mache ja in meinem Formular im Grunde genommen schon die Abfrage, sozusagen meine Filterung der Daten. Kann ich diese SQL Abfrage nicht direkt an meinem Bericht übergeben
Titel: Re: Bericht aus Formular erstellen
Beitrag von: Beaker s.a. am November 16, 2011, 22:20:07
Hallo trkiller,
ZitatIch mache ja in meinem Formular im Grunde genommen schon die Abfrage, sozusagen meine Filterung der Daten. Kann ich diese SQL Abfrage nicht direkt an meinem Bericht übergeben
Schau Dir mal DoCmd.OpenReport in der OH an, und beachte besonders den vierten Parameter (WhereCondition).
hth
gruss ekkehard
Titel: Re: Bericht aus Formular erstellen
Beitrag von: trkiller am November 17, 2011, 15:38:03
Danke für deine Hilfe

ich habe es jetzt anders gelöst, aber ähnlich, man ist morgends doch klüger als Abends :)
ich poste mal den Code, villeicht hat einer auch mal das selbe Problem

Meine eigentliche Abfrage:
Public Function filtern()
    Dim rs As New ADODB.Recordset
    Dim ueber As String
    If (DatMonat.ListIndex = -1) Then
        MsgBox ("Bitte Monat auswählen")
    ElseIf (DatJahr.ListIndex = -1) Then
        MsgBox ("Bitte Jahr auswählen")
    Else
        sql55 = "SELECT * FROM qryfiltern Where Format(Datum, 'mm') = " & Me.DatMonat & " and Format(Datum,'yyyy') = " & Me.DatJahr
        CurrentProject.Connection.Execute (sql55)
        Me.FrmDatum.Form.RecordSource = sql55
    End If
End Function

Übergabe an das Bericht
Private Sub Befehl14_Click()

    Dim ueber As String
   
    ueber = sql55
    DoCmd.OpenReport "Auswertung", acViewPreview, , , , ueber
    RunCommand acCmdPrint

End Sub

Das im Bericht
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = OpenArgs
   
End Sub
Titel: Re: Bericht aus Formular erstellen
Beitrag von: Beaker s.a. am November 17, 2011, 21:08:00
Hallo trkiller,
ZitatMe.FrmDatum.Form.RecordSource = sql55
Wenn Du hier schon das Formular filterst, kannst Du diese RecordSource doch direkt im Bericht verwenden:
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = Forms!DeinFormular.RecordSource
End Sub

Titel: Re: Bericht aus Formular erstellen
Beitrag von: trkiller am November 18, 2011, 10:59:12
Hi Beaker
so habe ich es auch versucht zu machen, jedoch hat das nicht geklappt oder ich habe es nicht hinbekommen deswegen habe ich das so gelöst