Hallo
ich habe eine verbindung aufgebaut in asp zu eine access DB. Eine einfache tabellarische Auflistung mit SELECT geht ohne probleme Wenn ich aber eine komplizierte Query mache dann bekomme ich eine Fehlermeldung. Error in der Klausel FROM
Was ist da bitte an der Query falsch
strSQL = "SELECT memo.datum, memo.memo FROM Kunden" <-so geht's
strSQL = "SELECT memo.datum, memo.memo FROM Kunden INNER JOIN memo ON Kunden.Name = 'Frank' " <- so geht's nicht
-----------------------------------------------------------------
<%
seleccion = Request.Form("name")
Dim oConn,strSQL, objRS
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("data.mdb"))
strSQL = "SELECT memo.datum, memo.memo FROM Kunden"
strSQL= strSQL & "INNER JOIN memo ON Kunden.Name = 'Frank' "
Set objRS = oConn.Execute(strSQL)
%>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR><TD> Datum</TD><TD>Kommentar</TD><%
while (not objRS.Eof)
Response.Write("<tr><td>&nbsp;" & objRS("datum") & "</td><td>&nbsp;" & objRS("Memo") & "</td><td>&nbsp;</td></tr>")
objRS.MoveNext
wend
oConn.Close
set objRS = nothing
set oConn = nothing
%>
</table>
-----------------------------------------------------------------
danke im Vorraus
logo_3
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Eines vorweg, mein SQL-Lehrgang ist schon etwas länger her.
Ich würde mir nochmal den Inner Join ansehen, den der war schon immer etwas heikel.
Ansonsten kann ich auf den ersten Blick keinen Fehler sehen, was aber wie gesagt nichts bedeuten soll.
Mfg
Outsidaz1
Ja, der Fehler liegt am JOIN, und zwar genauer gesagt im ON-Teil. Wenn man zwei Tabellen JOINen will, dann muss man der DB auch sagen, wie sie sie verbinden soll und das geht nunmal nicht, wenn man im ON-Clause nur das Feld einer Tabelle und einen Skalar angibt, der eigentlich in den WHERE-Teil soll.
Sofern memo auch ein Feld namens "Name" hat, dann sähe der Query so aus:
SELECT memo.datum, memo.memo FROM Kunden INNER JOIN memo ON Kunden.Name = memo.Name WHERE Kunde.Name = 'Frank'
Merke: Bei JOINs muss immer angegeben über welche Felder verknüpft werden soll.