webForumDet fria alternativet

Vad är felet?

ASP

10 svar · 335 visningar · startad av Dflex

Medlem sedan juni 2002136 inlägg
Frågan#1

Hej!

Jag håller på med en sökfunktion till min databas och jag får följande fel:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Invalid bracketing of name '[tbl_konstruktörer.id]'.

/uddcomb/admin/dosearch.asp, line 126

Nån som vet detta beror på?

Tack på förhand!

MVH

Dflex

Medlem sedan juni 200032 967 inlägg
#2

Du ska inte klamra in tabellnamnet i din fråga på det sättet, utan endast fältnamnet, om du nu måste klamra. Du behöver dock inte klamra så länge du använder tabell- / fältnamn som inte är reserverade ord.

Mvh,

Medlem sedan juni 2002136 inlägg
#3

men det måste väl användas även när mellanslag förekommer
t ex spara kund=[spara kund]?

Medlem sedan juni 200032 967 inlägg
#4

Uh?

Du ska inte heller ha mellanslag i fältnamn. Men om du nu måste ha det, så är det möjligt att du måste klamra.

Mvh,

Medlem sedan juni 2002136 inlägg
#5

ok...

Jag har valt att använda mig av många if-satser för att kolla om fälten är ifyllda. Jag har tre tabeller i databasen och den där [tbl_konstruktörer.id] är det enda som jag hämtar ur konstruktörstabellen. If-satsen för den ser ut så här:

if skapadav<>"" then
where=where&" AND [tbl_konstruktörer.id]="&skapadav&""
end if

...och SQL-frågan ser så här ut:

sql="SELECT * from qry_search"&where

(qry_search är en fråga i db varav jag plockat ut databasfält från de tre databastabellerna)

Verkar det rimligt?

Medlem sedan juni 200032 967 inlägg
#6

Jo, förutom att du inte ska ha klamrar runt tabell.fält, utan ska du ha klamrar runt båda ska det se ut så här:

if skapadav<>"" then 
where=where&" AND [b][tbl_konstruktörer].[id][/b]="&skapadav&"" 
end if

Annars ser det väl ganska rimligt ut.

Mvh,

Medlem sedan juni 2002136 inlägg
#7

Nu dyker följande fel upp:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 6.

/uddcomb/admin/dosearch.asp, line 126

Rad 126 är:

Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(ritregister))

Medlem sedan juni 200032 967 inlägg
#8

Ajdå.

Det felet dyker upp när man skrivit fel på tabell- eller fältnamn i SQL-frågan, i ditt fall hela 6 st.

Kontrollera alla stavningar och att fälten finns, samt att du jobbar mot samma databas som du tror att du jobbar mot. ;)

Mvh,

Medlem sedan juni 2002136 inlägg
#9

Nu är det kontrollerat. En fråga: Det spelar väl ingen i vilken ordning som man kollar databasens fält med if-satserna?

Medlem sedan juni 200032 967 inlägg
#10

Det enda som spelar roll är hur den färdiga SQL-frågan ser ut. Skriv ut den med response.write istället för att exekvera den, så är det lättare att felsöka.

Mvh,

Medlem sedan juni 2000974 inlägg
#11

Se till att du inte använder dig av svenska tecken i ditt tabellnamn.

259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)