Neuigkeiten:

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

Mobiles Hauptmenü

Bericht mit Filtern über Schaltfläche als PDF speichern, Dateiname aus Feldern

Begonnen von SvenSchulte, September 25, 2015, 08:07:07

⏪ vorheriges - nächstes ⏩

SvenSchulte

Hallo liebe Access-o-Mania Gemeinde,

ich habe eine kleines Problem.

Ich habe, basierend auf der Nordwind Datenbank, eine Angebotsdatenbank mit Artikelstamm erstellt.
Die Datenbank läuft mit Access 2010.

Klappt alles hervorragend, bis auf das abspeichern des Angebotes in einem bestimmten Ordner mit bestimmten Namen, der Name setzt sich aus Informationen aus dem Angebot zusammen.
Ich habe das jetzt folgendermaßen gelöst:

Nach dem der Benutzer alle benötigten eingabgen in das Eingabe Formular getätigt hat muss
er über eine Schaltfläche das Angebot als Bericht öffnen und in einem definierten Bereich, dem Berichtskopf, einmal klicken um das Angebot automatisch in einem vorgegebenen Ordner zu speichern, dann muss der Benutzer das Fenster wieder schließen.
Der Name der PDF Datei wird aus dem Firmennamen, der Angebotsnummer und dem Kürzel des Benutzers zusammengestellt und am liebsten auch die angebotenen Produkte aber das ist eine andere Baustelle :-), diese Informationen werden im Moment aus dem Bericht gezogen.

Mein Wunsch wäre es jetzt das der Benutzer nur eine Schaltfläche im Formular anklicken muss und der Rest ungesehen im Hintergund abläuft. Das bekomme ich auch hin, aber nur ohne diesen besonderen Dateinamen, ich weiß nicht wie ich das machen soll das sich dann die benötigten Daten aus den Tabellen gezogen werden.

Für den Dateinamen müssten aus der Tabelle Bestellungen der Firmenname und die Angebotsnummer kommen, der Kürzel müsste aus der Tabelle Personal kommen. Ich hatte schon die Idee diese informationen im Eingabeformular versteckt zu hinterlegen und diese dann abzurufen, das klappt aber nicht. Mein aktueller Code im Bericht sieht folgendermaßen:

Private Sub ReportHeader_Click()
DoCmd.OutputTo acOutputReport, "Rechnung", acFormatPDF, "\\Pfad\" & [Kundenname] & ", , " & Date & ", " & [JahrAng] & [Bestell-Nr] & [Position] & ".pdf"
End Sub

Wäre toll wenn jemand eine Idee hat wie ich das regeln kann.

Vielen Dank schon mal

Sven :-)

DF6GL

Hallo,

der Einsatz der Dlookup-Funktion  (siehe VBA-Hilfe) dürfte zum Ziel führen...

(wobei ich einen "Roman" als Dateinamen für eher kontraproduktiv halte und es möglicherweise beim Auftreten von (in Windows-Pfad/Dateinamen verbotenen) Sonderzeichen zu unangenehmen Abstürzen kommen kann).

SvenSchulte

Vielen dank, deine Antwort war sehr hilfreich.
Ich habe genau das erreicht was ich haben wollte, der Bericht wird automatisch gespeichert als PDF, perfekt.

Jetzt zu dem zweiten Problem, ich möchte gerne immer das mindestens ein Produkt aus dem Angebot im Dateinamen erscheint, folgendermaßen sieht die Tabelle Bestelldetails aus:








ID  BestellNr  ArtikelNr
1     10Artikel1
2     10Artikel6
3     10Artikel2
4     15Artikel3
5     20Artikel1
6     20Artikel4

Ich möchte jetzt immer den ersten Artikel eines Angebotes auslesen und im Dateinamen ablegen. Meine Idee wäre es eine Abfrage zu starten mit BestellNr und ArtikelNr und dann die doppelten BestellNr auszublenden, das bekomme ich so aber nicht hin. Der nächste Schritt wäre dann wieder die DLookUp Lösung.

Hast du da vielleicht auch dafür eine Idee?

Vielen dank schon mal :-)

Schöne Grüße

Sven



DF6GL

Hallo,

versteh nicht ganz...

Zitatimmer den ersten Artikel eines Angebotes

Wodurch kennzeichnet sich der "erste" Artikel?


ZitatAbfrage zu starten mit BestellNr und ArtikelNr und dann die doppelten BestellNr auszublenden

Das kann durch eine gruppierende Abfrage erreicht werden :

Select BestellNr, First(ArtikelNr) as ErsterArtikel from Bestelldetails group by BestellNr



Der nächste Schritt wäre dann wieder die DLookUp Lösung.

Dlookup (oder eine äquivalente Funktion) ist immer nötig, um einzelne Daten aus einer Tabelle/Abfrage zu "holen".

Zitatdas mindestens ein Produkt aus dem Angebot

Wo ist hier eine Verbindung/Referenz auf ein "Angebot"

Wenn es nicht auf ein bestimmtes Produkt ankommt, braucht gleich und ohne Weiteres nur die Dlookup-Funktion angewendet werden:

strArtikelNr= Dlookup("ArtikelNr","Bestelldetails","Bestellnr =" & Me!Bestellnr)