Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: tismo am Januar 12, 2014, 14:50:57

Titel: Werte durch kombinationsfeld im Unterformulars anzeigen
Beitrag von: tismo am Januar 12, 2014, 14:50:57
Hallo Gemeinde

folgendes Problem:

Ich habe ein Unterformular in dem Werte in anderen Steuerelmentes durch ein ungebundenes Kombinationsfeld (Kurzzeichen Kunde) übernommen werden

In meinem Hauptformular konnte ich dies folgendermaßen lösen:

Forms!Schriftverkehr![AnschriftAnrede] = DLookup("[Kundeanrede]", "[Kunde]", "[KurzzeichenKunde] =Forms!RegisterDaten![KurzzeichenKunde]")

Nun ist 'Schriftverkehr' mein Unterformular im Hauptformular RegisterDaten.

Es erschein die Fehlermeldung:

Code (vbnet) [Auswählen]
Laufzeitfehler '2450'

(...) kann das Formular Schriftverkehr nicht finden, auf dem verwiesen wird.


In einem anderem Unterformular, bei dem das kombinationsfeld eine Zahl  und kein Text ist, konnte ich das Problem wie folgt lösen:

On Error GoTo Err_Zahl1_AfterUpdate

     Dim strFilter As String
   
    ' Filter auswerten, bevor er an die Funktion DLookup() übergeben wird.
     strFilter = "[Zahl1] = " & Me![Zahl1]
     
   
    ' Entnimmt den Einzelpreis des Artikels und übergibt ihn
    ' an das Steuerelement Einzelpreis.
     Me!FremdleisterStraße = DLookup("Adresse", "Lieferanten", strFilter)
     
    ' Aktiviert die Schaltfläche, die das Formular Artikel öffnet



Exit_Zahl1_AfterUpdate:
     Exit Sub
Err_Zahl1_AfterUpdate:
     MsgBox Err.Description
     Resume Exit_Zahl1_AfterUpdate
End Sub


Wie gesagt, bei Zahlen funtioniert dies, bei einem Text nicht.
Ich hoffe, mir kann jemand helfen.
Titel: Re: Werte durch kombinationsfeld im Unterformulars anzeigen
Beitrag von: DF6GL am Januar 12, 2014, 15:03:48
Hallo,

ZitatNun ist 'Schriftverkehr' mein Unterformular im Hauptformular RegisterDaten.

dann schreib den Code auch in dieses Unterform etwa so:

Me![AnschriftAnrede] = DLookup("[Kundeanrede]", "[Kunde]", "[KurzzeichenKunde] ='" & Me.Parent![KurzzeichenKunde] & "'")


Wobei ich keine Namen, Kürzel oder Ähnliches für die eindeutige Kennzeichnung von Datensätzen hernehmen, sondern nur mit dem entspr. Schlüsselfeld (im Normalfall von Daten Zahl,Long, bzw. Autowert)  würde.

Statt VBA-Statements zu nutzen, könnte der Ausdruck gleich in den Steuerelementinhalt eines Textfeldes geschrieben werden:

= DLookup("[Kundeanrede]", "[Kunde]", "[KurzzeichenKunde] ='" & Parent![KurzzeichenKunde] & "'")




Titel: Re: Werte durch kombinationsfeld im Unterformulars anzeigen
Beitrag von: tismo am Januar 12, 2014, 15:31:50
... wenn ich

Forms!Schriftverkehr![AnschriftAnrede] = DLookup("[Kundeanrede]", "[Kunde]", "[KurzzeichenKunde] =Forms!RegisterDaten![KurzzeichenKunde]")

mit

Me![AnschriftAnrede] = DLookup("[Kundeanrede]", "[Kunde]", "[KurzzeichenKunde] ='" & Me.Parent![KurzzeichenKunde] & "'")

austausche bekomme ich die Fehlermeldung:

Laufzeitfehler '3348'

Es können keine Datensätze eingefügt werden, der Verteilungsschlüssel der Tabelle 'Schriftverkehr' ist nicht in der Datensatzgruppe enthalten.


Titel: Re: Werte durch kombinationsfeld im Unterformulars anzeigen
Beitrag von: DF6GL am Januar 12, 2014, 16:34:43
Hallo,

an welche Tabellen sind HF und UF gebunden?

Wo ( in welcher Tabelle) befindet sich "AnschriftAnrede"?

Ist das Form-Textfeld "AnschriftAnrede" an das entspr. Tabellenfeld gebunden?

Wie sind HF und UF miteinander verknüpft?

Wie lauten die Schlüsselfelder der Tabellen und wie sind die Tabellen miteinander verknüpft?

Titel: Re: Werte durch kombinationsfeld im Unterformulars anzeigen
Beitrag von: Stapi am Januar 12, 2014, 18:56:22
Hallo Tismo

Eventuell ist das hier was du suchst:
http://www.donkarl.com?FAQ4.2
Titel: Re: Werte durch kombinationsfeld im Unterformulars anzeigen
Beitrag von: tismo am Januar 13, 2014, 19:21:44
Das ist die Lösung des Problems:

Forms![RegisterDaten]![UfoSchriftverkehr].Form![AnschriftAnrede] = DLookup("[Kundeanrede]", "[Kunde]", "[KurzzeichenKunde] =Forms![RegisterDaten]![UfoSchriftverkehr].Form![KurzzeichenKunde]")

Danke für den Tip. :)