PDA

Vollständige Version anzeigen : Endlosformular - einzelne Steuerelemente ansprechen


FrankyZ
11.07.2001, 10:33
Hallo!

Ich möchte in einem Endlosformular für jeden Datensatz das Steuerelement ansprechen.
Wie geht das?

Danke schon einmal im Vorraus!

Gruß, Franky

WalterS
11.07.2001, 10:35
Hallo!
Wozu soll das gut sein und was verstehst du unter "ansprechen". Wenn du etwas ändern willst ist eine "Aktualisierungsabfrage" das Geeignete.

FrankyZ
11.07.2001, 10:45
Ein Beispiel & mein Problem:
Ich habe ein Formular.
In diesem befinden sich 2 Comboboxen.
Die erste Combobox enhält die Betriebe.
Die Zweite enthält die Mitarbeiter, in dem Betrieb. Das Heißt, ich möchte in abhängigkeit von der ersten combobox die zweite Steuern.

Das gelinkt mir auch aber leider ersetzt er mir beim zweiten Datensatz dann wieder den ersten (die der Mitarbeiter).
Weil ich sich ja die 2te Combobox auf die 1st bezieht.

Und wenn ich als Bedingung
"[Formulare]![Name_des_Formulars]![cboBetriebe]", dann funzt es nicht.

FrankyZ

A.S.
11.07.2001, 11:12
Hallo Frank,

wenn ich Dich recht interpretiere willst Du in Deinem Endlosformular weitere Daten erfassen können für bestimmte Mitarbeiter eines bestimmten Betriebes. Desweiteren gehe ich davon aus, das Deine Komboboxen nicht an den jeweiligen Datensatz des Endlosformulares gebunden sind.

Soweit korrekt?

Gruß

Arno

FrankyZ
11.07.2001, 12:08
Ja, denke schon.

- Ja, weitere Daten möchte ich erfassen.

- Was meinst Du mit "das Deine Komboboxen nicht an den jeweiligen Datensatz des Endlosformulares gebunden sind"?

Die Combobox B (Kunden) im Datensatz x besitzt eine Bedingung. Diese Bedingung entsteht mit der Auswahl aus der Combobox A (Betriebe) aus Datensatz x.

Ansonsten ist nichs verbunden. Nur diese zwei Sachen.

Gruß
Franky

PS. Tut mir leid bin eher ein Access-Newbie und von daher hab ich da noch ein paar Verständnißbrobleme.... ;)

A.S.
11.07.2001, 12:31
Hallo Frank,

gut, dann gehen wir etwas weiter in's Detail.

- mit weitere Daten erfaßen meine ich, das Du in Deinem Endlosformular neben den beiden Kombinationsfeldern noch weitere Steuerelemente hast, in welche Du Daten erfassen möchtest. Diese beziehen sich wiederrum auf den Mitarbeiter (Kombinationsfeld 2) des Betriebes (Kombinationsfeld 1) die am Anfang des jeweiligen Datensatzes zu selektieren sind.

- mit "ungebunden" meine ich das die Werte die mit den Kombinationsfeldern ausgewählt werden, für sich stehen und nicht gespeichert werden. Wenn die Kombinationsfelder ungebunden sind, enthält die Eigenschaft "Steuerelementinhalt" des jeweiligen Kombinationsfeldes entweder nichts (ist also leer) oder einen Ausdruck (Beispielsweise '="ABC"').

- mit der Bedingung der ComboBox B abhändig von ComboBox A meinst Du sicherlich, das in ComboBox B nur Mitarbeiter angezeigt werden können, die Mitarbeiter des Betriebes aus Combobox A sind.

Um die Datensätze der Tabelle, welche Du mit Deinem Formular bearbeitest, auch dauerhaft dem entsprechenden Betrieb und Mitarbeiter zuordnen zu können, mußt Du diese Daten in der entsprechenden Tabelle speichern. Die Tabelle muß also diese Felder enthalten und die Eigenschaft "Steuerelementinhalt" der jeweiligen ComboBox muß auf das entsprechende Tabellenfeld verweisen Cbo A "[Betrieb]" und Cbo B auf "[Mitarbeiter]".

Die Verknüpfung von Cbo A auf Cbo B erstellst Du über die Select-Klausel bzw. die Abfrage die Du als RowSource bei der Cbo B eingetragen hast. Hier gibst Du in der Definition (3-Punkte-Button) an, das der Betrieb dem die Mitarbeiter zugeordnet sind dem Betrieb entsprechen muß, der im Formular ausgewählt wurde (Kriterium: =Forms!frmDeinFormular!cboComboBoxA für das Feld Betrieb der Mitarbeitertabelle). Nach Auswahl eines Betriebes in der ComboBox A führst Du per VBA im Ereignis "Nach Aktualisierung" der ComboBox A ein

Me!cboComboBoxB.Requery

durch. Hierdurch wird die zweite ComboBox aktualisiert und nur noch die Mitarbeiter des in Cbo A selektierten Betriebes angezeigt.

------------------
HTH

Arno

FrankyZ
11.07.2001, 13:32
Hallo Arno!

Ich danke Dir erstmal für die ausführliche Erklärung.

- Meine beiden Comboboxen sind gebunden.
Mit dem jeweiligem Feld.

- Die weiter erfaßten Daten bezeihen Sich auf keines der beiden Comboboxen. Sind also für mein Problem egal.


> - mit der Bedingung der ComboBox B abhändig von ComboBox A meinst Du sicherlich, das in ComboBox B nur Mitarbeiter angezeigt werden können, die Mitarbeiter des Betriebes aus Combobox A sind.
Stimmt.

Auch die Bedingung in der Combobox B ("=Forms!frmDeinFormular!cboComboBoxA") habe ich gemacht.

Bis hierhin habe ich das auch geschafft. Und es funktiuoniert auch aber sobald ich den nächsten Datensatz anlegen möchte und dort in Combobox A den Betrieb auswähle wird automatisch der Inhalt aus Combobox B im ersten DAtensatz gelöscht.

Meine Vermutung für das Problem ist eben, das er alle Comboboxen B jetzt plötzlich diesen Betrieb haben müssen aber den möchte ich ja pro Datensatz einstellen.

Und da die Bedingung ("=Forms!frmDeinFormular!cboComboBoxA") herrscht,
dacht ich das wäre Datensatzweise, scheint es aber nicht zu sein!?

Deswegen wollte ich wissen ob man die entsprechenden Comboboxen pro Datensatz seperat ansprechen kann (wahrscheinlich über VBA-Code, wie in VB mit einem Inkrement, z.B. cboB(1), cboB(2) usw.).


Als konretes Beispiel:
1) erster Datensatz (Betrieb & Mitarbeiter ausgewählt
<table border=1><tr> <td>Betrieb</td>
<td>Mitarbeiter </td>
</tr>
<tr>
<td>München</td>
<td>Herrmann</td>
</tr>
<tr>
<td>Berlin</td>
<td>Müller</td>
</tr>
</table>

2) zweiter Datensatz (nach der Auswahl des Betriebes)
<table border=1><tr> <td>Betrieb</td>
<td>Mitarbeiter </td>
</tr>
<tr>
<td>München</td>
<td>_</td>
</tr>
<tr>
<td>Berlin</td>
<td>_</td>
</tr>
</table>


Franky


PS. Sorry, das die Tabelle so groß ist aber da stimmt was im Forum net...

A.S.
11.07.2001, 13:39
Hallo Frank,

Du hast Post (GMX).

Gruß

Arno