PDA

Vollständige Version anzeigen : bestehende Abfrage per VBA anpassen


hollmeys
17.01.2003, 09:31
Guten Morgen!

Kann ich eine bestehende Abfrage per VBA weiter anpassen (mit where-Bedingung einschränken)?

Meine Idee ist den Anwendern einer AC97-DB unter WinNT bestimmte Standardberichte zur Verfügung zu stellen, deren Inhalt formulargesteuert weiter eingeschränkt werden kann. Die fertigen Berichte und Unterberichte greifen alle auf die selbe Basisabfrage zu.

Jemand eine Idee?

Danke
sonnigen Tag noch
Stephan

horse79
17.01.2003, 09:33
Hi,

dies ist kein Problem. Wechsel im Abfrage-Editor in die SQL-Ansicht, kopier Dir den SQL. Pass den Where-Teil gemäß deinen Feldern im Formular an und ändere anschliesend die Datenherkunft des Berichtes in den neu generierten SQL-String.

HTH

Schefti
17.01.2003, 10:00
Moin,

brauchst Du gar nicht.

Beim Befehl docmd.openreport kannst du direkt eine Filterbedingung angeben.

cu

hollmeys
17.01.2003, 10:00
Hallo HTH,

bin gerade dabei, deinen Vorschlag zu testen. Sieht ganz gut aus.

Nur im Fall von Unterberichten bekommen ist den Hinweis/die Fehlermeldung, dass ich die Datenherkunft nicht ändern kann, wenn der Unterbericht nicht geöffnet ist.

Ich habe die Änderung in die Report_Open Eigenschaft des Hauptberichtes eingetragen. Gibt es hierfür eine bessere Stelle?

Stephan

horse79
17.01.2003, 10:06
Hi,

nimm mal die Eigenschaft beim Formatieren des Bereiches, in dem Dein Unterbereicht steht. Evtl. mußt Du die Unterberichte anderes ansprechen, da diese ja ein Steuerelement sind, analog Unterformulare. forms!Hauptform!Uform.Form.RecordSource nur halt eben für Berichte.

hollmeys
17.01.2003, 11:09
Hi,

passt leider alles nicht so richtig. Die recordsource-Eigenschaft läßt sich nicht so einfach aus dem Hauptbericht den Unterberichten zuweisen. Zumindest hab ich das nicht geschafft.

Und die Idee mit DoCmd.Openreports scheint bei Unterberichten auch nicht zu greifen; leider!

Stephan

Schefti
17.01.2003, 13:27
Kann ich nicht so richtig nachvollziehen, da normalerweise Hauptbericht und Unterbericht miteinander verknüpft sind.

Wenn das aber alles nicht greift dann halt komplett anpassen.

Abfragen erstellen und Bericht darauf erstellen.

Per VBA dann die Abfrage vor dem Reportsaufruf ändern.

dim qdef as querydef
set qdef = currentdb.openquerydefs("Abfrage")
qdef.sql = "...."
set qdef = currentdb.openquerydefs("AbfrageUF")
qdef.sql = "...'
docmd.openreport...

cu