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.934 Themen, 20.613 Beiträge
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.