Avatar billede moba Nybegynder
30. oktober 2006 - 13:10 Der er 7 kommentarer og
1 løsning

forespørgsel

Hej
Jeg har en tabel "medarbejderkompetencer" som indeholder 2 felter medarbejdernr og kompetencenr - begge er fremmednøgler fra tabellerne "medarbejdere" og "kompetencer"
Fra en form vil jeg nu have vist alle medarbejdere som de kompetencer som er valgt i en liste.
Listen er oprette således at man kan vælge flere kompetencer, og når man trykke ok, gemmes valget ned i et tekst felt.eksempelvis 1,4,7,8.
Spørgsmålet er nu hvordan jeg får en forespørgsel til at vise mig de medarbejdere som har de kompetencenummere som står i dette tekstfelt? Tekstfeltet tilføjer pt. et "," mellem hver post, men det kan jo bare ændres.
Avatar billede moba Nybegynder
30. oktober 2006 - 13:11 #1
rettelse : i 6. linie skal stå "som har de..."
Avatar billede jensen363 Forsker
30. oktober 2006 - 13:17 #2
Benyt evt. In("*")
Avatar billede jensen363 Forsker
30. oktober 2006 - 13:18 #3
Dvs. In(1,4,7,8)
Avatar billede moba Nybegynder
30. oktober 2006 - 13:35 #4
kan ikke se hvordan det skulle virker? Såvidt jeg kan se ville det betyde, at jo flere jeg tilføjede til mit listevalg, jo flere medarbejdere vil der blive vist. Det skal være en "And" søgning. Lige for at gøre det mere tydeligt. Tabellen medarbejderkompencer kunne have følgende records.
medarbejdernr, kompetencenr
1                1
1                2
1                7
2                2
3                2

Hvis der i listen vælge 1, 2, 7 skal jeg altså kun se medarbejdernr 1 i min forespørgsel.
Avatar billede kjulius Novice
30. oktober 2006 - 21:43 #5
Det lyder som om, du skal have en distinct ind i billedet

SELECT DISTINCT mk.medarbejdernr, m.navn
FROM medarbejderkompetencer mk
INNER JOIN medarbejdere m ON m.medarbejdernr = mk.medarbejdernr
WHERE mk.kompetencenr IN (1, 2, 7)
Avatar billede moba Nybegynder
31. oktober 2006 - 09:12 #6
Problemet er at jeg ikke kan få forespørgslen til forstå det der kommer fra tekstboksen. Jeg tror den opfatter det som en streng "(1,2,3)". Jeg har fået det til at virke ved at lade formen opdatere forespørgslen jf. nedenfor (Teri gav mig hintet til dette)


Set qDef = CurrentDb.QueryDefs("Qrysøgkompetencer")
qDef.sql =
"SELECT Medarbejdere.medarbejdernummer " & _
          "FROM Medarbejderkompetencer " & _
          "WHERE Medarbejderkompetencer.Kompetencenr In(" & resultat & ") " & _
          "GROUP BY Medarbejderkompetencer.Medarbejdernummer " & _
          "HAVING Count(Medarbejderkompetencer.Medarbejdernummer) >= " & antal & ""

OBS: antal = det antal valgte kompetencer
    resultat = en streng  In(1,3,6)
Jeg er ikke klar over hvorfor det virker når man opdatere forespørgslen på denne måde, men det gør det altså!
Morten
Jensen363: smid et svar (det var trods alt In() der skulle til
Avatar billede jensen363 Forsker
31. oktober 2006 - 09:22 #7
Fik ikke lige mulighed for at følge tråden til dørs i går ... sorry
Avatar billede jensen363 Forsker
31. oktober 2006 - 09:26 #8
Jeg har tidligere udviklet en IT-kandidat/profildatabase, hvor jeg netop segmenterer kandidater på baggrund af een eller flere IT-kompetencer, og her benyttes In() i stor stil
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester