PDA

Vollständige Version anzeigen : Formular für Report / Parameterabfrage


Connie
28.12.2001, 14:31
Hallo zusammen,
ich habe einen report, der über eine Abfrage mehrere Parameter ausgeben soll (Beispiel: Welcher Kunde, welcher Artikel, welches Bestelldatum).
Nun werden natürlich beim Öffnen des Reports alle Parameter einzeln abgefragt. Ist nervig. Gibt es eine Möglichkeit, diese Parameter in einem Formular zu bündeln? Nach Möglichkeit in Listen- oder Kombifeldern, damit nicht allzu viele Tippfehler passieren?

Re
28.12.2001, 15:07
Du kannst ein ungebundenes Formular erzeugen.
Beliebig viele Kombifelder mit Deinen Tabelleninhalten füllen und in Deiner Abfrage auf diese Formularfelder Bezug nehmen

im Kriterium rechte Maustaste aufbauen
+ vor Formulare aufmachen
Formular auswählen
aus der Mitte Deine Formularfelder einfügen

Aufruf des Berichts durch Button

Gruß
Renate

Jochum Rainer
28.12.2001, 15:10
Hallo!

Ein Beispiel:
Formular(fo_vertrieb) mit 4 ungebundenen Kombinationsfeldern/Textfeldern
von datum bis datum
von kundenr bis kundenr
und zwei Button Druck Bericht und Exit
Der Benutzer gibt die gewünschten Daten ein.
Diese werden bei der Eingabe mit Plausiprüfungen auf Richtigkeit gecheckt.
Dazu gibt es eine Abfrage. In dieser Abfrage wird beim Kunden und beim Datum die ungebunden Textfelder als Kriterium hinterlegt.
Für diesen Fall:
Zwischen ([forms].[fo_vertrieb].[von kundennr]) Und ([forms].[fo_vertrieb].[bis kundennr])
und
Zwischen ([forms].[fo_vertrieb].[von Datum]) Und ([forms].[fo_vertrieb].[bis Datum])
Der Bericht, der im Formular aufgerufen wird bezieht sich auf diese Abfrage!

Hat mehrere Vorteile:
Du kannst die eingegeben Werte im Formular überprüfen und erst dann freigeben, wenn alles in Ordnung ist. Damit unterbindest du z.B. Fehlermeldungen bei der Abfrage oder leere Berichte.
Von der Optik sieht das besser aus, als die Parameterfenster von ACCES

Gruesse
Rainer Jochum

Connie
30.12.2001, 09:53
Moin Moin,
danke euch beiden sehr, klappt prima.
Rainer: Dein Tip hat's endgültig endgültig gebracht, das Layout ist wesentlich besser, anwenderfreundlicher, und Fehlermeldungen bei leeren Datensätzen etc. gibt's auch nicht mehr.
Geht auch noch Sahne obendrauf? Ich meine, kann man das ganze auch in Listenfelder mit Mehrfachauswahl packen? Das Listenfeld geht, ich kriege auch alles in ein Textfeld gepackt, aber eben alle Werte hintereinander. Hmmmmmm Ist aber nicht kriegsentscheidend, nur falls wer was weiß ...

A.S.
30.12.2001, 10:20
Hallo Connie,

hier findest Du <a href="http://www.downloads.access-help.de/LFLDDEMO.ZIP">eine Beispieldatenbank</a>.

In dieser wird demonstriert wie man Mehrfachauswahl-Listenfelder als Abfrageparameter über eine Funktion nutzbar macht.

Die Datenbank enthält 3 Tabellen, eine Abfrage, ein Formular und ein allgemeines Modul.

Tabellen:

1. tbl_Verkaeufer - IDs und Namen der Verkäufer
2. tbl_Produkte - IDs, Bezeichnungen und Preise der Produkte
3. tbl_Verkaufsmengen - VerkäuferID, ProduktID, Verkaufsdatum und Verkaufsmenge

Abfrage:

qry_Satzselektion

