Just nu i M3-nätverket
Gå till innehåll

Access utbildningsregister


R66
 Share

Rekommendera Poster

Försöker få igång ett utbildningsregister i Access..

Nu är jag inte så kunnig som många andra och har egentligen följande fråga:

Jag kör en query och försöker få fram en lista på vilka personer som inte har gjort en viss utbildning.

Hur får jag access till att inte visa posterna för personerna som har gått en viss utbildning?

I tabellen så finns alla poster med på samtliga utbildningar men när jag kör den i scriptet så visar den alla posterna för den personen utom just den raden.

Jag vill inte att den som redan har gått utbildningen ska synas alls..

Så här ser det ut i sql:

 

SELECT DISTINCTROW Personal.Namn, Genomförda.Godkänd, Utbildningar.Kod, Genomförda.Datum
FROM Utbildningar INNER JOIN ((Chef INNER JOIN (Befattningar INNER JOIN (Avdelning INNER JOIN Personal ON Avdelning.ID = Personal.Avdelning_avdelning) ON Befattningar.ID = Personal.Befattningar_Befattning) ON Chef.ID = Personal.Chef) INNER JOIN Genomförda ON Personal.ID = Genomförda.Personal_Namn) ON Utbildningar.ID = Genomförda.Utbildningar_kod
WHERE (((Utbildningar.Kod)<>"EPP"))
ORDER BY Personal.Namn;

 

Jag vet inte riktigt hur jag ska kunna googla fram det heller så tacksam för lite input!

tmp_idg.jpg

Länk till kommentar
Dela på andra webbplatser

Hej!

Har inte använt Access speciellt mycket, men har kollat på din SQL samt din fråga.

 

Är svårt att svara utan att ha tillgång till den befintliga datan i tabellerna.

 

Men skulle börja med någonting som denna SQL

SELECT       Personal.Namn
       	    ,Genomförda.Godkänd
            ,Utbildningar.Kod
            ,Genomförda.Datum
FROM         Personal
INNER JOIN   Genomförda
WHERE        Personal.ID NOT IN (SELECT Personal_Namn FROM Genomförda)
INNER JOIN   Utbildningar
ON           Genomförda.Utbildningar_kod = Utbildningar.ID

Vet inte om du behöver anpassa SQL syntaxen för Access, men du vill få fram lista på den personal som ej gått en viss utbildning. Förmodligen kommer SQL:en ovan endast lista de som inte gått någon utbildning alls, men om du får den biten att fungera går det nog att anpassa för att få fram vilka av de tillgängliga utbildningar som en person inte har genomfört.

 

Har du möjlighet att lägga upp databasen som en fil i denna tråd? Du kan rensa bort känslig data, men finns tabellerna med och gärna med lite testdata så går det att prova sig fram.

 

 

Länk till kommentar
Dela på andra webbplatser

Bra uppställning men något är fel ändå.. Får ett felmeddelande på FROM

Har provat lite fram och tillbaka men lyckas inte klura ut det. Hade verkligen uppskattat hjälp..

Utbildningar.zip

Länk till kommentar
Dela på andra webbplatser

I din relationsbild så kopplar du Personal_Namn i tabellen Genomförda till ID i tabellen Personal. Är inte det lite märkligt? Tänker mig att ett namn (textsträng) sällan kommer vara samma/jämförbart med ett ID (nummer). Eller?

Länk till kommentar
Dela på andra webbplatser

På 2020-04-22 på 08:26, skrev R66:

Har provat lite fram och tillbaka men lyckas inte klura ut det. Hade verkligen uppskattat hjälp..

Har kunnat öppna din databas i Access och börjat testa med olika SQL satser. Var länge sedan jag jobbade i Access, men det borde gå att få fram den information du vill få ut.

 

Återkommer då jag hunnit testa och prova mer.

Länk till kommentar
Dela på andra webbplatser

Hej igen!

Följande SQL ger en lista över genomförda utbildningar

SELECT	 P.Namn AS PER_Namn
		,G.ID AS GEN_ID
		,G.Utbildningar_kod AS GEN_Utbildningar_kod
		,U.Kod AS UTB_Kod
		,U.Namn AS UTB_Namn
		,G.Personal_Namn AS GEN_Personal_Namn
		,G.Datum AS GEN_Datum
		,G.Godkänd AS GEN_Godkänd
FROM	 Personal P
INNER JOIN (Genomförda G
INNER JOIN Utbildningar U
ON		 G.Utbildningar_kod = U.ID)
ON       P.ID = G.Personal_Namn;

 

På 2020-04-21 på 16:26, skrev R66:

Jag vill inte att den som redan har gått utbildningen ska synas alls..

Problemet är att en person som inte har gått en viss utbildning kommer inte existera i tabellen Genomförda för den aktuella kombinationen av Utbildningar_kod och Personal_Namn.

 

Det du vill göra är att lista de personer som inte gått en viss utbildning, men har de inte gått utbildningen har du heller ingen rad att slå mot. Du har då tabellen Utbildningar och Personal, men ingen koppling mellan dem.

 

Vill du ha information om vilka i tabellen Personal som inte genomfört en viss utbildning behöver nog din databas byggas om med ytterligare en tabell. Kommer tyvärr inte på något bra sätt att lösa detta på.

 

 

