Jag har tre tabeller I min databas (access). Tackar så mkt! En liten fråga till...Hur skriver du If satser samt namn dynamiska värde inne i SQL satsen? Har inte använt detta sätt att skriva SQL satser tidigare. ExemeplvisSökning i två tabeller med flera parametrar och flera rader.
Tabellen Medlem (innehåller medlemsinformation) exempel:
medlemId, namn, efternamn
1, namn1, efternamn1
2, namn2, efternamn 2
3, namn3, efternamn 3
Tabellen Utbildning (innehåller utbildningar) exempel:
utbildningId, utbildning
1, Historia
2, Idrott
3, Bild
4, Fysik
Tabellen Utbildningar (innehåller de utbildningar användare gått igenom)
Id, utbildningId, medlemId
1, 1, 1
2, 2, 1
3, 3, 1
4, 4, 1
5, 3, 3
6, 4, 3
7 1, 3
Administratören bokför vilka utbildningar medlemmarna gått igenom. Detta gör han genom att addera poster till tabellen Utbildningar. Tabellen utbildningar håller reda på vilken användare som har gått igenom vilken utbildning.
Mitt problem nu är att jag vill ha möjlighet att söka igenom databasen för att se vem som har gjort vilka utbildningar. Jag vill veta exempelvis vem som har gått igenom utbildning Historia OCH Fysik OCH har efternamn Eefternamn3. Det räcker alltså inte att ett kriterie passar, alla måste stämma.
Detta har jag:
[code vb]
sSQL = "SELECT [Medlem].medlemId, [Medlem].namn, [Medlem].efternamn, [Utbildningar].id, [Utbildningar].utbildningId, [Utbildningar].medlemId, FROM Medlem, Utbildningar WHERE [Medlem].medlemId = [Utbildningar].medlemId"
sSQL = sSQL & " AND ([Utbildningar].utbildningId = 1 AND [Utbildningar].utbildningId = 4) "
Set oRecordSet = objConn.Execute(sSQL)
[/code vb]
Med detta får jag endast ett korrekt resultat om jag väljer EN utbildning. Så fort jag väljer flera får jag inget resultat. Anledningen är givetvis att posterna inte är på samma rad. Men hur kan jag göra för att lösa mitt problem? Kanske på något sätt loopa igenom Utbildningar? Join verkar inte heller lösa mitt problem.
Tacksam för hjälp. Sv: Sökning i två tabeller med flera parametrar och flera rader.
sSQL = "SELECT [Medlem].medlemId, [Medlem].namn, [Medlem].efternamn " + _
"FROM Medlem " + _
"WHERE [Medlem].medlemId IN (SELECT [Utbildningar].medlemId " + _
" FROM Utbildningar " + _
" WHERE [Utbildningar].utbildningId = 1) AND [Medlem].medlemId IN (SELECT [Utbildningar].medlemId " + _
" FROM Utbildningar " + _
" WHERE [Utbildningar].utbildningId = 4)"
Set oRecordSet = objConn.Execute(sSQL)
Sv:Sökning i två tabeller med flera parametrar och flera rader.
sSQL = "SELECT [Medlem].medlemId, [Medlem].namn, [Medlem].efternamn " + _
"FROM Medlem " + _
"WHERE [Medlem].medlemId IN (SELECT [Utbildningar].medlemId " + _
" FROM Utbildningar " + _
If variabel <> "form_test" Then
" WHERE [Utbildningar].utbildningId = dynamisktVärde) AND [Medlem].medlemId IN (SELECT [Utbildningar].medlemId " + _
End If
" FROM Utbildningar " + _
" WHERE [Utbildningar].utbildningId = 4)"
Set oRecordSet = objConn.Execute(sSQL)