Access Bericht Öffnen

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von schnibli.

    Access Bericht Öffnen

    Hallo Miteinander.

    Da man mit Visual Basic keine gute Berichte erstellen kann (meines Wissen nach) bei Vorschlägen bitte melden.
    möchte ich von Visual Basic her einen Access Bericht öffnen.
    Wenn es geht würde ich gerne den Bericht öffnen dieser als Pdf drucken und das pdf anschliessend öffnen. (ab besten ohne das der user mekt, das Access geöffnet wurde.

    gibt es irgend weine Lösung für mein Problem.

    gruss
    Access ist eine Software zur Erstellung von Datenbanken, zwar lokale Datenbanken, aber trotzdem Datenbanken.
    Damit kann man keinen "Bericht" machen.
    Was genau möchtest du denn bezwecken? Bzw. wie sehen die Daten aus? Was hast du damit vor?
    Etwas mehr Informationen wären hilfreich.

    AliveDevil schrieb:

    Access ist eine Software zur Erstellung von Datenbanken, zwar lokale Datenbanken, aber trotzdem Datenbanken.
    Damit kann man keinen "Bericht" machen.
    Was genau möchtest du denn bezwecken? Bzw. wie sehen die Daten aus? Was hast du damit vor?
    Etwas mehr Informationen wären hilfreich.
    Ich kann doch in Access Tabellen erstellen, mit den Daten der Tabellen eine Abfrage und diese Abfrage in ein Formular laden und anschliessend in ein Bericht....

    Ich möchte die Daten eines Datagridview ausdrucken. Das ist jedoch nur die hälfte, da ich noch Daten aus einer anderen Tabelle auflisten möchte....

    kennst du eine Host für Bilder, dann könnte ich meinen Access Bericht mal hochladen.
    Du hast ne Datenbank..dadrin die Tabelle:

    Quellcode

    1. S/ZS1 | S2
    2. Z1 1 | 4
    3. Z2 2 | 5

    Und...das willst du nun ausdrucken?
    Dazu dann auch noch ne andere Tabelle dazu drucken?

    Machs dir einfach: erstell ne HTML-Seite, mit Tabellen, ja is kacke, geht aber anders nicht schnell :P.
    Dann schreib dir ne Funktion, die Zeile für Zeile durchgeht und dann jede Spalte in ein neues Feld legt.

    AliveDevil schrieb:

    Du hast ne Datenbank..dadrin die Tabelle:

    Quellcode

    1. S/ZS1 | S2
    2. Z1 1 | 4
    3. Z2 2 | 5

    Und...das willst du nun ausdrucken?
    Dazu dann auch noch ne andere Tabelle dazu drucken?

    Machs dir einfach: erstell ne HTML-Seite, mit Tabellen, ja is kacke, geht aber anders nicht schnell :P.
    Dann schreib dir ne Funktion, die Zeile für Zeile durchgeht und dann jede Spalte in ein neues Feld legt.
    So Sieht mein Bericht in Access Aus:




    ist es möglich mit deiner Variante sowas hinzubekommen?


    gruss
    ja ist es. Das Problem dabei ist, dass das Layout so "Wahllos", sage ich mal, ist.
    Da kann man sich sicherlich was zusammenbasteln, aber dafür müsste jemand das machen.
    Außerdem ist "Vollzitieren" nicht erlaubt.
    Aber was du machen kannst:

    HTML-Quellcode

    1. <html>
    2. <body>
    3. <p><b>Bestellung</b></p>
    4. <table name="Lieferatn?">
    5. <tr>
    6. <td>Kundennummer: $kundennummer</td>
    7. </tr>
    8. <tr>
    9. <td>Tel.: $telefon</td>
    10. </tr>
    11. <tr>
    12. <td>Fax.: $fax</td>
    13. </tr>
    14. <tr>
    15. <td>Mail.: $mail</td>
    16. </tr>
    17. </table>
    18. <table name="eigene">
    19. <!-- hier das gleich..aber mit den Feldern die du brauchst-->
    20. </table>
    21. <table name="waren">
    22. <th>
    23. <!-- hier die Header als <td> reinbauen -->
    24. </th>
    25. $tableContent
    26. </table>
    27. <!-- weiterer Text -->
    28. </body>
    29. </html>

    Peinigt mich dafür bitte nicht!
    Du musst noch einen <head>-Tag einbauen und das Design schreiben, aber das solltest du schaffen.
    Außerdem musst du alles mit einem Dollar-Zeichen vorher per Code ersetzen. (.Replace(string, string))
    Wenn du das dann hast, brauchst du nurnoch das HTML-Dokument zu drucken. Fertig ists.
    Bei "$tableContent" musst du die Werte aus deiner Tabelle spaltenweise auslesen und eintragen.
    Ich denke, er meint die komfortable Möglichekeit, in Access Reports zu erstellen, und Access-Daten damit zu präsentieren.
    Das geht durchaus aus VB .NET heraus:

    VB.NET-Quellcode

    1. Public Sub ShowReport(ByVal sDBPath As String, ByVal sReportName As String, ByVal sWhereCondition As String, ByVal sOpenArgs As String)
    2. oAccess = New Microsoft.Office.Interop.Access.ApplicationClass()
    3. If Not oAccess.Visible Then oAccess.Visible = True
    4. Try
    5. oAccess.OpenCurrentDatabase(sDBPath, Exclusive:=False)
    6. oAccess.DoCmd.OpenReport(ReportName:=sReportName, _
    7. View:=Microsoft.Office.Interop.Access.AcView.acViewPreview, _
    8. WhereCondition:=sWhereCondition, _
    9. OpenArgs:=sOpenArgs)
    10. oAccess.RunCommand(Microsoft.Office.Interop.Access.AcCommand.acCmdFitToWindow)
    11. Catch ex As Exception
    12. MsgBox(ex.Message)
    13. Finally
    14. 'oAccess.CloseCurrentDatabase()
    15. 'oAccess.Quit()
    16. End Try
    17. End Sub

    Dafür müssen als Verweis eingebunden werden:
    • Microsoft Visual Basic for Applications Extensibility 5.3
    • Microsoft Access 14.0 Object Library
    • Microsoft Office 14.0 Access database engine Object Library
    • Microsoft ActiveX Data Objects 2.5 Library

    Im Access-Report selbst werden dann im entsprechenden Ereignis, z.B. Report_Open die übergebenen Parameter ausgewertet, z.B:

    Quellcode

    1. Private Sub Report_Open(Cancel As Integer)
    2. If Not IsNull(Me.OpenArgs) Then
    3. ...
    4. End If
    Hallo,

    ich habe dein Code auf einen Button gesetzt und die Verweise angeklickt,
    jedoch finde ich den Verweis:
    Microsoft Office 14.0 Access database engine Object Library

    nicht .

    ich habe nur den
    Microsoft Office 12.0 Access database engine Object Library

    gefunden.

    momentan sehr vieles von dem code noch rot unterschrichen...
    VB.Net hat auch Reporting-Unterstützung. Inne Vollversion kann man ein Reporting-Projekt erstellen. Inne Express weißichnicht, hab ma wo gelesen, man müsse tricksen.

    Ich bin aber mit dem .Net-Reporting-Kram auch noch nicht weiter, als dassich Dataset-Tabellen und n bischen was ausdrucken könnte.

    schnibli schrieb:

    Ist es möglich das wenn ich access 2007 habe das ich dann nicht mit der
    Microsoft Access 14.0 Object Library
    Microsoft Office 14.0 Access database engine Object Library
    arbeiten kann?

    Du brauchst natürlich ein installiertes Microsoft Office mit Access.
    Ja klar, die 14.0 bezieht sich auf Office 2010. Es funktioniert aber genausogut mit den 12er Versionen von Office 2007, ersetze einfach die Namen der einzubindenden Verweise mit den von Office 2007
    Okey, ich habe das Problem das mir sehr viele bereiche rot gekenzeichnet werden.

    zb. oAccess = New Microsoft.Office.Interop.Access.ApplicationClass()

    eigentlich alles was mit oAccess zu tun hat :s

    gruss
    Hallo Danke erstmals! hab jetz

    Dim oAccess As Access.Application
    "eingebunden" nun ist vieles nicht mehr rot, nurnoch

    Dim oAccess As Access.Application
    oAccess = New Microsoft.Office.Interop.Access.ApplicationClass()
    Das Fett gedruckte


    Kann es sein, dass ich dies:

    oAccess = New Microsoft.Office.Interop.Access.ApplicationClass()
    mit
    oAccess = New Microsoft.Office.Interop.Access.Application

    ersetzen muss?
    Als Allererstes einfügen:
    Imports Microsoft.Office.Interop

    Und ich schlage vor, Du beschäftigst Dich dann doch intensivst mit den VB-Grundlagen, so Deatilliertes gibt es nur, weil Ostern ist ...