Hallo zusammen
möchte ein Formular aus Bericht öffnen.
Im Bericht und im Formular befinden sich jeweils ein Textfeld ( 2022-0011 ).
Habe bereits mit u.g. Code veruscht leider erfolgslos
Versuch 1 :
DoCmd.OpenForm "Rechnungsvorlage", WhereCondition:="Rech_nr_2 '" = Me!Rech_nr_2 '"
Versuch 2:
DoCmd.OpenForm "Rechnungsvorlage", WhereCondition:="Rech_nr_2='" & Me!Rech_nr_2 & "'"
Was mache ich falsch ?
Bitte um Hilfe
Hallo,
ein Bericht der in der Seitenansicht gezeigt wird kennt keine Ereignisse, Dein Vorhaben ist also nicht möglich.
Du kannst den Bericht allenfalls in der Berichtsansicht öffnen, welche aber dann zum Drucken nicht geeignet ist.
Warum willst Du ein Formular aus einem Bericht öffnen ?
Nomalerweise macht man das nur umgekehrt.
Hallo Klaus,
ich möchte das auch aus dem Berichansicht öffnen und nicht aus der Seiteansicht.
Wie ist der richtige Cide
Hallo,
bei der
Berichtsansicht
Erstelle für das Feld, das die Rechnungsnummer (Rech_nr_2) anzeigt, die Klick-Ereignisprozedur:
ZitatSub Rech_nr_2_Dbl_Click(Cancel As Integer)
DoCmd.OpenForm "Rechnungsvorlage", , ,"Rech_nr_2='" & Me!Rech_nr_2 & "'" 'Falls das Tabellenfeld den Datentyp TEXT hat
End Sub
Hallo Klaus,
vielen Dank für den Code.
Leider kommme ich nicht weiter
Wenn ich auf das Feld klicke, kommt die Meldung "Parameterwert eingeben"
Zitat von: Spedi05 am März 27, 2022, 12:22:06Wenn ich auf das Feld klicke, kommt die Meldung "Parameterwert eingeben"
Dann heißt die entsprechende Spalte in der Datenherkunft deines Formulars
Rechnungsvorlage anders. Wenn du den korrekten Namen in der Where-Condition einfügst, wird diese Parameterabfrage nicht mehr erscheinen.
Hallo,
es wäre sinnvoll, wenn Du den kompletten Code zeigst der zur Meldung führt. Wie sonst stellst Du Dir Hilfe vor ?
Außerdem wäre es wichtig, welchen Datentyp (in der Tabelle) das Feld Rech_nr_2 hat.
PS:
Der Code in #3 war nicht von mir, sondern von Franz
PS2:
Mir ist gerade aufgefallen, dass Du in keinem einzigen Deiner Themen eine abschließende Antwort (Feedback) gibst.
Da wäre noch Potential.
Hallo zusammen
ich habe nochmal geprüft, das Feldname im Berichtansicht sowie Formular ist richtig
Beide sind Textfelder siehe Bild 1 + 2
Was muss ich anders machen ?
Zitat von: Spedi05 am März 28, 2022, 20:09:07ich habe nochmal geprüft, das Feldname im Berichtansicht sowie Formular ist richtig
Es geht nicht um den Steuerelement-Namen im Formular oder Bericht, sondern um den Spaltennamen in der Datenherkunft (Abfrage oder Tabelle) des Formulars. Dieser ist in deinem Screenshot für das Formular nicht zu sehen. Im Gegenteil, dass du für das
Steuerelement Rech_nr_2 dort einen Ausdruck anstelle eines Spaltennamens eingetragen hast, deutet sehr darauf hin, dass es diese Spalte in der Datenherkunft nicht gibt.
Hallo,
ich habe im Berichtansicht sowie im Formular noch ein weiteres Feld "LdfReNr" hinzugefügt.
Das Formular wird anhand der "Tab_Rechn" erzeugt und der Bericht aus der Abfrage "Rechnungsliste"
Die Daten für die Abfrage kommen aus der Tabelle "Tab_Rechn"
Das Feld LdfReNr ist ein Zahlenfeld
Habe jetzt den Code :
DoCmd.OpenForm "Rechnungsvorlage", WhereCondition:="LfdReNr=" & Me!LfdReNr
eingegeben, aber es öffnet sich ein leeres Formular
Zitat von: Spedi05 am März 29, 2022, 21:32:57ich habe im Berichtansicht sowie im Formular noch ein weiteres Feld "LdfReNr" hinzugefügt.
Das Formular wird anhand der "Tab_Rechn" erzeugt [...]
Wiederholung: Die Felder in dem Formular sind in diesem Kontext nicht relevant!
Wenn "Tab_Rechn" die Datenherkunft des Formulars ist, dann kannst du nur Spalten aus dieser Tabelle in der Where-Condition verwenden.
Hier dieselbe Aussage in Code formuliert:
DoCmd.OpenForm "Rechnungsvorlage", WhereCondition:="EineSpalteAusTabelle_Tab_Rechn=" & Me!LfdReNr
Hallo,
und dabei gilt es zu beachten, welchen DATENTYP das TABELLENfeld aufweist.
Im gezeigten Beispiel ist EineSpalteAusTabelle_Tab_Rechn als vom Datentyp Ganzahl (Long) angenommen.
Hallo
egal was ich mache, komme ich nicht weiter.
Ich habe die Datenbank jetzt hochgeladen, vlt. könnt Ihr mir jetzt helfen.
Vielen lieben Dank im Voraus
Zitat von: Spedi05 am März 30, 2022, 21:42:15egal was ich mache, komme ich nicht weiter.
Verständlich...
Ziehe das Feld
Rech_Nr zusätzlich in den Bericht und mach es unsichtbar.
Dann ändere den Code im Bericht zu:
DoCmd.OpenForm "Rechnungsvorlage", , , "Rech_nr= " & Me.Rech_NrDass du dann im Formular
Rechnungsvorlage immer noch nicht den gewünschten Datensatz siehst, liegt daran, dass du im "Beim Öffnen"-Ereignis des Formular per Makro zu einem neuen Datensatz springst.
Zwei 3 weitere Hinweise:
1.) Wenn das Feld
Rech_Nr eindeutig Datensätze identifizieren soll, dann sollte es auch einen eindeutigen Index in der Tabelle haben.
2.) Wenn du dein Feld
Rech_nr_2 unbedingt im Bericht zur Anzeige brauchst, dann ist das so. Aber du solltest dieses Feld
nirgends im Code verwenden. Selbst wenn du die Probleme, die wir hier diskutiert haben, sinnvoll behandeln kannst, ist es von der Performance immer noch suboptimal.
3.) Ich rate dir dringend die scheinbar redundanten Felder
Rech_Nr, LfdReNr, Rech_Nr_2 und
Rech_Datum, Rech_Jahr, Monat wenigstens so zu benennen, dass man ihren Sinn versteht und sie auseinanderhalten kann.
Hallo zusammen,
vielen Dank für eure Hilfe.
Sorry für die Verspätung