Hejsan! Har du testat att skriva ut SQL-strängen, det verkar som att innehållet i objCat.Tables(table).Name är galet... Som Johan skrev så skulle det underlätta om du skrev ut strQuery med t ex Debug.Print eller dylikt. Skriv:Irriterande fel i FROM clause
Har ett smått irriterande problem... Får detta fel på ETT enda ställe i min kod när jag vill hämta en tabell (det funkar på andra ställen):
Microsoft JET Database Engine error '80040e14'
Syntax error in FROM clause.
/nwc/view.asp, line 70
Detta är rad 70:
<code>
objRS.Open strQuery, objConn, , , adCmdText
</code>
Hela snutten ser ut så här:
<code>
If objCat.Tables(table).Columns.Count > 1 Then
strQuery = "SELECT * FROM " & objCat.Tables(table).Name
objRS.Open strQuery, objConn, , , adCmdText
If objRS.RecordCount > 0 Then
</code>
Jag blir tokig...
/PeterSv: Irriterande fel i FROM clause
/JohanSv: Irriterande fel i FROM clause
Det som kan vara fel annars är att objCat.Tables(table).Name har ett värde som är :
* tomsträng eller består av felaktiga tecken
* reserverat ord i SQL (t ex SELECT, FROM, JOIN, NAME m fl)
* inte är ett namn på en tabell i databasen
* ...
Som sagt, skriv ut värdet så visar det sig nog vad problemet är. Om du har en tabell eller fält som heter precis som ett reserverat ord så använder du hakparenteser kring namnet.
Ex . SELECT * FROM [FROM]
Hämtar allt från tabellen med namnet FROM trots att FROM är ett reserverat ord.
Lycka till...
/Per HultqvistSv: Irriterande fel i FROM clause
<code>
If objCat.Tables(table).Columns.Count > 1 Then
strQuery = "SELECT * FROM [" & objCat.Tables(table).Name & "]"
objRS.Open strQuery, objConn, , , adCmdText
If objRS.RecordCount > 0 Then
</code>
Annars kan du ju skriva:
<code>
If objCat.Tables(table).Columns.Count > 1 Then
objRS.Open objCat.Tables(table).Name, objConn, , , adCmdTableDirect
If objRS.RecordCount > 0 Then
</code>