PDA

Vollständige Version anzeigen : Berichte per VBA-Code aufrufen


abfi98
18.06.2001, 14:22
Hallo,

ich möchte per VBA-Code einen Bericht in der Vorschau öffnen. Dabei möchte ich als Parameter (Datensatzherkunft) eine Abfrage oder ein SQL-Statement angeben. Leider ignoriert Access 97 dies konsequent.

Beispiel:
DoCmd.OpenReport "Bericht1", acViewPreview, "Abfrage1"
oder
DoCmd.OpenReport "Bericht1", acViewPreview, , "Select * from Tabelle1"

Im Bericht selbst habe ich ein Textfeld in dem ich ein Feld aus der Abfrage anzeigen möchte. Bei beiden Möglichkeiten passiert gar nichts, da jedesmal "Name?" da steht.

Was mache ich falsch?

Morli
18.06.2001, 14:43
Hallo abfi98,

probiert doch mal den Bericht auf Basis der Abfrage manuell aufzurufen!
Erscheint hier auch die Meldung "Name?"
Sind innerhalb der Abfrage Feldnamen identisch und ist das Berichtsfeld richtig zugewiesen?

Gruß

Rainer :)

Ich weiß, nur Fragen und keine Antwort, aber vielleicht ergibt sich was daraus :eek:

abfi98
18.06.2001, 15:05
Ja, hab ich schon ausprobiert den Bericht manuell zu öffnen, funktioniert komischerweise einwandfrei!
Auch die anderen Sachen sind x-mal überprüft worden, darum finde ich die Sache auch so komisch.

Morli
18.06.2001, 15:16
Also bei mir (Acc97) funzt zumindendest mal Deine erste Variante einwandfrei.

Eventuell kannst Du mir ja mal eine Beispiel-DB schicken, dann schau ich mal ob ich was finde (heute Abend).

Gruß

Rainer :)

Vitjok
19.06.2001, 09:24
Hallo, abfli98.
So, wie ich es verstanden habe, bleibt die Datenquelle (Recordsource) von deinem Bericht immer statisch, d.h immer Abfrage1. Wenn es so ist, dann binde einfach die Abfrage1 in dein Bericht1 statisch ein. In dem VBA-code brauchst du dann, nur die in dem Bericht1 eingebundene Abfrage1 auszufueren/aktuallisieren und OpenReport ohne irgendwelche Filter-Parameter aufzurufen, etwa: DoCmd OpenReport "Bericht1", acViewPreview.

Uebrigens, wenn ich mich nicht irre, soll der letzte ('wherecondition') Parameter eine gueltige SQL WHERE - Clausel sein, also macht da deine 'Select * from Tabelle1' wenig Sinn.