Neuigkeiten:

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

Mobiles Hauptmenü

Unterformular Gotfokus Wenn VBA

Begonnen von kasialars, September 14, 2022, 16:19:40

⏪ vorheriges - nächstes ⏩

kasialars

Hallo!
Habe ein Unterformular Im Hauptformular was sich bei Fokuserhalt ändert.

Option Compare Database
Private Sub Operator_GotFocus()
Me!Operator_Codes_Breite.SourceObject = "Operator_Codes_Breite"
End Sub

Private Sub Supplier_GotFocus()
Me!Operator_Codes_Breite.SourceObject = "Operator_Codes_799_Breite"
End Sub

Jetzt möchte ich noch, dass wenn in einem anderem Feld "799" ausgewählt wird, dass er den oberen code ausfüht.
Habe mehrere Bezeichnungen (799) in dem Feld.

Danke

Beaker s.a.

Private Sub DeinFeld_AfterUpdate()
    If Me.DeinFeld = "799" Then
        Me!Operator_Codes_Breite.SourceObject = "Operator_Codes_Breite"
    End If
End Sub
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

kasialars

Danke schonmal,
habe es so eingetragen
Private Sub Part_Number_AfterUpdate()
If Me.Part_Number = "799" Then
Sub Operator_GotFocus()
Me!Operator_Codes_Breite.SourceObject = "Operator_Codes_Breite"
End If
Sub Supplier_GotFocus()
Me!Operator_Codes_Breite.SourceObject = "Operator_Codes_799_Breite"
End Sub
Funkioniert aber leider nicht.
Habe bestimmt was falsch gemacht  ;D

Beaker s.a.

