PDA

Vollständige Version anzeigen : RecordSource (Bericht)


Mikes
22.06.2001, 08:30
Formular mit RecorSource funktioniert:
Private Sub Befehl9_Click()
DoCmd.OpenForm "Formular1", acNormal
Forms!Formular1.RecordSource = "Abfrage1"
End Sub

Bericht mit Recordsource funktioniert nicht:
Private Sub Befeh20_Click()
DoCmd.OpenReport "Bericht1", acViewPreview
Reports!Bericht1.RecordSource = "Abfrage1"
End Sub

Fehlermeldung: Laufzeitfehler '2191' (...'wenn Bericht geöffnet -> keine einstellungen d. Datenherkunft möglich) - WARUM ?

Was mache ich falsch ?
Danke
Mikes

Stema
22.06.2001, 08:38
Hallo Mikes,

wenn der Bericht schon geöffnet ist, dann hat er auch schon alle Daten gezogen.
Weiß nicht, ob's funkt, aber versuch's mal direkt im Report mit dem Ereignis Report_Open.
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = "Abfrage1"
End Sub

Morli
22.06.2001, 08:47
Hallo Mikes,

Du könntest auch den Bericht erst als acViewDesign öffnen, dann die RecordSource zuweisen und anschließen den Bericht als AcViewPreview öffnen!

Gruß

Rainer :)

kama
22.06.2001, 08:51
Man kann Berichte mit verschiedenen Parameter zum beispiel mit einer Schaltfläche öffnen
Z. B.
DoCmd.OpenReport "Deinbericht", acNormal, "DeineneGewünschte Abfrage", ""

Mikes
25.06.2001, 07:53
Hallo,
Danke für Antworten, aber kann ich leider keine verwenden.
Beim öffnen vom Bericht kann ich RecordSource nicht zuweisen (diese Bericht basiert sich auf Tabelle und muss auch so bleiben)
Als Entwurf, dann RecordSource, dann Vorschau -> funktioniert super nun, DB ist geschützt und User dürfen nicht im Entwurf.
WhereCondition bei OpenRepot geht auch nicht, ich muss einfach eine andere Basis (Tabelle oder Abfrage) zuweisen) !

Für Hilfe dankbar !
Mikes

Birgit Dannenberg
25.06.2001, 08:31
Hallo Mikes!

Das Überschreiben der RecordSource beim Öffnen des Berichts ändert diese Eigenschaft nur temporär, d.h. Deine Standardeinstellung (Tabelle) geht nicht verloren.

Wenn Du die Berichtsbasis variabel haben möchtest, bleibt Dir wohl nichts anderes übrig als die Zuweisung einer Tabelle oder Abfrage in der "BeimÖffnen"-Prozedur.

Woher Du die Information nimmst - z.B. aus einem (versteckten) Formularfeld oder einer globalen Variablen - bleibt Dir überlassen.

Wenn Du eine vorgefertigte Abfrage verwenden kannst, empfiehlt sich die Lösung von kama.

Wo ist das Problem???


Gruss Birgit

Mikes
25.06.2001, 18:06
Bericht kann aber aus versch. Formulare öffnen und warum geht nicht mit Where - Condition?
Grund ist der: ich muss dieser Bericht als Snapshot Datei speichern und hier kann ich keine Where-Condition zuweisen:
DoCmd.OutputTo acReport, "Bericht1", "SnapshotFormat(*.snp)", "", False, ""
, also hier muss ich 'von Auswärtz" RecordSource vergeben.

Danke
Mikes

Morli
25.06.2001, 18:16
Hallo Mikes,

aber dann könntes Du doch zuerst den Bericht im Entwurf unsichtbar öffnen, die RecordSource ändern und den Bericht schließen und speichern ( DoCmd.Close inclusive acSaveYes ). Davon bekommt der User nichts mit ;)! Und dann kannst Du doch Dein OutputTo aufrufen.

Gruß

Rainer :)

Scorefun
25.06.2001, 20:02
Hi,

in der know-how db gibt's ein modul namens
mdlFaxReport

Dort wird so eine variable Where-Condition (wie Du sie benoetigst) zum Versenden von Serien-Faxen mit Hilfe einer globalen Variablen realisiert.

Schau's Dir mal an.
Kannste für Deine Bedürfnisse bestimmt anpassen.

Mikes
26.06.2001, 13:59
Vielen, Vielen DANK !!!
Funktioniert !!!
Danke an alle !!!
Mikes