Re: Formulareingaben Speichern verhindern
- From: "Michael Zimmermann" <Zimmermann@xxxxxxxx>
- Date: Mon, 2 Jul 2007 17:49:05 +0200
Hallo!
Dietmar Thesing:
Hallo Michael,
wirklich eine schön geschriebene Antwort!
Danke für die Blumen. Man tut, was man kann.
Ich habe das ganze nie mit Unterformularen ausprobiert,
da darfst Du jetzt Beta-Test-Arbeit leisten. :-)
Schön, und das als Laie :-)
Beta-Tester sind bezogen auf das, was sie testen, immer
Laien, weil's das erst seit kurzem gibt. Also keine falsche
Bescheidenheit.
Private Sub cmdUnLeash_Click()
Me.txtid.ControlSource = ""
Me.txtBla.ControlSource = ""
Me.txtBlub.ControlSource = ""
End Sub
Hier kann ich ja eine Schleife nehmen (Case
ctr.ControlType = acTextBox), ...
Joo.
Private Sub cmdLeash_Click()
Me.txtid.ControlSource = "id"
Me.txtBla.ControlSource = "Bla"
Me.txtBlub.ControlSource = "Blub"
... aber hier geht das wohl nicht? Die Formulare haben ja
ihre Datenquellen noch.
Das Formular hat als Datenquelle ein SELECT-Statement, das
sich hinter der Formulareigenschaft Me.Recordsource
verbirgt. Das bleibt bei der ganzen Vorgehensweise
unangetastet und interessiert uns auch nicht weiter.
Die Datenquellen der Controls kannst Du natürlich auch per
Schleife zurücksetzen. Du könntest z. B. beim Formularstart
private Collections bestücken:
Private c1 As Collection
Private c2 As Collection
Private Sub cmdUnLeash_Click()
'Me.txtid.ControlSource = ""
'Me.txtBla.ControlSource = ""
'Me.txtBlub.ControlSource = ""
Dim ctl As Control
For Each ctl In c1
ctl.ControlSource = ""
Next ctl
End Sub
Private Sub cmdLeash_Click()
'Me.txtid.ControlSource = "id"
'Me.txtBla.ControlSource = "Bla"
'Me.txtBlub.ControlSource = "Blub"
Dim ctl As Control
For Each ctl In c1
ctl.ControlSource = c2(ctl.Name)
Next ctl
Me.txtid.Value = Me.txtid.Value
'Me.txtid.SetFocus
'Me.Dirty = True
Me.Dirty = False
End Sub
Private Sub Form_Load()
Dim ctl As Control
Set c1 = New Collection
Set c2 = New Collection
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox _
Then
c1.Add ctl, ctl.Name
c2.Add ctl.ControlSource, ctl.Name
End If
Next ctl
End Sub
Dadurch, daß Du die zu behandelnden Textboxen in einer
eigenen Collection verwaltest, kannst Du auch einzelne
Textfelder von der Behandlung ausnehmen. Vielleicht
bastelst Du ja noch ein Suchfeld o. ä., was dann zwar
eine Textbox wäre, die aber von dem ganzen Geraffel nicht
betroffen ist bzw. sein sollte.
Me.txtid.SetFocus 'Schmutzig machen,
Me.Dirty = True 'eine Möglichkeit
'oder
Me.txtid.Value = Me.txtid.Value 'andere Möglichkeit
Me.Dirty = False 'Optional, speichert die Daten direkt
Diese letzte Zeile für jedes Formular in der richtigen
Reihenfolge ausgeführt, müsste doch reichen, oder?
Nein. Me.Dirty = False speichert die Daten, wenn das
Formular schmutzig ist. Ungebunden bleibt es aber sauber.
Entweder
Me.txtid.SetFocus 'Schmutzig machen,
Me.Dirty = True 'eine Möglichkeit
oder
Me.txtid.Value = Me.txtid.Value 'andere Möglichkeit
*muß* erfolgen, da das Formular sonst nicht schmutzig wird.
Ingesamt gar nicht so schwierig.
Hatte das jemand behauptet? ;-)
Gruß aus Mainz
Michael
.
- Follow-Ups:
- Re: Formulareingaben Speichern verhindern
- From: Dietmar Thesing
- Re: Formulareingaben Speichern verhindern
- From: Dietmar Thesing
- Re: Formulareingaben Speichern verhindern
- References:
- Re: Formulareingaben Speichern verhindern
- From: Michael Zimmermann
- Re: Formulareingaben Speichern verhindern
- From: Dietmar Thesing
- Re: Formulareingaben Speichern verhindern
- Prev by Date: Re: Aus mehreren Abfragen eine große Tabelle erstellen
- Next by Date: Re: [Access 2003] Ereignisprozeduren laufen nicht
- Previous by thread: Re: Formulareingaben Speichern verhindern
- Next by thread: Re: Formulareingaben Speichern verhindern
- Index(es):
Relevant Pages
|
Loading