Neuigkeiten:

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

Mobiles Hauptmenü

U-Form verliert in Prozedur den Fokus

Begonnen von dierk1804, Februar 29, 2016, 10:57:08

⏪ vorheriges - nächstes ⏩

dierk1804

Hallo zusammen,
ich habe folgendes Problem mit meinem Formular/Unterformular:
Wenn ich im U-Form über die Aktualisieren-Eigenschaft ein Listenfeld fülle und sichtbar mache springt mir danach der Fokus auf den ersten Datensatz im U-Form. (Habe das Gefühl das ein Requery läuft obwohl ich keines mache?)
Komischer Weise kommt der Fehler nicht, wenn ich in den Entwurfsmodus wechsle einmal Kompiliere und wieder in die Formularansicht wechsel.
Nur bei Neuaufruf des Formulars kommt der Fehler.

Hier der Code:
If Forms!Kalkulation!Liste125.Visible = True Then
Forms!Kalkulation!Liste125.Visible = False
Forms!Kalkulation!txt125.Visible = False
Forms!Kalkulation!btn_Filter.Visible = False
Forms!Kalkulation!cbo_DM.Visible = False
Forms!Kalkulation!cbo_Wand.Visible = False
End If
Dim strSuchbegriff As String
'Suchbegriff in Variable speichern
strSuchbegriff = Me!Durchmesser
'==== Hier wird das Listenfeld gefüllt
'Neue Datensatzherkunft zuweisen
Forms!Kalkulation!Liste121.RowSource = "SELECT [Infor_Rohre].[infor-Nr], Format([letzter-EK-Preis],'0.00 €') AS Preis, Format([letztes_EK-Datum],'mm/yyyy') AS vom, [Infor_Rohre].[letzte-EK-Menge] AS Menge, [Infor_Rohre].Profil, [Infor_Rohre].Durchmesser1 AS DM, [Infor_Rohre].Durchmesser2, [Infor_Rohre].Wandstärke AS Wand, [Infor_Rohre].Werkstoff, [Infor_Rohre].geglüht, [Infor_Rohre].geschweißt, [Infor_Rohre].DIN, [Infor_Rohre].Länge, [Infor_Rohre].Gewicht, [Infor_Rohre].Basismenge FROM [Infor_Rohre] WHERE [Infor_Rohre].Durchmesser1 Like '" & strSuchbegriff & "*'"
If Forms!Kalkulation!Liste121.ListCount < 1 Then
MsgBox ("Keine Einträge aus Infor vorhanden!")
Forms!Kalkulation!Liste121.Visible = False
Forms!Kalkulation!txtliste141.Visible = False
End If
' ===== Hier wird das Listenfeld aktiviert
Forms!Kalkulation!Liste121.Visible = True
Forms!Kalkulation!txtliste141.Visible = True
Forms!Kalkulation![Rohrberechnung-Unterformular]![Wandstärke].SetFocus


Kan mir jemand sagen wo der Fehler liegt?

Danke,
Dierk

MaggieMay

Hallo Dierk,

in welcher Beziehung steht denn das Unterformular zum Hauptformular, über welche Felder ist es verknüpft?

Warum setzt du die Sichtbarkeit von Liste121 und Liste141 am Ende außerhalb der IF-Abfrage (wieder) auf True?
Ist das der vollständige Code oder nur ein Auszug?
Freundliche Grüße
MaggieMay

dierk1804

Hallo,
das UF ist mit dem HF über ein Feld AN_Nr verknüpft.  Mit der Liste verhält es sich so:
Die Liste ist beim öffnen nicht sichtbar. Gebe ich den Durchmesser im UF ein soll eine Liste (Liste121) erscheinen bei der alle Artikel mit dem Durchmesser des UForms  angezeigt werden. Die Liste der Artikel soll angezeigt werden.
Forms!Kalkulation!Liste121.Visible = True     ' Listenfeld
Forms!Kalkulation!txtliste141.Visible = True ' Überschrift des Listenfeldes
Danach zuckt der Bildschirm wie bei einem Requery und der Satzzeiger springt auf den 1. Datensatz im UF obwohl er von Durchmesser auf Wandstärke  springen sollte.
Ich frage mich warum er beim Neustart des Formulares dies nicht macht und nach Entwurf danach Formularansicht alles richtig macht?

Gruß, Dierk

MaggieMay

Ich habe leider keine Idee, sofern die gegebenen Informationen vollständig sind, das müsste man sich mal an einer Beispiel-DB anschauen können.
Freundliche Grüße
MaggieMay

dierk1804

Hallo,
sorry für die späte Antwort. Hatte kein Internet mehr.
Meinst Du das kann an der DB hängen?  Wenn ich das Formular im Entwurf öffne und dann wieder in die Formularansicht wechsle geht es.
Da passiert doch etwas beim Laden. oder beim Aufruf (gefiltert) docmd.openform,.....

Gruß, Dierk

dierk1804

Hallo,
ich habe gerade das Formular direkt aufgerufen, da geht es komischerweise.
Aufruf im Programm läuft über:
stDocName = "Kalkulation"
stLinkCriteria = "AN_Nr ='" & varrum & "'"
DoCmd.OpenForm stDocName, acNormal, , stLinkCriteria, acFormEdit, acWindowNormal
Nur dann kommt beschriebenes Problem.

Gruß, Dierk