Neuigkeiten:

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

Mobiles Hauptmenü

UFO kann nicht gefunden werden

Begonnen von Rainer 1984, Dezember 21, 2012, 15:51:10

⏪ vorheriges - nächstes ⏩

Rainer 1984

Hallo,

habe ein Formular (Lieferantenstamm) mit einem Registersteuerelement mit mehreren Seiten. Oberhalb dieses Registers habe ich für jede Registerseite des Registers eine Checkbox eingerichtet. Wenn ich die Checkbox einschalte, erscheint die entsprechende Registerseite. Schalte ich die Checkbox aus, verschwindet diese Registerseite wieder. Wenn ich jetzt Werte ins 1. Textfeld der entsprechenden Registerseite eintrage, wird die Checkbox "arretiert", d.h., sie kann nicht ausgeschaltet werden. Hintergrund: Dadurch weiss ich beim Aufruf eines Datensatzes immer, auf welcher Seite Werte stehen. Vergesse ich aber, Werte in die entsprechende Registerseite einzupflegen, soll die dazugehörige Checkbox wieder ausgeschaltet werden.

Soweit funktioniert das auch, wenn auf der Registerseite Textfelder stehen, die zum dazugehörigen Formular gehören, siehe folgenden Code: :) :) :)
Private Sub LiefSt_LiefAdr_Firma_AfterUpdate()
       If IsNull(LiefSt_LiefAdr_Firma) Then
          Me!LiefSt_RechnAdrIstNichtLiefAdr.Locked = False   'Keine Sperrung
          Me!LiefSt_RechnAdrIstNichtLiefAdr.Value = False    'Häckchen entfernen
          Else
          Me!LiefSt_RechnAdrIstNichtLiefAdr.Locked = True   'Sperrung einschalten
          Me!LiefSt_RechnAdrIstNichtLiefAdr.Value = True    'Häckchen beibehalten
       End If
End Sub


Hier nun das Problem: Auf einer anderen Registerseite befindet sich ein UFO und da kommt folgende Fehlermeldung:
Laufzeitfehler 2450 - MS Access kann das Formular 'frm.Bankverbindungen' nicht finden, auf das verwiesen wird.
Das ist der Code, der Probleme macht: ??? ??? ???
Private Sub Bankverb_KontInh_AfterUpdate()
       If IsNull(Forms("frm.Bankverbindungen")!Bankverb_KontInh) Then
          Me!LiefSt_BankverbVorh.Locked = False   'Keine Sperrung
          Me!LiefSt_BankverbVorh.Value = False    'Häckchen entfernen
          Else
          Me!LiefSt_BankverbVorh.Locked = True   'Sperrung einschalten
          Me!LiefSt_BankverbVorh.Value = True    'Häckchen beibehalten
       End If
End Sub

Das Problem liegt auf der 2. Zeile des Codes, wo auf das UFO verwiesen wird. Habe verschiedenes probiert, klappt nicht.

Für eine Hilfe wäre ich sehr dankbar.

Viele Grüße

Rainer

MzKlMu

#1
Hallo,
Ganz allgemein wäre die Syntax so:
If IsNull(Forms!Hauptformularname!Unterformularname.Form!Feldname) Then
Wie heist das Hauptformular?
Wie heist das Unterformular (Name aus den Eigenschaften des Ufos!!!!) ?
Wie heist das Ufo aus dem Datenbankfenster?
Wie heist das Feld das Du prüfen willst.

Den Namen des Ufos findest Du wenn Du den Rahmen des Ufos anklickst. Der kann (muss aber nicht) anders sein als der Name des Ufos wie er im Datenbankfenster steht.

Gruß Klaus

Rainer 1984

Hallo MzKlMu,

Zitatwie heist das Hauptformular?
frm.Lieferantenstamm

ZitatWie heist das Unterformular (Name aus den Eigenschaften des Ufos!!!!) ?
frm.Bankverbindungen

ZitatWie heist das Ufo aus dem Datenbankfenster?
Verstehe nicht ganz, was Du meinst.

ZitatWie heist das Feld das Du prüfen willst.
Bankverb_KontInh ---> also das 1. Feld im UFO frm.Bankverbindungen

Die Checkbox ist: LiefSt_BankverbVorh

Was ich vorhin noch vergessen habe: Hier der Code für die Sichtbarkeit bzw. Unsichtbarkeit der Registerseite. Wenn ich die Checkbox LiefSt_BankverbVorh einschalte, wird die Registerseite (Seite480) sichtbar. Der Code funktioniert einwandfrei.
Private Sub LiefSt_BankverbVorh_AfterUpdate()
    If Me!LiefSt_BankverbVorh = False Then
       Me!Seite480.Visible = False   'Registerseite unsichtbar
       Else
       Me!Seite480.Visible = True   'Registerseite sichtbar
    End If
End Sub


Viele Grüße

Rainer

MzKlMu

Hallo,
Zitatfrm.Lieferantenstamm
es ist völlig ausgeschlossen, dass Du in den Namen Punkte hast. Das wird automatisch verhindert.
Die Formulare müssen also anders heisen.

Das Ufo steht ja auch mit einem Namen bei den ganz normalen Formularen. Das Ufo wird aber nach Einbettung in ein Hafo zum Steuerelement mit einem eigenen Namen, dieser muss verwendet werden. Das Herkunftsobjekt ist der eigentliche Formularname bei den Formularen.
Siehe Bild.
Die Registerseiten sind hier völlig bedeutungslos.

[Anhang gelöscht durch Administrator]
Gruß Klaus

Rainer 1984

Hallo MsKlMu,

SORRY  :o, soll natürlich überall Unterstrich sein. Alle meine Tabellen haben tbl_ als Präfix und die Formulare haben frm_ als Präfix.

Das steht bei mir im Eigenschaftenblatt des UFO's:
Name: frm_Bankverbindungen
Sichtbar: Ja
Herkunftsobjekt: frm_Bankverbindungen
Vernüpfen nach: LiefSt_ID
Verknüpfen von: Bankverb_LiefSt_IDRef

Viele Grüße

Rainer

DF6GL

Hallo,


vermutlich muss es so lauten:



If IsNull(Me!frm_Bankverbindungen!Bankverb_KontInh) Then

oder

If IsNull(Me!frm_Bankverbindungen.Form!Bankverb_KontInh) Then



vermutlich erschlägt das aber nicht noch vermutlich weitere auftretende Logik-Probleme...  ;)

Rainer 1984

Hallo MzKlMu, hallo Franz,

der Punkt war der Fehler.

Das kommt davon, wenn man falsch abliest.  :o :o :o

Vielen Dank für Eure Hilfe!!!  :D :D :D

_._._._._._FROHE WEIHNACHTEN und einen GUTEN RUTSCH!!!_._._._._._

Viele Grüße

Rainer