Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Zugriff auf Elemente imNavigationsunterformular

Begonnen von Rigoletto, Februar 24, 2015, 14:54:47

⏪ vorheriges - nächstes ⏩

Rigoletto

Hallo zusammen,

ich habe in AC 2010 ein Navigationsformular [frmStartNavi] mit verschiedenen Navigationsunterformularen [ufrmNavigation] erstellt. In einem Unterformular befindet sich das Formular [frmReErfassen], in dem neue Datensätze erfasst werden. Anschließend soll für den neuen Datensatz ein Laufzettel geöffnet werden. Dazu habe ich eine Abfrage erstellt, die Datenquelle für den Bericht [rptLaufzettel] ist.

Es soll also über einen Button im Formular [frmReErfassen] ein Bericht geöffnet werden, der nur bestimmte Daten zu dem gerade erfassten (oder aufgerufenen) Datensatz enthält.

Ich habe zwei Filtermethoden probiert, die beide nicht funktionieren:

in der Kriterienzeile der Abfrage habe ich über den Ausdrucksgenerator über die geladenen formulareden Filter gesetzt:
Formulare![frmStartNavi]![ufrmNavigation].Formular![ID_Rechnung]

Beim Ausführen erhalte ich ein Parameter-Eingabefeld für den oben genannten Ausdruck. Der Wert für die REB-Nr. (AutoWert) soll aber aus dem Eingabeformular kommen.

Also Ausdruck wieder gelöscht und neuer Versuch per Berichtsfilter.

Folgenden Code habe ich bei der "Beim Klicken"-Eigenschaft des Buttons eingegeben:
DoCmd.OpenReport "rptLaufzettel", acViewPreview, , "REB_Nr=" &  _ 
Forms!frmStartNavi!ufrmNavigation.Form!ID_Rechnung


hier erhalte ich folgende Fehlermeldung:

Laufzeitfehler '40036':
Die Methode 'Item' für das Objekt 'Forms' ist fehlgeschlagen

Was mache ich falsch?


DF6GL

Hallo,

das Erfassungs-Form hat in diesem Zusammenhang gar nichts mit dem Navigations-Form zu tun.

Mit einer Schaltfläche ("btnLaufzDrucken") im Erfassungs-Form:

Sub btnLaufzDrucken_Click()
DoCmd.OpenReport "rptLaufzettel", acViewPreview, , "REB_Nr=" & Me!ID_Rechnung
End Sub

MaggieMay

Hallo,

bist du sicher, dass "ufrmNavigation" der Name des Unterformular-Steuerelements im Navigationsformular ist?
Freundliche Grüße
MaggieMay

Rigoletto

#3
Zitat von: DF6GL am Februar 24, 2015, 15:09:20
Hallo,

das Erfassungs-Form hat in diesem Zusammenhang gar nichts mit dem Navigations-Form zu tun.

Mit einer Schaltfläche ("btnLaufzDrucken") im Erfassungs-Form:

Sub btnLaufzDrucken_Click()
DoCmd.OpenReport "rptLaufzettel", acViewPreview, , "REB_Nr=" & Me!ID_Rechnung
End Sub
Danke, ja so funktioniert es. Allerdings habe ich mich in meier Situationsbeschreibung ungenau ausgedrückt, weil ich der Meinung war, dass se unbedeutend ist, sorry.

Im Button [cmdLaufzettel] öffne ich ein Formular, in dem ich Textbausteine auswähle, die zu den Daten aus dem Formular [frmReErfaassen] in einem Unterbricht in den Laufzettel eingebaut werden. In diesem Formular öffne ich dann den Laufzettel für den Datensatz aus [frmReErfaassen]. "Me." aus deinem Vorschlag habe ich durch "frmReErfaassen" ersetzt:

Private Sub btnLZOeffnen_Click()
DoCmd.OpenReport "rptLaufzettel", acViewPreview, , "REB_Nr=" & _
frmlReErfassen!ID_Rechnung
End Sub


Jetzt kommt wieder ein Laufzeitfehler:

Laufzeitfehler '424':
Objekt erforderlich

MaggieMay

Hi,

du solltest ja auch Me!ID_Rechnung schreiben.

Aber wenn der Bericht aus einem anderen Formular als "frmReErfassen" geöffnet wird, brauchst du natürlich den vollen Zugriffspfad.
Wie lautet denn deine Antwort auf meine oben gestellte Frage nach dem Steuerelementnamen?
Freundliche Grüße
MaggieMay

Rigoletto

@MaggieMay

deshalb habe ich das Me durch den Formularnamen ersetzt.

[uformNavigation] ist der Name von dem Rahmen, in dem das Formular [frmReErfassen] enthalten ist. Der Ausdrucksgenerator setzt diesen Namen ein.

MaggieMay

#6
Dem Ausdrucksgenerator würde ich nicht trauen, damit kannst du alles mögliche zusammenklicken.
Aber der Rahmen sollte schon das Ufo-Steuerelement sein und wenn der so heißt wie du sagst, hast du ihn wohl umbenannt, denn standardmäßig erstellt Access ein Ufo namens "Navigationsunterformular".

Wenn die Bezeichnungen alle korrekt sind, sollte dies funktionieren:
Forms!frmStartNavi!ufrmNavigation.Form!ID_Rechnung
Überprüfe das noch einmal ganz genau, denn du hast dich hier im Text auch schon mehrfach verschrieben.
Freundliche Grüße
MaggieMay

Rigoletto

Richtig, ich habe den Standardnamen des Ufo von "Navigationsunterformular" in "ufrmNavigation" umbenannt.

Ich habe auch die Schreibweise mehrfach überprüft, trotzdem bleibt es bei dem erstgenannten Laufzeitfehler.

MaggieMay

Zitatich habe den Standardnamen des Ufo von "Navigationsunterformular" in "ufrmNavigation" umbenannt.
Hast du tatsächlich beides umbenannt, das Unterformular und das Unterformular-Steuerelement?
Der Unterschied ist dir bewusst?
Freundliche Grüße
MaggieMay

Rigoletto

#9
Ich habe nur ein mal den Namen "Navigationsunterformular" umbenannt (Eigenschaftenblatt, Auswahhltyp: Unterformular/-bericht, Auswahl "ufrmNavigation", Register Andere, Name).  Ich weiß, was ein Steuerelement ist, ob ich hier aber richtig getroffen habe, ist mir nicht bewußt. Für mich ist das Navigationsformular neu, ich habe bisher nur mit AC 97 gearbeitet und das ist schon etwas her ...

MaggieMay

Ich habe keine andere Erklärung als dass eine der Bezeichnungen falsch ist, naheliegenderweise das nachträglich umbenannte Navigationsunterformular.

Aber wenn du das Unterformular-Steuerelement und nicht das Unterformular selbst umbenannt hast, weiß ich auch nicht mehr weiter.
Dann kannst du höchstens noch die DB hochladen, damit man sich das mit eigenen Augen ansehen kann.
Freundliche Grüße
MaggieMay

Rigoletto

Danke erstmal, ich muß nun noch eine Besprechung für morgen vorbereiten. Die Datenbank werde ich dann morgen Mittag hochladen.

Rigoletto

Leider kann ich die DB nicht hochladen, weil die max. Größe für Dateianhänge auf 1000 KB begrenzt ist.


MaggieMay

Hi,

am besten vorher auch noch alles rauswerfen, was für dieses Problem keine Rolle spielt.
Freundliche Grüße
MaggieMay