Juni 21, 2021, 03:22:53

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Bekomme Script nicht zum Laufen

Begonnen von martenk, Mai 17, 2021, 10:15:43

⏪ vorheriges - nächstes ⏩

martenk

Hallo Gemeinschaft,

bekomme nochfolgendes Script nicht zum Laufen

Beim Ausführen kommt

Fehler beim Kompilieren - Benutzerdefinierter Typ nicht definiert - er bleibt bei DIM db as DAO.Database hängen

habe über Verweise versucht die DAO 3,6 zu aktivieren - klappt nicht

Fehler beim Laden einer DLL




'-----------------------------------------------------------------
' Bericht ABR_01_Rechnung und Einzelaufstellung als PDF speichern
' Abfrage: A_RE_GESAMT
' Bericht: ABR_01_Rechnungen
' Ziel: C:\Rechnungen\[RE].pdf
'-----------------------------------------------------------------
Private Sub btnRE_EinzelDruck_Click()
Dim strSQL As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strDatei As String, strWhere as String

   Set db = CurrentDb
   strSQL = "SELECT * FROM [A_RE_GESAMT]"
   Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
   Do Until rs.EOF
      strDatei = "C:\Rechnung\" & rs.Fields("RE").Value & ".pdf"
      strWHERE = strSQL & " WHERE RE = " & rs!RE
      DoCmd.OpenReport "ABR_01_Rechnung", acViewDesign
      Reports!ABR_01_Rechnung.RecordSource = strWHERE
      DoCmd.OpenReport "ABR_01_Rechnung", acViewPreview, , , acHidden
      DoCmd.OutputTo acOutputReport, "ABR_01_Rechnung", acFormatPDF, strDatei, False
      DoCmd.Close acReport, "ABR_01_Rechnung"
      rs.MoveNext
   Loop
   rs.Close
   Set rs = Nothing

   Set db = Nothing

End Sub

DF6GL

Hallo,


Zitathabe über Verweise versucht die DAO 3,6 zu aktivieren - klappt nicht

Das musst Du aber zum "Klappen" bringen....


Ohne den Verweis geht es nicht.


Evtl. gibt es einen Installationsfehler beim Office-Paket.

Um welche Off-Version handelt es sich?

martenk


DF6GL

Hallo,

dann versuch zunächst, die Office-Installation zu reparieren (Programme und Features)

ebs17

Statt DAO 3.6 solltest Du eigentlich die MS Office Access Database Engine verwenden. Diese ist eine Erweiterung der alten Bibliothek für die Features, die ab Acc2007 gekommen sind (Anlagefelder, Datamacros u.a.). Für diese sollte eigentlich standardmäßig der Verweis gesetzt sein.

Ein doppelter Verweis macht sich wahrscheinlich auch nicht gut.
Mit freundlichem Glück Auf!

Eberhard

martenk

Mai 17, 2021, 12:15:27 #5 Letzte Bearbeitung: Mai 17, 2021, 12:42:25 von martenk
Hallo

lieben Dank für die Hilfe -

" MS Office Access Database Engine" -> was soll ich dann deiner Meinung nach machen

das komische ist, wenn ich eine neue Datenbank anlege, dann klappt es - ich kann nur nicht meine alts db komplett in eine neue db umbauen

DF6GL

Hallo,

ZitatStatt DAO 3.6 ... die MS Office Access Database Engine verwenden

eieieieiei,  der Reifegrad meines Schweizer Käses nimmt bedenkliche Ausmaße an... :'(


Zu tun ist:


Prüfen, ob in jedem(!) Modulkopf "Option Explicit" steht. Falls nicht, dies nachholen.
Alle Verweise "wegklicken", bei denen das möglich ist.  Danach Code kompilieren  und alle Fehler beheben.
Bei Hinweisen auf fehlende Verweise (--> "Benutzerdefinierter Typ nicht definiert ")  die entspr. Verweise wieder "anhaken". (Und Hinweis von Eberhard beachten!)



martenk

alles so gemacht wie du geschrieben hast - gleiches Problem

DF6GL

Hallo,

versuch noch dies:

Neue leere DB erstellen und alles aus der alten dort hinein kopieren.

martenk

Hi - gibt es da einen sinnigen Befehl um alles rüber zu bekommen -

PhilS

