Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: WhiteCrow am Juli 26, 2011, 15:32:25

Titel: Optionsf.
Beitrag von: WhiteCrow am Juli 26, 2011, 15:32:25
Tach ProfiLeutz!

folgenes Problem
auf meinem Formular habe ich ein (am Tabelle direkt gebundene) Optionsfeld. (Radioknöpfe-form)

um einfach erklären um z.B. Lieferbestand kontrollieren mit folgendem Auswahl -möglichkeiten:

Nein, nicht vorhanden (beim neuen Datensatz sollte auch standardmäßig Ausgewählt sein) und
Ja, vorhanden

Beim Auswahl auf Ja, Vorhanden wird dabei noch ein Textfeld (eingebunden) sichtbar, im welchen ich Liefer-Stückzahl eingeben kann.
dafür hab einfach...
Private Sub Leferung_Click()
Select Case Lieferung
    Case 1
    Me.txt_AnzahlBeschriftung.Visible = False
    Me.f_AnzahlTextfeld.Visible = False
    Case 2
    Me.txt_AnzahlBeschriftung.Visible = True
    Me.f_AnzahlTextfeld.Visible = True
End Select
End Sub

...genommen.

Jetzt meine Frage:
Falls jemand "sagt" ja sind vorhanden und im erschienen Textfeld sie Stückzahl eingibt
und dann doch zurückstellt auf nein, ist nicht im Lieferung erhalten...
Ist es möglich bei -rückstellen, ob die bereits eingegebene Informationen automatisch gelöscht werden?

danke im Voraus Crow
Titel: Re: Optionsf.
Beitrag von: database am Juli 26, 2011, 16:01:28
Hallo,

sollte eigentlich ohne große Probleme realisierbar sein.
Das Textfeld für die Stückzahl ist ein gebundenes Formularfeld.


Private Sub Leferung_Click()
Select Case Lieferung
   Case 1
   Me!f_AnzahlTextfeld = 0   'bzw. wenn kein Standardwert für das Feld angegeben wurde  ...  Me!f_AnzahlTextfeld = ""
   Me.txt_AnzahlBeschriftung.Visible = False
   Me.f_AnzahlTextfeld.Visible = False
   Case 2
   Me.txt_AnzahlBeschriftung.Visible = True
   Me.f_AnzahlTextfeld.Visible = True
End Select
End Sub


Dadurch sollte dann das Textfeld im Fall von 'nein' entleert werden - wobei auch das Tabellenfeld entleert bzw. auf 0 gesetzt wird.

HTH

p.s.  Sub Leferung  und  Case Lieferung  stimmen nicht überein!
Titel: Re: Optionsf.
Beitrag von: WhiteCrow am Juli 26, 2011, 16:26:11
Zitat von: database am Juli 26, 2011, 16:01:28
p.s.  Sub Leferung  und  Case Lieferung  stimmen nicht überein!

ah joa war nur hier von Hand schnell eingepasst um Gedanken schnell darstellen können.

Klappt wunderbar.
Setze back, Anzahl wird genullt, Textbox verschwindet wider aber...
komischer weise nach Formular "restart" (usgewählte wert ist wie es war stecken)
aber Textbox ist als True, also nicht wie es sein sollte oder vor d. Schließung war. O_o?
woran kann das liegen?
Titel: Re: Optionsf.
Beitrag von: database am Juli 26, 2011, 16:43:01
Hallo,

Du musst im Ereignis 'Beim Anzeigen' des Formulars auf die Einstellungen der Optionsschalter ebenfalls reagieren.
Das heißt, da die Optionsgruppe ja auch an die Tabelle gebunden ist (was in der Regel ja so sein sollte),
werden die Werte - also 'ja' oder 'nein' bei einem Datensatzwechsel in der Optionsgruppe dargestellt.
Im Ereignis 'Beim Anzeigen (Form_Current) muss dann auf diese Werte reagiert werden.


