Dein Datenbankmodell scheint nicht so prall zu sein.
Ich sehe in Schulungen_Ist eine ID 245 mit gleichem Namen
wie in Schulungen_Soll die mit ID 215.
Ok - kann Zufall sein oder ist die selbe gemeint?
Vorschlag
Tabelle 1: Schulungen
Felder: IdSchulungen,Bezeichnung etc.
Feld IDSchulungen als AutoIncrement (oder wie auch immer das in
Access heisst)
Tabelle 2: Mitarbeiter
Felder: IdMitarbeiter,Name, etc
Feld IdMitarbeiter wieder Typ AutoIncrement
Tabelle 3: SchulungsSoll
Felder: IdSchulungsSoll,IdMitarbeiter,IdSchulungen,Termin. (Ende!)
Tabelle 4: SchulungsIst
Felder: IdSchulungsIst,IdMitarbeiter,IdSchulungen,Termin. (Ende!)
Dann kannst Du mit:
SQL-Code:
select MA.*,
S.Bezeichnung,
SS.Termin
from Mitarbeiter MA
inner join SchulungsSoll SS
on SS.IdMitarbeiter = MA.IdMitarbeiter
inner join Schulungen S
on S.IdSchulungen = SS.IdSchulungen
alle Mitarbeiter herausholen, die für Schulungen vorgesehen sind.
Willst Du z.B. nur einen Termin haben dann fügst Du hinten dran:
where SS.Termin = 'Tag.Monat.Jahr'
Alle Mitarbeiter, die schon fertig haben bekommst Du mit
SQL-Code:
select MA.*,
S.Bezeichnung,
SI.Termin
from Mitarbeiter MA
inner join SchulungsIst SI
on SI.IdMitarbeiter = MA.IdMitarbeiter
inner join Schulungen S
on S.IdSchulungen = SS.IdSchulungen
Den SchulungsStand des Mitarbeiters Nr 15 (Soll und Ist) erhältst Du z.B. so:
SQL-Code:
select S.Bezeichnung,
SS.Termin as Geplant,
SI.Termin as Absolviert
from Mitarbeiter MA
inner join SchulungsIst SS
on SS.IdMitarbeiter = MA.IdMitarbeiter
inner join Schulungen S
on S.IdSchulungen = SS.IdSchulungen
left outer join SchulungsIst SI
on SI.IdMitarbeiter = MA.IdMitarbeiter
where MA.IdMitarbeiter = 15
Das ganze funzt, wenn
Access ANSI-
SQL mitmacht.
Gruss