Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: CadianKeyWarrior am November 18, 2023, 22:07:05

Titel: Textfelder sollen je nach Wert eines Kombinationsfeldes verschwinden
Beitrag von: CadianKeyWarrior am November 18, 2023, 22:07:05
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
Titel: Re: Textfelder sollen je nach Wert eines Kombinationsfeldes verschwinden
Beitrag von: andyfau am November 18, 2023, 23:34:46
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
Titel: Re: Textfelder sollen je nach Wert eines Kombinationsfeldes verschwinden
Beitrag von: MzKlMu am November 19, 2023, 00:21:21
Hallo,
wie ist denn die Einstellung des Kombifeldes.

- Datenherkunft (die Abfrage in SQL zeigen)
- gebundene Spalte
- Spaltenzahl
- Spaltenbreite
Titel: Re: Textfelder sollen je nach Wert eines Kombinationsfeldes verschwinden
Beitrag von: CadianKeyWarrior am November 20, 2023, 19:54:29
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

Titel: Re: Textfelder sollen je nach Wert eines Kombinationsfeldes verschwinden
Beitrag von: andyfau am November 20, 2023, 21:48:00
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
Titel: Re: Textfelder sollen je nach Wert eines Kombinationsfeldes verschwinden
Beitrag von: Beaker s.a. am November 21, 2023, 15:26:34
@ 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
Titel: Re: Textfelder sollen je nach Wert eines Kombinationsfeldes verschwinden
Beitrag von: CadianKeyWarrior am November 22, 2023, 16:40:54
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...