Juni 24, 2021, 21:36:05

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Bekomme Script nicht zum Laufen

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

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

irgendwie ist das Chaos...  Warum jetzt andere Abfragen, Feldnamen usw.??

strWhere = strSQL & " WHERE ObjektNr = '" & rs![ObjektNr] & "' and Anreisetag = " & Format(rs![Anreisetag],"\#yyyy-mm-dd\#")

und die Openreport-Sequenz ändern wie beschrieben!

martenk

Lieben Dank für deine Mühe

wenn ich es so ausführe, dann kommt ein Meldungsfenster am Ende

"Möchten Sie am Entwurf von Bericht vorgenommene Änderungen speichern"

PhilS

Mai 17, 2021, 16:43:17 #17 Letzte Bearbeitung: Mai 17, 2021, 19:47:08 von PhilS
Das kommt daher, dass du den Bericht im Entwurf öffnest und änderst.
Die Nachfrage kannst du wie folgt verhindern:
DoCmd.Close acReport, "AbrechnungEigentuemer", acSaveNo
Aber wäre es nicht sinnvoller, einfach nur die Where-Condition bei DoCmd.OpenReport an den Report zu übergeben, und gar nicht am Entwurf herumzufummeln?
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

was müsste ich dann ändern?

Versuche gerade anhand dieses BSP die Logik zu verstehen


martenk

okay - gemacht - ich habe nun noch eine letzte Frage

ich muss nach dem jeweiligen Ausdruck des Berichts im Feld Reservierung zu dem Objekt und dem Anreisedatum im Feld abgerechnet das Druckdatum eintragen - könnt ihr mir vielleicht erklären, wie ich das zu machen habe

die Tab Reservierung sieht im Grunde so aus

Objekt-Nr___Anreise____Abreise____........abgerechnet


DF6GL

Mai 17, 2021, 18:56:20 #21 Letzte Bearbeitung: Mai 18, 2021, 10:27:37 von DF6GL
Hallo,

wenn "Abgerechnet" als Feld in der (aktualisierbaren) Abfrage "AbfrageEigentuemer1" enthalten ist:

Zitat von: undefinedSet rs = db.OpenRecordset(strSQL, dbOpenDynaset)
    Do Until rs.EOF
        strDatei = "C:\Rechnung\" & rs.Fields("ObjektNr").Value & ".pdf"
 
        strWhere =  " ObjektNr = " & rs![ObjektNr] & " and Anreisetag = " & rs![Anreisetag]

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


       rs.Edit
          rs!abgerechnet = Date
        rs.Update

        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing

    Set db = Nothing


Ansonsten:
.
.

Currentdb.Execute "Update tabReservierung Set abgerechnet = Date() Where ObjektNr = '" & rs![ObjektNr] & "'"
.
.

martenk

Mai 17, 2021, 19:45:22 #22 Letzte Bearbeitung: Mai 17, 2021, 20:13:17 von martenk
lieben Dank -

PhilS

Zitat von: martenk am Mai 17, 2021, 19:45:22Operation wird für diesen Objekttyp nicht unterstützt

rs.Edit wird markiert
Das hast du vermutlich nicht alle der rot markierten Änderungen von DF6GL übernommen. Die Änderung des Recordset-Typs wäre die naheliegendste.
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

Ich habe doch noch eine Frage zu der query

ich müsste in meiner query Objekt-Nr stehen haben, weil in vielen Tabellen damit gearbeitet wird

wenn ich es so verwende
strDatei = "C:\Rechnung\" & rs.Fields("Objekt-Nr").Value & ".pdf"
        strWhere = strSQL & " WHERE Objekt-Nr = '" & rs![Objekt-Nr] & "' and Anreisetag = " & Format(rs![Anreisetag], "\#yyyy-mm-dd\#")

kommt während des durchlaufens Meldungsfenster 1. Objekt 2. Nr.

wie kann ich Objekt-Nr richtig in die query einsetzen

PhilS

Feld- und Tabellennamen mit Sonderzeichen müssen in eckige Klammern eingeschlossen werden.
Das siehst du in deinem obigen Beispiel bereits für rs![Objekt-Nr].
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

klappt leider nicht

    Do Until rs.EOF
        strDatei = "C:\Rechnung\" & rs.Fields("Objekt-Nr").Value & ".pdf"
        strWhere = strSQL & " WHERE Objekt-Nr = '" & rs![Objekt-Nr] & "' and Anreisetag = " & Format(rs![Anreisetag], "\#yyyy-mm-dd\#")
        DoCmd.OpenReport "AbrechnungEigentuemer", acViewDesign
        Reports![AbrechnungEigentuemer].RecordSource = strWhere
        DoCmd.OpenReport "AbrechnungEigentuemer", acViewPreview, , , acHidden
        DoCmd.OutputTo acOutputReport, "AbrechnungEigentuemer", acFormatPDF, strDatei, False
        DoCmd.Close acReport, "AbrechnungEigentuemer", acSaveNo
         rs.Edit
          rs!abgerechnet = True
          rs!abgerechnetam = Date
        rs.Update
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing

    Set db = Nothing

PhilS

Zitat von: martenk am Mai 18, 2021, 10:20:19klappt leider nicht

    Do Until rs.EOF
        strDatei = "C:\Rechnung\" & rs.Fields("Objekt-Nr").Value & ".pdf"
        strWhere = strSQL & " WHERE Objekt-Nr = '" & rs![Objekt-Nr] & "' and Anreisetag = " & Format(rs![Anreisetag], "\#yyyy-mm-dd\#")
Ich habe eine Idee, woran das liegen könnte. ;-) ^^^^
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

:-)

hattest Recht - nun habe ich ein Problem

die query bezieht sich ja auf eine Abfrage

wenn die Routine zu rs.Edit kommt - bekommeich die Meldung
Aktualisieren nicht möglich Objekt oder Datenbank ist schreibgeschützt

PhilS

Zitat von: martenk am Mai 18, 2021, 11:49:22die query bezieht sich ja auf eine Abfrage

wenn die Routine zu rs.Edit kommt - bekommeich die Meldung
Aktualisieren nicht möglich Objekt oder Datenbank ist schreibgeschützt
Brauchst du für das Recordset wirklich diese Abfrage? "A_RE_GESAMT" kling recht umfangreich, vielleicht tut es auch eine deutlich vereinfachte Fassung.
Wenn nicht, kannst du die Kennzeichen Abgerechnet/Am auch per Aktualisierungsabfrage auf die Tabelle setzen.
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!