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 :-)
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).
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 | 10 | Artikel1 |
2 | 10 | Artikel6 |
3 | 10 | Artikel2 |
4 | 15 | Artikel3 |
5 | 20 | Artikel1 |
6 | 20 | Artikel4 |
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
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)