In diesem Query wird die Funktion "CheckVerkaeufer", welche im Modul hinterlegt ist, aufgerufen um für jeden Satz der tbl_Verkaufsmengen zu prüfen ob der Verkäufer auf dem Formular selektiert wurde

Formular:

frmVerkaeufer_waehlen

Hier wird in einem Listenfeld mit Mehrfachselektion (Stufe 1) bestimmt welche Verkäufer für die Abfrage heranzuziehen sind. Über den Button "Abfrage öffnen ...." wird die Abfrage geöffnet, welche die Daten für die Weiterverarbeitung bereitstellt. Hierzu kann zum Beispiel die von Dir gewünschte Kreuztabellenabfrage dienen.

Modul:

mdl_CheckVerkaeufer

In diesem Modul ist die "Public Function" CheckVerkaeufer hinterlegt.
Mittels dieser Funktion wird die .ItemsSelected-Auflistung des Listenfelds im Formular durchlaufen und geprüft ob die übergebene VerkäuferID zu den ausgewählten gehört.

Re
30.12.2001, 12:39
Hallo Arno,

Hier findet sich leider keine Beispieldatenbank :-(

Ich finde es auch super, wenn man eine Reaktion auf seinen Tip / Anfrage erhält. Egal ob positiv oder negativ

Ich fände es gut, wenn man eine email erhielte, wenn auf die eigenen Antwort wieder eine Antwort eingegangen ist.
(Siehe spotlight)

Viele Grüße
Renate

A.S.
30.12.2001, 18:41
Hallo Renate,

der Link sollte jetzt funktionieren, habe ihn korrigiert...

Sorry, hatte statt ".ZIP" -> ".Zip" geschrieben und das lüppt nun mal leider nicht.

Eine Benachrichtigung ist hier - im Moment - nur für den Ersteller des Beitrages möglich. Der Helfer kann derzeit noch keine Benachrichtigung aktivieren. Wir hatten es schon einmal drin, wegen der hohen Serverlast ging es damals aber nicht. Da wir jetzt mit dem Forum auf einem eigenen Server liegen, werden wir 'mal schauen ob es machbar ist.

------------------
HTH

Arno

Re
30.12.2001, 18:55
Hallo Arno,

danke jetzt klappt's

Renate

Connie
30.12.2001, 23:27
Jetzt habe ich ein schlechtes Gewissen, weil ich euch so viel Arbeit gemacht habe... Jedenfalls bedanke ich mich bei allen Beteiligten sehr für die Hilfestellungen.
Leider bin ich jetzt nicht mehr zum Ausprobieren gekommen, falls es noch Probleme geben sollte, melde ich mich. (Bin leider nicht so fit in Access, ich übe noch).
Ich wünsche euch schonmal einen guten Rutsch und ein schönes neues Jahr!

Connie
04.01.2002, 11:31
Moin Moin,
ich konnte leider erst jetzt an der DB weiterarbeiten und bitte um Entschuldigung für die Verzögerung. Nun hier mein Erfahrungsbericht:
Ich war äußerst angenehm überrascht, eine Muster-DB zu bekommen, damit hatte ich nun wirklich nicht gerechnet! Es gab dann nur noch ein kleines Problem mit meiner Abfrage. Die Abfrage, die die Grundlage für den Report bildet, stammt aus mehreren Tabellen und enthält auch noch einige berechnete Felder. Beim Öffnen hatte ich daher entsprechende Fehlermeldungen, weil das Feld, das als „Suchkriterium“ im Formular dient, gleichzeitig die ID ist, über die die Tabellen verknüft sind. (So meine Vermutung). Ich habe dann kurzentschlossen aus dieser Abfrage eine Unterabfrage erstellt, so dass ich nur noch ein Herkunftsobjekt für Bericht und Formular habe. Und jetzt läuft es prima.
Vielen vielen Dank noch einmal für die Super-Hilfestellung!
<img src="graemlins/top.gif" border="0" alt="[Finger hoch]" />