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,
10 svar · 335 visningar · startad av Dflex
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
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,
men det måste väl användas även när mellanslag förekommer
t ex spara kund=[spara kund]?
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,
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?
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,
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))
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,
Nu är det kontrollerat. En fråga: Det spelar väl ingen i vilken ordning som man kollar databasens fält med if-satserna?
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,
Se till att du inte använder dig av svenska tecken i ditt tabellnamn.