Länk till kommentar
Dela på andra webbplatser

Hej!

Om du lägger till alla kombinationer av Personal och Utbildningar i tabellen Genomförda och använder dig av fältet Godkänd som ett sätt att separera dem som genomfört en utbildning (Dvs. är godkänd) från de som ej genomfört en utbildning (Godkänd flaggan ej markerad) kommer du kunna söka fram personer som inte genomgått en viss utbildning

 

Följande SQL ger nu en lista över alla som Genomfört en utbildning

SELECT	 P.Namn AS PER_Namn
		,G.ID AS GEN_ID
		,G.Utbildningar_kod AS GEN_Utbildningar_kod
		,U.Kod AS UTB_Kod
		,U.Namn AS UTB_Namn
		,G.Personal_Namn AS GEN_Personal_Namn
		,G.Datum AS GEN_Datum
		,G.Godkänd AS GEN_Godkänd
FROM	 Personal P
INNER JOIN (Genomförda G
INNER JOIN Utbildningar U
ON		 G.Utbildningar_kod = U.ID)
ON       P.ID = G.Personal_Namn
WHERE 	 G.Godkänd <> 0;

Vill du istället lista all personal som ej genomgått en viss utbildning, kör följande SQL

SELECT	 P.Namn AS PER_Namn
		,G.ID AS GEN_ID
		,G.Utbildningar_kod AS GEN_Utbildningar_kod
		,U.Kod AS UTB_Kod
		,U.Namn AS UTB_Namn
		,G.Personal_Namn AS GEN_Personal_Namn
		,G.Datum AS GEN_Datum
		,G.Godkänd AS GEN_Godkänd
FROM	 Personal P
INNER JOIN (Genomförda G
INNER JOIN Utbildningar U
ON		 G.Utbildningar_kod = U.ID)
ON       P.ID = G.Personal_Namn
WHERE	 G.Godkänd = 0;

Har uppdaterat din databas och lagt in ovanstående 2 SQL satser i databasen. Kanske inte en optimal lösning, men enda sättet jag kom på för att kunna se både de som genomfört och de som ej genomfört en viss utbildning.

Testa gärna själv och bygg vidare ifall du vill ha andra kolumner och/eller villkor

 

 

 

Utbildningar_UPD.zip

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...
På 2020-04-22 på 09:35, skrev Cluster:

I din relationsbild så kopplar du Personal_Namn i tabellen Genomförda till ID i tabellen Personal. Är inte det lite märkligt? Tänker mig att ett namn (textsträng) sällan kommer vara samma/jämförbart med ett ID (nummer). Eller?

En grov miss, tack! :)

Länk till kommentar
Dela på andra webbplatser

Postad (redigerade)
På 2020-04-24 på 07:50, skrev Automan:

Hej!

Om du lägger till alla kombinationer av Personal och Utbildningar i tabellen Genomförda och använder dig av fältet Godkänd som ett sätt att separera dem som genomfört en utbildning (Dvs. är godkänd) från de som ej genomfört en utbildning (Godkänd flaggan ej markerad) kommer du kunna söka fram personer som inte genomgått en viss utbildning

 

Följande SQL ger nu en lista över alla som Genomfört en utbildning


SELECT	 P.Namn AS PER_Namn
		,G.ID AS GEN_ID
		,G.Utbildningar_kod AS GEN_Utbildningar_kod
		,U.Kod AS UTB_Kod
		,U.Namn AS UTB_Namn
		,G.Personal_Namn AS GEN_Personal_Namn
		,G.Datum AS GEN_Datum
		,G.Godkänd AS GEN_Godkänd
FROM	 Personal P
INNER JOIN (Genomförda G
INNER JOIN Utbildningar U
ON		 G.Utbildningar_kod = U.ID)
ON       P.ID = G.Personal_Namn
WHERE 	 G.Godkänd <> 0;

Vill du istället lista all personal som ej genomgått en viss utbildning, kör följande SQL


SELECT	 P.Namn AS PER_Namn
		,G.ID AS GEN_ID
		,G.Utbildningar_kod AS GEN_Utbildningar_kod
		,U.Kod AS UTB_Kod
		,U.Namn AS UTB_Namn
		,G.Personal_Namn AS GEN_Personal_Namn
		,G.Datum AS GEN_Datum
		,G.Godkänd AS GEN_Godkänd
FROM	 Personal P
INNER JOIN (Genomförda G
INNER JOIN Utbildningar U
ON		 G.Utbildningar_kod = U.ID)
ON       P.ID = G.Personal_Namn
WHERE	 G.Godkänd = 0;

Har uppdaterat din databas och lagt in ovanstående 2 SQL satser i databasen. Kanske inte en optimal lösning, men enda sättet jag kom på för att kunna se både de som genomfört och de som ej genomfört en viss utbildning.

Testa gärna själv och bygg vidare ifall du vill ha andra kolumner och/eller villkor

 

 

 

Utbildningar_UPD.zip 73 kB · 1 download

 

Vilken lycka! SUPERTACK!!!!

 

Redigerad av Mikael63
lyft ut text utanför citat-ruta
Länk till kommentar
Dela på andra webbplatser

 Share



×
×
  • Skapa nytt...