Zitat von: martenk am Mai 17, 2021, 13:40:43Hi - gibt es da einen sinnigen Befehl um alles rüber zu bekommen -
Nein, das machst du manuell über "Externe Daten" - "Importieren" ...

Zur Klarstellung mal die Frage: Wenn du einen Verweis auf "MS Office Access Database Engine" setzt, kommt "Fehler beim laden der DLL"?
Access DevTools - Find and Replace
Komfortables Suchen und Ersetzen in den Entwurfseigenschaften von Access-Objekten. In Abfragen, Formularen, Berichten und VBA-Code - Überall und rasend schnell!

martenk

lieben Dank für die Info - ja genau - dann kommt der Fehler

martenk

Mai 17, 2021, 14:53:07 #12 Letzte Bearbeitung: Mai 17, 2021, 14:58:46 von martenk
alles hinbekommen - lieben Dank meine Herren

nun habe ich ein Verständnis Problem

Im Moment geht das tool jeden datensatz durch und legt eine Datei an - nur sind in dieser Datei alle zu erstellenden Datensätze drin

ich vermute mal es liegt hier dran
strWhere = strSQL & " WHERE miete = " & rs![Miete]

mein eindeutiges Feld ist Objekt-Nr

wenn ich das anstelle miete eintrage, dann kommen noch Meldungsfenster Abfrage - wie pharse ich Objekt-Nr richtig

DF6GL

Mai 17, 2021, 15:13:42 #13 Letzte Bearbeitung: Mai 17, 2021, 15:27:04 von DF6GL
Hallo,


versuch es so:
.
.
.
      strDatei = "C:\Rechnung\" & rs.Fields("RE").Value & ".pdf"
      strWHERE = "RE = " & rs!RE

      DoCmd.OpenReport "ABR_01_Rechnung", acViewPreview, , strWhere, acHidden
      DoCmd.OutputTo acOutputReport, "ABR_01_Rechnung" , acFormatPDF, strDatei, False
      DoCmd.Close acReport, "ABR_01_Rechnung"
.
.
.



siehe auch :  https://www.youtube.com/watch?v=kQjfbAq3nAY

martenk

Mai 17, 2021, 15:44:07 #14 Letzte Bearbeitung: Mai 17, 2021, 16:18:41 von martenk
könnt ihr bitte noch einmal schauen

das ist die Tabelle

das das Coding
Private Sub Rechteck124_DblClick(Cancel As Integer)

Dim strSQL As String


Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strDatei As String, strWhere As String

    Set db = CurrentDb
    strSQL = "SELECT * FROM AbfrageEigentuemer1"
    Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
    Do Until rs.EOF
        strDatei = "C:\Rechnung\" & rs.Fields("ObjektNr").Value & ".pdf"
        strWhere = strSQL & " WHERE ObjektNr = " & rs![ObjektNr] & " and Anreisetag = " & rs![Anreisetag]
        DoCmd.OpenReport "AbrechnungEigentuemer", acViewDesign
        Reports![AbrechnungEigentuemer].RecordSource = strWhere
        DoCmd.OpenReport "AbrechnungEigentuemer", acViewPreview, , , acHidden
        DoCmd.OutputTo acOutputReport, "AbrechnungEigentuemer", acFormatPDF, strDatei, False
        DoCmd.Close acReport, "AbrechnungEigentuemer"
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing

    Set db = Nothing

End Sub


Tabelle Eigentuemer1

Anreisetag   Abreisetag   Miete   Name   ObjektNr
09.05.2021   16.05.2021   450   Schal   E13
24.04.2021   01.05.2021   567   Hegen   N7
03.04.2021   10.04.2021   617   Haroon   N4
03.04.2021   10.04.2021   425   Schal   E13
10.04.2021   22.04.2021   918   Sander   K16
03.04.2021   10.04.2021   483,55   Wes   A15
03.04.2021   10.04.2021   451,25   Hani   F12
25.04.2021   06.05.2021   831   Minsel    N1
24.04.2021   01.05.2021   459   Grigo   B2
03.04.2021   10.04.2021   558   Engel   D15
10.04.2021   17.04.2021   617   Haroon    N4
10.04.2021   17.04.2021   617   Sebasti   N2
01.05.2021   08.05.2021   425   Hei   K5
17.04.2021   01.05.2021   0   Althau   L18
01.05.2021   08.05.2021   459   Fuh   B4
27.03.2021   10.04.2021   850   Schulz   E6

den Bericht kann ich leider nicht mitsenden