Upptäckte med
Response.Write strSQL
Första felet:
Det skall ju heta SELECT FROM...
Men nu får jag:
The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.
18 svar · 484 visningar · startad av plelkes
Hej ,
Som jag har det nu visar jag innehållet i tblVetskebalans med FluidID.
Men vill ändra detta till att visa med FluidNamn...
Snickrade ihop nedanstående kod
<%@ Language=VBScript %>
<HTML><title>Lista tblVätskebalans innehåll</title>
<BODY>
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\vatskebalans\db\vbalans.mdb")
strSQL = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID, tblVetskebalans.FluidID, tblVetskebalans.Volym FROM " & _
"tblVetskebalans, tblFluids WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND" & _
" tblFluids.FluidID = tblFluids.FluidNamn"
[B]Set objRS = objConn.Execute(strSQL)[/B]
%>
<TABLE border=1>
<TR>
<TD><B>Datum</B></TD>
<TD><B>Personnummer</B></TD>
<TD><B>FluidID</B></TD>
<TD><B>Volym</B></TD>
</TR>
<%
Do While Not objRS.EOF
Response.Write "<TR><TD>" & objRS("Dag") & "</TD>"
Response.Write "<TD>" & objRS("PatID") & "</TD>"
Response.Write "<TD>" & objRS("FluidNamn") & "</TD>"
Response.Write "<TD>" & objRS("Volym") & "</TD></TR>"
objRS.MoveNext
Loop
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
</TABLE>
</BODY>
</HTML>
Men får fleutskriften
Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.
/vatskebalans/tblvetskebalans1.asp, line 11
Rad 11 är fet-markerad
Upptäckte med
Response.Write strSQL
Första felet:
Det skall ju heta SELECT FROM...
Men nu får jag:
The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.
Hmm... Jag tycker SQL-frågan i det första inlägget ser korrekt ut?!?
Om du ska ha villkoret tblFluids.FluidID = tblFluids.FluidNamn i din SQL-fråga gäller att de två fälten är av jämförbara typer / samma datatyp. Är de verkligen det?
@nders skrev:
två fälten är av jämförbara typer / samma datatyp
Nej det var de inte..
Mycket tänka på tydligen
Nu har jag ändrat fälten till text... Men inte hjälper det
På vilket sätt hjälper det inte?
Vad innehåller fälten?
Felmeddelande?
Är också tblVetskebalans.FluidID och tblFluids.FluidID av samma datatyp?
Nu har jag ändrat alla fält (hoppas jag) till samma = text - Bifogar databasen för säkerhetsskull
Nedanstående
<%@ Language=VBScript %>
<HTML><title>Lista tblVätskebalans innehåll</title>
<BODY>
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\vatskebalans\db\vbalans.mdb")
strSQL = "SELECT FROM tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID, tblVetskebalans.FluidID, tblVetskebalans.Volym FROM " & _
"tblVetskebalans, tblFluids WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND" & _
" tblFluids.FluidID = tblFluids.FluidNamn"
Set objRS = objConn.Execute(strSQL)
%>
<TABLE border=1>
<TR>
<TD><B>Datum</B></TD>
<TD><B>Personnummer</B></TD>
<TD><B>FluidID</B></TD>
<TD><B>Volym</B></TD>
</TR>
<%
Do While Not objRS.EOF
Response.Write "<TR><TD>" & objRS("Dag") & "</TD>"
Response.Write "<TD>" & objRS("PatID") & "</TD>"
Response.Write "<TD>" & objRS("FluidNamn") & "</TD>"
Response.Write "<TD>" & objRS("Volym") & "</TD></TR>"
objRS.MoveNext
Loop
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
</TABLE>
</BODY>
</HTML>
Ger utskriften
SELECT FROM tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID, tblVetskebalans.FluidID, tblVetskebalans.Volym FROM tblVetskebalans, tblFluids WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND tblFluids.FluidID = tblFluids.FluidNamn
Microsoft JET Database Engine error '80040e14'The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.
strSQL = "SELECT FROM tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID, tblVetskebalans.FluidID, tblVetskebalans.Volym FROM " & _
"tblVetskebalans, tblFluids WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND" & _
" tblFluids.FluidID = tblFluids.FluidNamn"
Nu har du ju faktiskt ändrat din SQL-fråga så syntaxen blev felaktig. Som sagt, jag tycker den såg rätt ut i ditt första inlägg.
SELECT fältnamn FROM tabell
inte
SELECT FROM fältnamn FROM tabell
Mvh
Tänk att när jag för engångs skull lyckas med min strSQL, så lyckas jag ända strula till det hela -tack @nders för ditt tålamod...
Förrestän:
Igår kväll fungerade på Brinkster nedanstående
<%@LANGUAGE="VBSCRIPT" "%>
<%
Session.LCID = 1053
Set vatskeb = Server.CreateObject( "Adodb.Connection" )
vatskeb.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vatskeb.ConnectionString = "Data Source='" & MdbFilePath & "'"
vatskeb.open
pnr= Request.Form("personnr")
d = FormatDateTime(Date, 2)
For each formObj in Request.Form
If left(formObj,9) = "leggatill" Then
lngFluidID = Replace(Request.Form(formObj), "leggatill", "")
strSQL = "INSERT INTO tblVetskebalans(Dag, FluidID, Volym, PatID) VALUES(#" & d & "#,'" & lngFluidID & "'," & Request.Form("volym" & lngFluidID) & ", '" & pnr & "')"
Response.Write strSQL
vatskeb.Execute strSQL, , 128
End if
Next
vatskeb.close
Set vatskeb = Nothing
Response.Redirect "lista_fluids.asp"
%>
Men nu får jag
Type mismatch in expression.
vatskeb.Execute strSQL, , 128
dag är av typen datum
FluidID av typen text
volym av typen tal
PatiID av typen text
Undrar vad som har hänt under natten???
Nu när vi har löst förra problemet så upptäcker jag att koden inte fungerar.
PÅ vilket sätt?
Ju innehållet i tabellen listas ej av nedanstående kod
<%@ Language=VBScript %>
<HTML><title>Lista tblVätskebalans innehåll</title>
<BODY>
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\vatskebalans\db\vbalans.mdb")
strSQL = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID, tblVetskebalans.FluidID, tblVetskebalans.Volym FROM " & _
"tblVetskebalans, tblFluids WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND" & _
" tblFluids.FluidID = tblFluids.FluidNamn"
Set objRS = objConn.Execute(strSQL)
%>
<TABLE border=1>
<TR>
<TD><B>Datum</B></TD>
<TD><B>Personnummer</B></TD>
<TD><B>Vätska</B></TD>
<TD><B>Volym</B></TD>
</TR>
<%
Do While Not objRS.EOF
Response.Write "<TR><TD>" & objRS("Dag") & "</TD>"
Response.Write "<TD>" & objRS("PatID") & "</TD>"
Response.Write "<TD>" & objRS("FluidNamn") & "</TD>"
Response.Write "<TD>" & objRS("Volym") & "</TD></TR>"
objRS.MoveNext
Loop
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
Då får du väl inga träffar av din SQL-fråga, dvs båda villkoren i din WHERE-sats uppfylls inte.
@nders skrev:
Då får du väl inga träffar av din SQL-fråga, dvs båda villkoren i din WHERE-sats uppfylls inte
Båda villkoren borde vara uppfyllda:som vi ser här så har vi i tblVetskebalans bla lagt till FluidID= 22. Som vi kan se i tblFluids så är FluidID=22 det samma som Plasma
Det här villkoret då: tblFluids.FluidID = tblFluids.FluidNamn?
Stämmer verkligen det? Ett ID som du jämför med ett namn, är det så, och i så fall, ska det vara så?
@nders skrev:
Det här villkoret då: tblFluids.FluidID = tblFluids.FluidNamn?
Stämmer verkligen det? Ett ID som du jämför med ett namn, är det så, och i så fall, ska det vara så?
Jag tycker att det stämmer:
Alltså, det jag vill göra är följande uttryckt i "pseudo":Följande fält vill jag visa
Från tabellerna
Dessutom
i tblFluids.FluidNamn skall visas namnet (=FluidNamn) som motsvarar den FluidID som är lagrat i fältet tblVetskebalans.FluidID.
Vidare är du ju så att:
Förstår ni ovanstående?
Därav mitt förslag på strSQL
strSQL = strSQL = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID, tblVetskebalans.FluidID, tblVetskebalans.Volym FROM " & _
"tblVetskebalans, tblFluids WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND" & _
" tblFluids.FluidID = tblFluids.FluidNamn
Men tydligen har jag tänkt knas någonstans...
Du hade/har rätt LarsG
Men, jag måste medge att ajg inte riktigt förstår varför det funkar...
I strSQL
strSQL = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID, tblVetskebalans.FluidID, tblVetskebalans.Volym FROM " & _
"tblVetskebalans, tblFluids WHERE tblVetskebalans.FluidID = tblFluids.FluidID"
Ser jag ju ingenstans att:
tblVetskebalans.FluidID = tblFluids.FluidNamn...
Varför behövs inte detta förhållande?
Jag funderar och funderar och funderar.... Men kommer ingen vart...
Som jag tolkar strSQL på "pseudosvenska"
Visa fälten tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID, tblVetskebalans.FluidID, tblVetskebalans.Volym från tabellerna tblVetskebalans och tblFluids Där tblVetskebalans.FluidID = tblFluids.FluidID
Men var står att vätskorna skall visas med namn och inte ID ???
tblVetskebalans.FluidID = tblFluids.FluidNamn...
Varför behövs inte detta förhållande?
Därför att villkoret inte fungerar. ID:t kommer aldrig vara lika med namnet (om du inte har en extremt skum datamodell, men det kan jag inte tänka mig).
Men var står att vätskorna skall visas med namn och inte ID ???
Du hämtar ju både namn och ID. Du väljer ju själv vilka fält från recordsetet du vill skriva ut var?