webForumDet fria alternativet

Kopplingsuttrycket stöds inte

ASP

16 svar · 506 visningar · startad av aleborg

Medlem sedan jan. 20013 341 inlägg
Frågan#1

Använder en Access DB och följande SQL-sats:

	SQL = "Select Options_ID, Options_Name, Count(Relations.Rel_ID) As Antal From Options Left Outer Join Relations On Options_ID=Relations.OptionID Where Options_Active=1 Group By Relations.OptionID"

Får felet:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Drivrutin för ODBC Microsoft Access] Kopplingsuttrycket stöds inte.

Är inte så van vid Access :( Vad gör jag fel?

Medlem sedan dec. 200012 464 inlägg
#2

Det är inget syntaktiskt fel i frågan.
Stämmer alla kolumnnamn?

Medlem sedan jan. 20013 341 inlägg
#3

Japp det gör dom
Kan det ha med kopplingen att göra?

dbPath = "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("newsletter.mdb")
	'Lets open the DB
	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open dbPath
	
	'Lets get all the options and put them in a array
	SQL = "Select Options_ID, Options_Name, Count(Relations.Rel_ID) As Antal From Options Left Outer Join Relations On Options_ID=Relations.OptionID Where Options_Active=1 Group By Relations.OptionID"
	Set RS = Conn.Execute(SQL)
		If Not RS.EOF Then
			GetOptions = RS.GetRows()
		Else
			GetOptions = Null
		End If
	RS.Close
	Set RS = Nothing
	Conn.Close
	Set Conn = Nothing
Medlem sedan dec. 200012 464 inlägg
#4

Det tror jag inte. Ett problem som jag ser är att du har för få och fel kolumner i group by

SQL = "Select Options_ID, Options_Name, Count(Relations.Rel_ID) As Antal " & _
" From Options Left Outer Join Relations " & _
" On Options_ID=Relations.OptionID " & _
" Where Options_Active=1 " & _
" Group By Options_ID, Options_Name"

Har du kört Mysql nu igen?

Medlem sedan jan. 20013 341 inlägg
#5

kolumnerna stämmer om jag inte e helt blind

Det är Access :)

Medlem sedan dec. 200012 464 inlägg
#6

Jodå, jag ser att du använder Access. Anledningen till kommentaren om Mysql är att dom är dom enda som godkänner den felaktiga sql-satsen.

Alla kolumner i select-listan som inte ingår i en aggregatfunktion måste vara med i group by. Det var det jag menade med felaktiga kolumner. Testade du den varianten?

Medlem sedan jan. 20013 341 inlägg
#7

Japp det gjorde jag och fick samma fel :(

Medlem sedan dec. 200012 464 inlägg
#8

Då får vi försöka eliminera felkällor

SQL = "Select Options_ID, Options_Name, Count(Relations.Rel_ID) As Antal " & _
" From Options , Join Relations " & _
" where Options_ID=Relations.OptionID " & _
" and Options_Active=1 " & _
" Group By Options_ID, Options_Name"

Blir det något fel om du testar denna?

Jag misstänker att det är join-klausulen som är problemet.

Medlem sedan jan. 20013 341 inlägg
#9

Syntaxfel i FROM-instruktion.

Medlem sedan dec. 200012 464 inlägg
#10

Nu då,

SQL = "Select Options_ID, Options_Name, Count(Relations.Rel_ID) As Antal " & _
" From Options , Relations " & _
" where Options_ID=Relations.OptionID " & _
" and Options_Active=1 " & _
" Group By Options_ID, Options_Name"

klippte med ett join för mycket.

Medlem sedan jan. 20013 341 inlägg
#11

NU funkade det, tack LarsG, du e en klippa!

Medlem sedan jan. 20013 341 inlägg
#12

Vad gör jag om "Count(Relations.Rel_ID)" är noll då???
Då visas inte posten alls :(

Medlem sedan dec. 200012 464 inlägg
#13

Jag menade aldrig att denn fråga som jag skrev var samma som din med outer join. Jag var bara ute efter att se var det blev fel.

Så här då

SQL = "Select Options_ID, Options_Name,(select  Count(*) from relations where optionId = O.Options_id) As Antal " & _
" From Options as O" & _
" Where Options_Active=1 "

Nu vet jag inte om kolumnnamnen finns i options-tabellen.

Medlem sedan jan. 20013 341 inlägg
#14

Den verkar däreomt funka :) Tack

Medlem sedan mars 20023 561 inlägg
#15
dbPath = "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("newsletter.mdb")

Byt ut den mot den här:

dbPath ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("newsletter.mdb")
Medlem sedan jan. 20013 341 inlägg
#16

Använd Jet drivrutinen i ett annat projekt och hade problem med en del kommandon då!

Medlem sedan mars 20002 836 inlägg
#17

redigerat:

patrik var för snabb .... lösningen fanns ju redan :r

cya,
PatrikB

261 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)