Neuigkeiten:

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

Mobiles Hauptmenü

Textfelder sollen je nach Wert eines Kombinationsfeldes verschwinden

Begonnen von CadianKeyWarrior, November 18, 2023, 22:07:05

⏪ vorheriges - nächstes ⏩

CadianKeyWarrior

Guten Abend,

ich arbeite erst seit kurzen mit Access und hab eine Datei bekommen und bin buchstäblich am Verzweifeln. Diese hat ein Kombinationsfeld und je nach Auswahl des Kombinationsfeldes sollen bestimmte Textfelder verschwinden. Das Problem ist nicht besonders ungewöhnlich und wird allein hier im Forum mehrfach behandelt, aber es klappt einfach nicht.

Aktuell verwende ich folgenden Code:
Private Sub Kombinationsfeld100_AfterUpdate()
    Select Case Me.Kombinationsfeld100.Value
   
  Case "Apfel"
      Me.Farbe.Visible = False
      Me.Farbe_Bezeichnungsfeld.Visible = False
     
    Case "Birne"
      Me.Farbe.Visible = True
      Me.Farbe_Bezeichnungsfeld.Visible = True
       
    End Select
End Sub

Ich hab schon verschiedene Ereignisse durch, verschiedene Code Versionen, hab das Kombinationsfeld vom Formularkopf in den Detailbereich verschoben (wo sich die Textfelder befinden), hab alle Namen und Eingaben doppelt und dreifach geprüft. Es kommt keine Fehlermeldung, es passiert einfach nichts. Ich ändere das Wort im Kombinationsfeld, aber das Textfeld bleibt.

Hat hier jemand eine Idee, woran es liegen kann?

Beste Grüße

andyfau

Hallo,
setze mal einen Haltepunkt auf die erste Zeile der Prozedur. Wenn die Ausführung des Codes dort hält, ist die Zeile gelb unterlegt. Wenn Du nun mit dem Cursor in der Zeile auf Me.Kombinationsfeld100 gehst, zeigt der Editor den aktuellen Inhalt des Feldes an. Dann siehst Du, ob das überhaupt einem der Fälle in der Select-Anweisung entspricht. Vielleicht ist das Kombinationsfeld gebunden und dementsprechend die gebundene Spalte der Datenquelle eine andere.
Beste Grüße
Andreas
Beste Grüße
Andreas

MzKlMu

Hallo,
wie ist denn die Einstellung des Kombifeldes.

- Datenherkunft (die Abfrage in SQL zeigen)
- gebundene Spalte
- Spaltenzahl
- Spaltenbreite
Gruß Klaus

CadianKeyWarrior

Zitat von: andyfau am November 18, 2023, 23:34:46Hallo,
setze mal einen Haltepunkt auf die erste Zeile der Prozedur. Wenn die Ausführung des Codes dort hält, ist die Zeile gelb unterlegt. Wenn Du nun mit dem Cursor in der Zeile auf Me.Kombinationsfeld100 gehst, zeigt der Editor den aktuellen Inhalt des Feldes an. Dann siehst Du, ob das überhaupt einem der Fälle in der Select-Anweisung entspricht. Vielleicht ist das Kombinationsfeld gebunden und dementsprechend die gebundene Spalte der Datenquelle eine andere.
Beste Grüße
Andreas

Hallo,
Vielen Dank für diesen Tipp. Tatsächlich wird mir nicht die von mir ausgewählte Spalte, sondern die ID als Value angezeigt. Dachte ich mir, ok auch kein Problem, ersetze ich im Code einfach die Wörter durch die ID, jetzt schließt sich das Formular, nachdem ich das Kombinationsfeld ausgewählt habe.

ZitatHallo,
wie ist denn die Einstellung des Kombifeldes.

- Datenherkunft (die Abfrage in SQL zeigen)
- gebundene Spalte
- Spaltenzahl
- Spaltenbreite

Datenherkunft: SELECT [Tabellenname].[ID], [Tabellenname].[Produkte] FROM Tabellenname ORDER BY [Produkte];
gebundene Spalten: 1


andyfau

Hallo,
wenn Du nun in der select-case-Anweisung auf die ID prüfst, dürfen diese nicht in Hochkomma stehen, weil es ja numerische Werte sind. Ausserdem solltest Du eine Fehlerbehandlung (on error...)in die Prozedur einbauen um eine aussagefähige Fehlermeldung zu erhalten. Dazu findest Du im Netz viele Beispiele.
Beste Grüße
Andreas
Beste Grüße
Andreas

Beaker s.a.

@ CadianKeyWarrior
".Kombi.Value" gibt immer den Wert der gebundenen Spalte zurück. Das
ist üblicherweise die 1. Spalte, die du auch mit ".Kombi.Column(0)
auswerten kannst.
Hier kannst du jetzt entweder die gebundene Spalte auf 2 stellen, was ich nicht
empfehlen würde wegen eventueller weiterer Zugriffe auf das Kombi. Besser ist
es wohl auf ".Kombi.Column(1)" zuzugreifen
Private Sub Kombinationsfeld100_AfterUpdate()
    Select Case Me.Kombinationsfeld100.Column(1)
.
.
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)

CadianKeyWarrior

Danke euch für die Vorschläge, hat alles leider nichts gebracht. Ein Kollege konnte schließlich das Problem erkennen. Eins der Textfelder diente dazu, die Form der Produkte zu beschreiben, dementsprechend hab ich es "Form" genannt. Tja das mit "Me.Form.Visible = False" natürlich das Formular angesprochen wird, hatte ich mit zwei Wochen Accesserfahrung nicht auf dem Schirm...