Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Micharius am Februar 12, 2018, 07:49:28

Titel: Formular für Eingabe / Darstellung inaktiver Datensätze
Beitrag von: Micharius am Februar 12, 2018, 07:49:28
Guten Tag miteinander

In meiner DB gibt es ein Formular Projekte, wo die entsprechende Tabelle tblProjekte mit Daten befüllt wird. Unter anderem können über ein Unterformular & Zuweisungstabelle Mitarbeiter mit verschiedenen Rollen (Sales, Projektverantwortlicher etc) zugeordnet werden. So weit so gut, das funktioniert alles bestens. Nun gibt es natürlich die Situation, dass ein Mitarbeiter die Firma verlässt. In diesem Fall setze ich ihn in der Tabelle tblMitartbeiter mit einem JA/NEIN Feld inaktiv.

Für die Erfassung eines neuen Projekts soll der betreffende Mitarbeiter dann nicht mehr zur Verfügung stehen, in bestehenden Projekten möchte ich aber natürlich noch sehen, dass der Mitarbeiter zum Zeitpunkt der Erfassung dem Projekt zugeteilt war. Ich frage mich jetzt, wie ich das am besten löse, den die Eingabe bzw. Darstellung der Projekte erfolgt über das gleiche Formular. Ich hätte das nun so gelöst, dass mit einem Popup Formular die Zuordnung der Mitarbeiter erfolgt (es werde nur aktive angezeigt und ausgewählt), und im Hauptformular dann auch bereits ausgetretene Mitarbeiter angezeigt werden.

Vielleicht gibt es aber eine elegantere Lösung? Über eine Beurteilung oder Inputs würde ich mich sehr freuen.

Beste Grüsse & guten Wochenstart,

Micharius
Titel: Re: Formular für Eingabe / Darstellung inaktiver Datensätze
Beitrag von: DF6GL am Februar 12, 2018, 10:44:44
Hallo,


--sperre das gebundene Kombifeld ("MAID") . Datensatzherkunft:  Select MAID, MA_Nachname  from tblMitarbeiter
--erzeuge ein neues ungebundenes Kombifeld ("cmbMA"), lege es über das vorhandene und verschmälere es bis auf den Pfeil-Button. Stelle es weiterhin auf "Vordergrund".
--Datenherkunft von "cmbMA":  Select MAID, MA_Nachname  from tblMitarbeiter Where Ma_aktiv <> 0
--Ereignisprozedur "Nach Aktualisierung":

   
   Sub cmbMA_AfterUpdate()
    Me!MAID= Me!cmbMA
   End Sub



PS:  evtl. zusätzlich erforderlich:

Sub cmbMA_Enter()
Me!cmbMA.Requery
End Sub
Titel: Re: Formular für Eingabe / Darstellung inaktiver Datensätze
Beitrag von: Beaker s.a. am Februar 12, 2018, 13:23:21
Hallo Micharius,
Oder du manipulierst die RowSource des Kombis beim Formereignis "Beim Anzeigen".

If Me.NewRecord then
    Me.cbmMA.RowSource = Select MAID, MA_Nachname  from tblMitarbeiter Where Ma_aktiv
Else
    Me.cbmMA.RowSource = Select MAID, MA_Nachname  from tblMitarbeiter
End If

gruss ekkehard
Titel: Re: Formular für Eingabe / Darstellung inaktiver Datensätze
Beitrag von: Micharius am Februar 12, 2018, 21:53:48
Hallo Beaker s.a. und DF6GL

Vielen Dank für die Tipps - das probiere ich gerne aus!

@Beaker s.a. - dann muss ich wohl das neue Kombifeld, welches über dem "alten " liegt, transparent machen, damit der ursprüngliche Eintrag "durchscheint"?

Viele Grüsse

Micharius
Titel: Re: Formular für Eingabe / Darstellung inaktiver Datensätze
Beitrag von: Jonny am Februar 13, 2018, 12:17:47
Hallo
für die Lösung von Beaker brauchst du kein neues Feld. Der Ansatz ist das nur bei einen neuen DS der MA ausgewählt werden kann. Bei bestehende DS werden diese nur angezeigt.
Gruß Johann
Titel: Re: Formular für Eingabe / Darstellung inaktiver Datensätze
Beitrag von: Beaker s.a. am Februar 13, 2018, 13:39:16
Hallo Johann,
Fast  ;) - ein zweites Kombi braucht es in der Tat nicht, das "nichtauswählenkönnen" müsste man ergänzen
End If
Me.cbmMA.Locked = Not Me.NewRecord

gruss ekkehard
Titel: Re: Formular für Eingabe / Darstellung inaktiver Datensätze
Beitrag von: Micharius am März 16, 2018, 15:51:19
Ist ein Weilchen her, und ich hab das immer vor mich hergeschoben. Ich habe es mit der Lösung von Ekkehard nun umgesetzt.

Für die Nachweilt ein einziges Addendum zu seinem Code: Die SQL Anweisung muss in "Anführungszeichen" stehen, allfällige "" aus der (in meinem Fall kopierten SQL Anweisung) durch ' ersetzt werden.

Grüsse

Micharius
Titel: Re: Formular für Eingabe / Darstellung inaktiver Datensätze
Beitrag von: Beaker s.a. am März 16, 2018, 16:18:30
Jau, die "" hatte ich unterschlagen, - Asche auf mein Haupt  ;)