#3
Na gut, Part_Number ist dann wohl auch eine Zahl; dann lass die "" weg.
Uups, den groben Fehler gar nicht gesehen.
Private Sub Part_Number_AfterUpdate()
If Me.Part_Number = 799 Then
`'Sub Operator_GotFocus() -- habe ich so nicht geschrieben
'du musst nur die folgende Zeile in beide Prozeduren schreiben
'Einen Eventhandler ruft man nicht aus einem anderen heraus auf
Me!Operator_Codes_Breite.SourceObject = "Operator_Codes_Breite"
End If
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Beaker s.a.

Vielleicht besser doch noch mal komplett
Private Sub Part_Number_AfterUpdate()
    If Me.Part_Number = 799 Then
        Me!Operator_Codes_Breite.SourceObject = "Operator_Codes_Breite"
    End If
End Sub

Private Sub Operator_GotFocus()
    Me!Operator_Codes_Breite.SourceObject = "Operator_Codes_Breite"
End Sub
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

kasialars

Ich glaube ich habe es falsch erklärt  ;D
Part_Number = Produktauswahl z.B 799
Bei Fokus von Operator soll das Unterformular für Produkt 799
Bei nächsten Fokus Supplier soll das nächste Unterformular für Produkt 799 geöffnet werden und immer weiter...
Das gleiche soll passieren wenn z.b nicht 799 als Produkt ausgewäht wurde sondern z.B 800 dann
Bei Fokus von Operator soll das Unterformular für Produkt 800
Bei nächsten Fokus Supplier soll das nächste Unterformular für Produkt 800 geöffnet werden und immer weiter.

Ich habe 11 Kombinationsfelder die bei Fokus das Unterformular ändern sollen und 10 Produkt.
Das Unterformular zeigt nur QR Codes an.

kasialars

#6
Habe es jetzt geschaft!  ;D
Private Sub Part_Number_AfterUpdate()
    If Me.Part_Number = 799 Then
        Me!Operator_Codes_Breite.SourceObject = "Operator_Codes_Breite"
    End If
End Sub
Sub Operator_GotFocus()
        Me!Operator_Codes_Breite.SourceObject = "Operator_Codes_799_Breite"
End Sub
Sub Supplier_GotFocus()
        Me!Operator_Codes_Breite.SourceObject = "Operator_Codes_Dicke200"
End Sub
So jetzt bräuchte ich noch eine Lösung wie ich den Code weiter schreiben soll, wenn Produkt 800 ausgewäht wird.

Beaker s.a.

Hallo,
Dem Ganzen liegt ein falsches Datenmodell zu Grunde. Es kann ja
nicht sein, dass du für jedes Produkt ein eigenes Formular brauchst.
Wie stellst du dir das vor, wenn da mal ein Produkt dazu kommt?
- neues Formular, neue Abfrage, neuer Code  ::)
Bitte poste eine Bild des Beziehungsfensters mit allen Tabellen
und alle Felder sichtbar. Da wird sich vermutlich zeigen, dass es viel
einfacher geht.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

kasialars

Leider kann ich es nicht freigeben, da es sich um eine Firmendatenbank handelt.
Die Umsetzung soll halt so erfolgen das wenn Wareneingang kommt alles per Barcode in die Datenbank eingeben werden soll. Also z.b es kommt ein Produkt an und wird z.b eine Dicke gemessen und diese kann zwische 0,10 und 0.15 liegen, wollte ich das in dem Formular wo die Werte eingetragen werden ein unterformular die Toleranzen per QR Code angezeigt werden. 0,10 ein QR code 0.11 der nächste QR code und so weiter. So das die Eingabe sofort am Tablet erfolgen kann. Bei jedem GOT_Fokus in einem Feld sollte dann das dazugehöriges Unterformular mit den dazugehörigen Toleranzen eingeblendet werden. Denn weg über ein Bericht bin ich auch schon gegangen dort ist aber das Problem das der Cursor nicht im Feld bleibt wenn der Bericht geöffnet ist.

Beaker s.a.

ZitatLeider kann ich es nicht freigeben, da es sich um eine Firmendatenbank handelt.
Wenn man aus dem Beziehungsbild Rückschlüsse auf Inhalte ziehen
kann bestätigt das nur meine Vermutung eines falschen DM.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

PhilS

Zitat von: kasialars am September 17, 2022, 11:15:46Bei jedem GOT_Fokus in einem Feld sollte dann das dazugehöriges Unterformular mit den dazugehörigen Toleranzen eingeblendet werden.
Wäre es eine Alternative immer das gleiche Unterformular zu verwenden und dort abhängig vom aktuelle Artikel jeweils die passenden Toleranzdaten anzuzeigen?
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

kasialars

Zitat von: PhilS am September 17, 2022, 14:19:29
Zitat von: kasialars am September 17, 2022, 11:15:46Bei jedem GOT_Fokus in einem Feld sollte dann das dazugehöriges Unterformular mit den dazugehörigen Toleranzen eingeblendet werden.
Wäre es eine Alternative immer das gleiche Unterformular zu verwenden und dort abhängig vom aktuelle Artikel jeweils die passenden Toleranzdaten anzuzeigen?
Das wäre eine alternative 👍

kasialars

Zitat von: PhilS am September 17, 2022, 14:19:29
Zitat von: kasialars am September 17, 2022, 11:15:46Bei jedem GOT_Fokus in einem Feld sollte dann das dazugehöriges Unterformular mit den dazugehörigen Toleranzen eingeblendet werden.
Wäre es eine Alternative immer das gleiche Unterformular zu verwenden und dort abhängig vom aktuelle Artikel jeweils die passenden Toleranzdaten anzuzeigen?
Wie wäre die Umsetzung?
Grüße

markusxy

Zitat von: kasialars am September 19, 2022, 08:12:02Wie wäre die Umsetzung?

Womit hast du ein Problem?
Man platziert das Formular und das wars.
Voraussetzung: Beziehungen zwischen den Tabellen sind vorhanden, dann gibts auch nichts mehr zu tun.
Kein Code, kein garnichts.

Ansonsten muss man im Subform-Steuerelement verknüpfen von/nach setzen.


kasialars

Sind leider ungebundene Formulare.