Private Sub Form_Current()
Select Case Lieferung
    Case 1
    Me!f_AnzahlTextfeld=""
    Me.txt_AnzahlBeschriftung.Visible = False
    Me.f_AnzahlTextfeld.Visible = False
    Case 2
    Me.txt_AnzahlBeschriftung.Visible = True
    Me.f_AnzahlTextfeld.Visible = True
End Select
End Sub


Somit sollte auch ein 'Restart' des Formulars (schließen und wieder öffnen) die korrekten Werte anzeigen.
Ebenso werden die richtigen Werte angezeigt, wenn du durch die Datensätze blätterst.

Wenn alle Elemente an die Tabelle gebunden sind, kann es eigentlich nicht sein dass 'alte' geänderte Werte in einem Feld angezeigt werden.
Einträge in ein Tabellenfeld werden beim Verlassen des Datensatzes automatisch gespeichert - daher kann das eigentlich nicht sein.
Titel: Re: Optionsf.
Beitrag von: WhiteCrow am Juli 27, 2011, 10:59:59
Cool erklärt  :)
Als Form_Current() iwie kollidiert mir das ganze.
Die Textfelder beim umschalten "kommen" nicht,
oder wen die schon da sind und zurückgeschaltet/genullt werden sollten, Verschwinden wider nicht.
Problem ist hab zZt. 2 solche (eingebundene) Optionsfelder auf dem selben Formular.
Hier noch mall mein jetzige 1:1 d.Code
Private Sub Form_Current()
Select Case Datentraeger
   Case 1
   Me!f_DatentraegerAnzahl = 0
   Me.txt_DatentraegerAnzahl.Visible = False
   Me.f_DatentraegerAnzahl.Visible = False
   Case 2
   Me.txt_DatentraegerAnzahl.Visible = True
   Me.f_DatentraegerAnzahl.Visible = True
End Select

Select Case Kabeln
   Case 1
   Me!f_KabelnAnzahl = 0
   Me.txt_KabelnAnzahl.Visible = False
   Me.f_KabelnAnzahl.Visible = False
   Case 2
   Me.txt_KabelnAnzahl.Visible = True
   Me.f_KabelnAnzahl.Visible = True
End Select
End Sub


f_... =TextfeldName
txt_... =TextBeschriftung
Titel: Re: Optionsf.
Beitrag von: DF6GL am Juli 27, 2011, 11:52:44
Hallo,

nochmal das Ganze, mit vermuteten(!) Feldnamen:

Private Sub Datentraeger_Afterupdate()  '"Datentraeger" ist der Name des Optionsrahmens (Optionsgruppe)
Select Case Me!Datentraeger
   Case 1
   Me!f_DatentraegerAnzahl = 0
   Me!txt_DatentraegerAnzahl.Visible = False  'überflüssig, falls das Bezeichnungsfeld zu "seinem" Textfeld "gehört"
   Me!f_DatentraegerAnzahl.Visible = False
   Case 2
   Me!txt_DatentraegerAnzahl.Visible = True  'dito wie oben
   Me!f_DatentraegerAnzahl.Visible = True
End Select
End Sub


Private Sub Kabeln_Afterupdate()  '"Kabeln" ist der Name des Optionsrahmens (Optionsgruppe)
Select Case Me!Kabeln
   Case 1
   Me!f_KabelnAnzahl = 0
   Me!txt_KabelnAnzahl.Visible = False  'dito, wie oben
   Me!f_KabelnAnzahl.Visible = False
   Case 2
   Me!txt_KabelnAnzahl.Visible = True  'dito, wie oben
   Me!f_KabelnAnzahl.Visible = True
End Select
End Sub


Sub Form_Current()
Datentraeger_Afterupdate
Kabeln_Afterupdate
End Sub
Titel: Re: Optionsf.
Beitrag von: WhiteCrow am Juli 27, 2011, 12:36:59
aaaah...

jetz sehe ich das licht ^^

stimmt ist überflüssig, ist aber auch wegen Positionierung besser zu anpassen.
so oder so, auf jeden Fall BIGthx wider, am euch beiden!

Gruß aus Bremen Crow