webForumDet fria alternativet

Join å sådant

12 svar · 302 visningar · startad av Nickemannen

NickemannenMedlem sedan aug. 20003 575 inlägg
#1

Jag har en tabell där jag har ne massa enkäter och en som säger om den är klar eller påbörjad.

Men jag vill lista alla som inte är påbörjade och då finns det inget i tabellen klar.

Tabellerna:

Klar:
kid
eid ' anketens id
aid ' vilket id personen har det kan jag lägga till sedan
status ' vilken status den har har inte med denna sats att göra
slutkommentarer

Anketer
eid ' anketen
datum
kurs 'anket namnet

såhär långt kom jag

strSql = "Select enkat.kurs,enkat.eid From enkat,klar where not enkat.eid = klar.eid"
Set Rs = objConn.Execute(strSql)

Då får jag upp alla fält i enkater och alla fält i klar jag vill bara ha ut de fält som finns i enkater som inte finns i klar.

LarsGMedlem sedan dec. 200012 464 inlägg
#2
strSql = "Select enkat.kurs,enkat.eid From enkat left join klar on enkat.eid = klar.eid where klar.eid is null"
Set Rs = objConn.Execute(strSql)
NickemannenMedlem sedan aug. 20003 575 inlägg
#3

Tack!!!
Fungerade perfekt

NickemannenMedlem sedan aug. 20003 575 inlägg
#4

strSql = "Select enkat.kurs,enkat.eid From enkat left join klar on enkat.eid = klar.eid where klar.eid is null"

Det har dykt upp ett litet problem med den koden du gav mig LarsG.

Vi har flera användare i våran databas. Om en användare svarar och gör klart en tabell så blir den ju automatiskt klar för alla.

i Klar har vi ett fält som heter aid (användarid) och i en session("id") har vi id:t för användaren jag har testat.

strSql = "Select enkat.kurs,enkat.eid From enkat left join klar on enkat.eid = klar.eid where klar.eid is null or not klar.eid = "&session("id")&""

Och då blir det fel då kan man ha flera avklarade och ändå så ligger alla kvar i klar. ?

Engine^Medlem sedan dec. 20003 887 inlägg
#5

Tro om du ska ha:

strSql = "Select enkat.kurs,enkat.eid From enkat left join klar on enkat.eid = klar.eid" & _
  " where klar.eid is null or not klar.[b]aid[/b] = "&session("id")&""
NickemannenMedlem sedan aug. 20003 575 inlägg
#6

Oj, jag skrev visst fel. Menda att jag skrev klar.aid och inte klar.eid.

Alltså mitt fel återstår fortfarande.

LarsGMedlem sedan dec. 200012 464 inlägg
#7
strSql = "Select enkat.kurs,enkat.eid " & _
" From enkat left join klar " & _ 
" on enkat.eid = klar.eid " & _
" and klar.aid = " & session("id") & _
" where klar.eid is null
NickemannenMedlem sedan aug. 20003 575 inlägg
#8

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Join expression not supported.

NickemannenMedlem sedan aug. 20003 575 inlägg
#9

Antar att det är så att accses databaser inte fungerar. Vi har en sådan dära göra ett intranet i skolan och jag har fått se hjälpa alla... Men denna fråga blir alltid fel.

SebbeMedlem sedan jan. 20032 285 inlägg
#10
strSql = "Select enkat.kurs,enkat.eid " & _
" From enkat left [b]outer[/b] join klar " & _ 
" on enkat.eid = klar.eid " & _
" and klar.aid = " & session("id") & _
" where klar.eid is null"
NickemannenMedlem sedan aug. 20003 575 inlägg
#11

fortfarande

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Join expression not supported.

LarsGMedlem sedan dec. 200012 464 inlägg
#12

Access är ju lite speciellt krävande, det brukar ofta hjälpa att lägga till parenteser omkring uttryck.

strSql = "Select enkat.kurs,enkat.eid " & _
" From enkat left outer join klar " & _ 
" on (enkat.eid = klar.eid " & _
" and klar.aid = " & session("id") & _
" ) where klar.eid is null"
NickemannenMedlem sedan aug. 20003 575 inlägg
#13

Tackar fungerar utmärkt.

Jag har aldrig stött på sådana här avancerade Sql strängar så jag köpte mig en bok igår.

Men tack så hemskt mycket

Normalt så räcker det ju med lätta JOIN strängar.

och jag som trodde jag kunde det mesta :(

132 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)