17. oktober 2005 - 15:54
Der er
41 kommentarer og 1 løsning
Mystisk fejl??
Link ser sådan ud fil.asp?id=291 På min ASP side gør jeg følgende. id=Request.QueryString("ID") Jeg kan sagtens printe id ud og bekræfte det er 291. men når jeg vil updatere min record i databasen så får jeg denne id &id=299 skriv ellers WHERE ordrenr="&id 299 er ikke et mystisk tal for der findes også et felt i databasen som hedder ID og i det står der godt nok 299, men det er slet ikke det tal jeg skal bruge. Hvad kan være årsagen til dette problem? Jeg har prøvet at udskrive ordrenr på skærmen og requeste den i WHERE delen, men så får jeg en tom ordrenr= selv om den er på skærmen!
Annonceindlæg fra Bluecircle
17. oktober 2005 - 15:55
#1
hvis jeg requester den direkte bliver den som sagt tom, men får denne fejl Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ordrenr='.
17. oktober 2005 - 15:59
#2
der står desuden 291 i ordrenr i tabellen så det findes altså.
17. oktober 2005 - 16:14
#3
Kan du vise lidt mere kode. Specielt interessant er det hvordan din form ser ud (hvis der er en involveret) og den koden du benytter til at opdatere databasen.
17. oktober 2005 - 16:22
#4
Overfør koden til et program ellers er det uoverskueligt. <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <%Dim ID,opslag Session.LCID = 1030 id=Request.QueryString("ID") Set Connection = Server.CreateObject("ADODB.Connection") Connection.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("../database.mdb") if request.querystring("knap")<>"Ret" then SQLstringK="SELECT * FROM kunde WHERE ordrenr="&id SET opslag=Connection.Execute(SQLstringK) else Set rs = Server.CreateObject("ADODB.Connection") rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("../database.mdb") SQLstringK="UPDATE kunde SET firmanavn='"&Request.QueryString("firmanavn")&"', cvrnummer='"&Request.QueryString("cvrnummer")&"', adresse='"&Request.QueryString("adresse")&"', postnr='"&Request.QueryString("postnr")&"', byen='"&Request.QueryString("byen")&"', tlf='"&Request.QueryString("tlf")&"', mobil='"&Request.QueryString("mobil")&"', fax='"&Request.QueryString("fax")&"', email='"&Request.QueryString("email")&"', hjemmeside='"&Request.QueryString("hjemmeside")&"', beskrivelse='"&Request.QueryString("beskrivelse")&"', kontaktperson='"&Request.QueryString("kontaktperson")&"', ean='"&Request.QueryString("ean")&"', branche='"&Request.QueryString("branche")&"', omrode='"&Request.QueryString("omrode")&"', storrelse="&Request.QueryString("storrelse")&", placering="&Request.QueryString("placering")&", datoet=#"& DateAdd("M", -1, Request.QueryString("datoet")) &"#, datoto=#"&DateAdd("M", -1, Request.QueryString("datoto"))&"#, status='"&Request.QueryString("status")&"', kommentare='"&Request.QueryString("kommentare")&"', pris="&Request.QueryString("pris")&", betalingsdato=#"&Request.QueryString("betalingsdato")&"#,rykker="&Request.QueryString("rykker")&",pakkenavn='"&Request.QueryString("pakke")&"' WHERE ordrenr="&id response.write(SQLstringK) rs.Execute(SQLstringK) response.buffer=true response.clear 'response.redirect "rettet.asp" response.end rs.Close: Set rs = Nothing end if %> <!--#include file=tjek.asp--> <html> <head> <title>Administration</title> <style type="text/css"> .Submitknap { background-color : #e9e9e9; border : 1px solid; border-bottom : 1px solid Gray; border-top : 1px solid Silver; border-left : 1px solid Silver; border-right : 1px solid Gray; font-size: 13px; font-weight: plain; } </style> <style> a:link {text-decoration: none} a:active {text-decoration: none} a:visited {text-decoration: none} a:hover {color: #2E6C92; text-decoration: none} .box {color: #193A4D; border: 1px solid #D0D5D9; background-color: #F3F4F5; font-family:Verdana; font-size:8pt} td {font-family: Tahoma; font-size: 8pt} body {font-family: Tahoma; font-size: 8pt; scrollbar-face-color: #F3F4F5;scrollbar-shadow-color: #ADB6BC; scrollbar-highlight-color: #ADB6BC; scrollbar-3dlight-color: #F3F4F5; scrollbar-darkshadow-color: #F3F4F5; scrollbar-track-color: #FFFFFF; scrollbar-arrow-color: #ADB6BC} .link { text-decoration: none} </style> </head> <body bgcolor="#000000" text="#FFFFFF" link="#0066FF" vlink="#0066FF" alink="#0066FF"> <p align="center"><b><font face="Georgia, Times New Roman, Times, serif" size="4">Ret oplysninger </font></b> <p align="center"><br> <table cellspacing="0" cellpadding="0" border="1" bgcolor="#FFFFFF" width="957" align="center"> <tr valign="top" align="center" bgcolor="#eef6fb"> <td class="downloads" bgcolor="#000000" height="3"> <br> <%if not opslag.eof then%> <form method="GET" action="<%=request.servervariables("grimside/admins/SCRIPT_NAME")%>"> <font face=tahoma size=2> </font> <table width="928" border="0" cellspacing="1" cellpadding="3" class="bottom" align="center" bgcolor="#f7f7f7"> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Firma <br> <input type="text" name="firmanavn" class="bottom" maxlength="50" value="<%=OPSLAG("firmanavn")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"> <p><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">CVR nummer <br> <input type="text" name="cvrnummer" class="bottom" maxlength="50" value="<%=OPSLAG("cvrnummer")%>"> </font></b></p> </td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Adresse<span class="rot"><span class="rot"><font color="#FF0000"> </font></span><br> <input type="text" name="adresse" class="bottom" maxlength="1000" value="<%=OPSLAG("adresse")%>"> </span></font></b></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Post nummer <span class="rot"><br> <input type="text" name="postnr" class="bottom" maxlength="1000" value="<%=OPSLAG("postnr")%>"> </span></font></b></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>By<span class="rot"><br> <input type="text" name="byen" class="bottom" maxlength="1000" value="<%=OPSLAG("byen")%>"> </span></b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Telefon nummer <span class="rot"><br> <input type="text" name="tlf" class="bottom" maxlength="1000" value="<%=OPSLAG("tlf")%>"> </span></b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Mobil nummer <span class="rot"><br> <input type="text" name="mobil" class="bottom" maxlength="1000" value="<%=OPSLAG("mobil")%>"> </span></b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Fax<span class="rot"><br> <input type="text" name="fax" class="bottom" maxlength="1000" value="<%=OPSLAG("fax")%>"> </span></b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>E-mail <br> <input type="text" name="email" class="bottom" maxlength="1000" value="<%=OPSLAG("email")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Hjemmeside<br> <input type="text" name="hjemmeside" class="bottom" maxlength="1000" value="<%=OPSLAG("hjemmeside")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Beskrivelse <br> <textarea name="beskrivelse" class="bottom" cols="70" rows="10"><%=OPSLAG("beskrivelse")%></textarea> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Kontakt person <br> <input type="text" name="kontaktperson" class="bottom" maxlength="1000" value="<%=OPSLAG("kontaktperson")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>EAN <br> <input type="text" name="ean" class="bottom" maxlength="1000" value="<%=OPSLAG("ean")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Branche<br> <input type="text" name="branche" class="bottom" maxlength="1000" value="<%=OPSLAG("branche")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Område<br> <input type="text" name="omrode" class="bottom" maxlength="1000" value="<%=OPSLAG("omrode")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#FFFFFF"> <div align="center"><font color="#FFFFFF"><b></b></font></div> </td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Skiftstørrelse<br> <input type="text" name="storrelse" class="bottom" maxlength="1000" value="<%=OPSLAG("storrelse")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Placering</b> <br> <input type="text" name="placering" class="bottom" maxlength="1000" value="<%=OPSLAG("placering")%>"> </font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <b>Pris</b><br> <% dim nypris if OPSLAG("moms") = 5 then nypris = (OPSLAG("pris") * 0.25) + OPSLAG("pris") else nypris = OPSLAG("pris") end if %> <input type="text" name="pris" class="bottom" maxlength="1000" value="<%= response.write(nypris) %>" size="20"> <b> Kr <br> Denne kunne skal <% if OPSLAG("moms") = 5 then else response.write("IKKE") end if %> </b></font> <b>betale moms! </b></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <b> <br> <% if OPSLAG("status") <> "Betalt" AND betalingsdato < date() AND betalingsdato <> #2000-10-10# then %> Betalingsfrist <font color="#FF0000">IKKE overholdt</font>!<br> <input type="text" name="betalingsdato" class="bottom" maxlength="1000" value="<%=OPSLAG("betalingsdato")%>"> <%else%> <input type="text" name="betalingsdato" class="bottom" maxlength="1000" value="<%=OPSLAG("betalingsdato")%>"> <%end if %> </b> </font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Faktura status<br> <select name="status" style="border-style:groove;"> <option value="Mangler" <%If OPSLAG("status") = "Mangler" Then Response.write("Selected")%>>Mangler</option> <option value="Modtaget" <%If OPSLAG("status") = "Modtaget" Then Response.write("Selected")%>>Modtaget</option> <option value="Betalt" <%If OPSLAG("status") = "Betalt" Then Response.write("Selected")%>>Betalt</option> </select> </font></b></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Rykkere<br> <input type="text" name="rykker" class="bottom" maxlength="1000" value="<%=OPSLAG("rykker")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Pakkeløsning<br> <input type="text" name="pakke" class="bottom" maxlength="1000" value="<%=OPSLAG("pakkenavn")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br> <b>Fra </b>- Hvis der rettes skal dato formatet overholdes! DD-MM-YYYY <br> <b> <input type="text" name="datoet" class="bottom" maxlength="1000" value=" <%=response.write(DKDato(DateAdd("M", 1, OPSLAG("datoet")),"#1"))%>"> </b><br> <b>Til </b>- Hvis der rettes skal dato formatet overholdes! DD-MM-YYYY <br> </font><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <b> <input type="text" name="datoto" class="bottom" maxlength="1000" value=" <%=response.write(DKDato(DateAdd("M", 1, OPSLAG("datoto")),"#1"))%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Kommentare<br> <textarea name="kommentare" class="bottom" cols="70" rows="10"><%=OPSLAG("kommentare")%></textarea> </b></font></td> </tr> </table> <input type="hidden" name="id" value="<%=opslag("id")%>"> <p> <input type="submit" value="Ret" name="knap"> </p> </form> <%end if%> <br> </td> </tr> </table> <p> </p> <% Connection.Close: Set Connection = Nothing %> </body> </html> <script language="VBScript" runat="Server"> Function DKDato(nDato, nFormat) If isDate(nDato) = False Then DKDato = nDato Exit Function End If Dim arrMinth Dim arrDays arrMonth = "januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december" arrMonth = Split(arrMonth,",") datDay = PutZero(Day(nDato)) datMonth = PutZero(Month(nDato)) datYear = Year(nDato) datHour = PutZero(Hour(nDato)) datMin = PutZero(Minute(nDato)) datSec = PutZero(Second(nDato)) Select Case nFormat Case "#1" DKDato = datDay&"-"&datMonth&"-"&Mid(datYear,3,2) Case "#2" DKDato = datDay&"-"&datMonth&"-"&Mid(datYear,3,2)&" "&datHour&":"&datMin Case "#3" DKDato = datDay&"-"&datMonth&"-"&Mid(datYear,3,2)&" "&datHour&":"&datMin&":"&datSec Case "#4" DKDato = datDay&"-"&datMonth&"-"&datYear Case "#5" DKDato = datDay&"-"&datMonth&"-"&datYear&" "&datHour&":"&datMin Case "#6" DKDato = datDay&"-"&datMonth&"-"&datYear&" "&datHour&":"&datMin&":"&datSec Case "#7" DKDato = datDay&". "&arrMonth(datMonth-1)&" "&datYear Case "#8" DKDato = datDay&". "&arrMonth(datMonth-1)&" "&datYear&" kl. "&datHour&":"&datMin Case "#9" DKDato = datDay&". "&arrMonth(datMonth-1)&" "&datYear&" kl. "&datHour&":"&datMin&":"&datSec Case Else DKDato = nDato End Select End Function Function PutZero(value) If Len(value) = 1 Then value="0"&value PutZero = value End Function </script>
17. oktober 2005 - 16:30
#5
At skyde med spredhagl her er tilladt! Jeg gør det gerne selv! Med andre ord så er alle bud meget velkomne!
17. oktober 2005 - 16:39
#6
Nogle umiddelbare forslag: Ombryd dine SQL-sætninger når de er så lange som dem du har der. Benyt method="POST" på din form, når du har så meget data som du har i den form (specielt når du har et eller flere textarea's). Dette betyder så at du skal benytte request.form i stedet for request.querystring til at hente data ud af formularen. Jeg tror dog det vil løse dit problem, da du både har et id i formularen og så det id som du ønsker at kalde siden med (det er jo hele 2 id'er i querystring, hvilket ikke lyder særligt hensigtsmæssigt - hvis jeg har forstået dit oplæg korrekt).
17. oktober 2005 - 16:41
#7
Desuden er en connection vel nok. Du starter siden med at oprette en connection og så laver du lige en mere i din else-del... Desuden vil jeg anbefale at du holder dig fra at kalde dit connectionobjekt for rs, da dette er en ret brugt navngivning for recordsets. Det giver dig ikke en fejl, men det gør din kode sværere at vedligeholde fordi den afviger fra hvad man "normalt" ville forvente en variabel med navnet rs indeholder...
17. oktober 2005 - 16:44
#8
Mht. ombrydning af SQL-sætning, så vil jeg foreslå dette format: SQLstringK = "UPDATE kunde SET " & _ "firmanavn='"&Request.QueryString("firmanavn")&"'," & _ "cvrnummer='"&Request.QueryString("cvrnummer")&"'," & _ "adresse='"&Request.QueryString("adresse")&"'," & _ "postnr='"&Request.QueryString("postnr")&"'," & _ "byen='"&Request.QueryString("byen")&"'," & _ "tlf='"&Request.QueryString("tlf")&"'," & _ "mobil='"&Request.QueryString("mobil")&"'," & _ "fax='"&Request.QueryString("fax")&"'," & _ "email='"&Request.QueryString("email")&"'," & _ "hjemmeside='"&Request.QueryString("hjemmeside")&"'," & _ "beskrivelse='"&Request.QueryString("beskrivelse")&"'," & _ "kontaktperson='"&Request.QueryString("kontaktperson")&"'," & _ "ean='"&Request.QueryString("ean")&"'," & _ "branche='"&Request.QueryString("branche")&"'," & _ "omrode='"&Request.QueryString("omrode")&"'," & _ "storrelse="&Request.QueryString("storrelse")&"," & _ "placering="&Request.QueryString("placering")&"," & _ "datoet=#"& DateAdd("M", -1, Request.QueryString("datoet")) &"#," & _ "datoto=#"&DateAdd("M", -1, Request.QueryString("datoto"))&"#," & _ "status='"&Request.QueryString("status")&"'," & _ "kommentare='"&Request.QueryString("kommentare")&"'," & _ "pris="&Request.QueryString("pris")&"," & _ "betalingsdato=#"&Request.QueryString("betalingsdato")&"#," & _ "rykker="&Request.QueryString("rykker")&"," & _ "pakkenavn='"&Request.QueryString("pakke")&"' " & _ "WHERE ordrenr="&id Det er meget lettere at overskue end den du benytter i dit kodeeksempel.
17. oktober 2005 - 16:48
#9
Jeg skal smutte nu men læser lige dine kommentare når jeg er tilbage. Prøvede at ændre til POST og request form men fik denne fejl igen Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ordrenr='.
17. oktober 2005 - 17:38
#10
Ja, hvis du bare ændrer til POST og ikke gør andet så skal det fejle, for så skal du ikke længere benytte Request.QueryString til at hente værdierne ud, men i stedet Request.Form (men det finder du jo nok ud af når du får læst mine kommentarer... :)).
17. oktober 2005 - 17:40
#11
Ydermere skal dit form-tag nok se således ud: <form method="GET" action="<%=request.servervariables("SCRIPT_NAME")%>"> i stedet for det nuværende. Det ser da ikke korrekt ud.
17. oktober 2005 - 17:41
#12
...og så skal det være med POST <form method="POST" action="<%=request.servervariables("SCRIPT_NAME")%>"> ...og hvad deraf følger... :)
17. oktober 2005 - 18:20
#13
Jeg er tilbage igen:) Jeg får stadig denne fejl Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ordrenr='. bruger ellers id=Request.Form("ID") nu og POST nu fejler den allerede her SQLstringK="SELECT * FROM kunde WHERE ordrenr="&id altså før jeg trykker på ret knappen. Hvad kan det ellers være?
17. oktober 2005 - 18:25
#14
Ja, for første gang du kommer ind på siden ligger der ikke noget i request.form("id"). Det er her du skal bruge request.querystring("id") til at finde kunden. Om du vil lave et check på om form("id") findes inden querystring("id") benyttes er op til dig, men jeg tror det er problemet lige nu...
17. oktober 2005 - 18:52
#15
Jeg er ikke helt med på hvordan problemet skal løses?
17. oktober 2005 - 18:57
#16
Grunden til at dit id er forskelligt, er det ikke at det ene id er rent faktisk et ordrenr, mens det andet er id'et fra den kunden...?
17. oktober 2005 - 19:00
#17
Men under alle omstændigheder... sæt form-elementets method til POST og skriv din SQL således: SQLstringK = "UPDATE kunde SET " & _ "firmanavn='"&Request.Form("firmanavn")&"'," & _ "cvrnummer='"&Request.Form("cvrnummer")&"'," & _ "adresse='"&Request.Form("adresse")&"'," & _ "postnr='"&Request.Form("postnr")&"'," & _ "byen='"&Request.Form("byen")&"'," & _ "tlf='"&Request.Form("tlf")&"'," & _ "mobil='"&Request.Form("mobil")&"'," & _ "fax='"&Request.Form("fax")&"'," & _ "email='"&Request.Form("email")&"'," & _ "hjemmeside='"&Request.Form("hjemmeside")&"'," & _ "beskrivelse='"&Request.Form("beskrivelse")&"'," & _ "kontaktperson='"&Request.Form("kontaktperson")&"'," & _ "ean='"&Request.Form("ean")&"'," & _ "branche='"&Request.Form("branche")&"'," & _ "omrode='"&Request.Form("omrode")&"'," & _ "storrelse="&Request.Form("storrelse")&"," & _ "placering="&Request.Form("placering")&"," & _ "datoet=#"& DateAdd("M", -1, Request.Form("datoet")) &"#," & _ "datoto=#"&DateAdd("M", -1, Request.Form("datoto"))&"#," & _ "status='"&Request.Form("status")&"'," & _ "kommentare='"&Request.Form("kommentare")&"'," & _ "pris="&Request.Form("pris")&"," & _ "betalingsdato=#"&Request.Form("betalingsdato")&"#," & _ "rykker="&Request.Form("rykker")&"," & _ "pakkenavn='"&Request.Form("pakke")&"' " & _ "WHERE ordrenr=" & ordrenr Og så i stedet for at kalde ordrenr for id, når du kalder siden, så kald det for ordrenr, så du kan skelne mellem ordrenr og kundens id...
17. oktober 2005 - 19:01
#18
Det er fordi der i databasen er en kolonne som hedder ordrenr og et som hedder id. ordrenr er en ny kolonne jeg har oprettet fordi det er ikke alle kunder som skal have et ordrenr og eftersom id kolonnen er primary key og har autonummer så kunne den ikke rigtig bruges. Det underlige er selvfølgelig, at man kan hente en kunde frem med hans ordrenr, men man kan ikke rette i den for så er ordrenr pludselig tom og ellers tager den af en eller anden grund ID overfor ordrenr og det går ikke. Denne forvirre dig sikkert id=Request.QueryString("ID") der kunne ligeså godt have stået ordrenr =Request.QueryString("ID") uanset hvad så virker det ikke
17. oktober 2005 - 19:06
#19
Nej, det hænger ganske givet sammen med at jeg ikke har forstået databasestrukturen :) Den kan du måske hjælpe mig med at få en bedre forståelse af/for? Sidestrukturen kan jeg jo se i dit post, så ud over databasen, mangler jeg vel egentlig bare at forstå hvordan det skal bruges... kan du uddybe det lidt?
17. oktober 2005 - 19:10
#20
Må nok hellere lige sige en vigtig ting. Hvis en kunde har ID 200 og ordrenr 200 så virker koden fint! men hvis ID er 210 og ordrenr 200 så virker det ikke. I den første kode jeg viste dig der stod der 210 i "WHERE ordrenr=" & id selv om der som sagt i url'en stod 200. Der er ingen ordrenr med tal 210 endnu så derfor fik jeg ingen fejl, men bare en blank side. Hvis den have skrevet 200 som er det id der bliver sendt med ville den fungere
17. oktober 2005 - 19:12
#21
Der er ikke nogen avanceret struktur over databasen. Det er bare en "kunde" tabel med de kolonner som du kan se man skal indtaste øverst. Før hentede jeg kunder ud fra deres ID, men skal det altså være med ordrenr istedet, men i det virker bare ikke desværre.
17. oktober 2005 - 19:13
#22
Det skal ikke bruges til noget specielt:) Jeg skal bare opdatere nogle oplysninger i databasen hvor ordrenr er ligmed det nummer der bliver sendt med i url'en
17. oktober 2005 - 19:14
#23
Prøv lige at gennemgå et scenarie for brugen af denne side - fra man aktiverer siden til man har opdateret data første gang. Trin for trin...
17. oktober 2005 - 19:14
#24
OK, der kom jeg lige lidt for sent :)
17. oktober 2005 - 19:15
#25
Hvad skal der ske hvis der ikke findes en kunde med det angivne ordrenr.?
17. oktober 2005 - 19:18
#26
1. Indtast ordrenr i en form på en html side og tryk hent 2. Alle de felter som du kan se øverst i min post er udfyldt (korrekt) 3. Jeg laver en rettelse i et felt og trykker på knappen ret. så kommer fejlen.
17. oktober 2005 - 19:23
#27
Hvis et ordrenr ikke findes så vil den allerede brokke sig i fase 1, men jeg ved de findes for den viser oplysninger om kunden. Hvis vi ser på den kode jeg kom med helt fra start så var problemet ikke så slemt skulle man tro. Et lille eksempel Hvis en kunde havde ID 20 og ordrenr 10 så ville jeg hente kunden fil.asp?id=10 men den skriver desværre ID nummeret i betingelsen og derfor virker den ikke WHERE ordrenr=" & 20 den skal skrive WHERE ordrenr=" & 10
17. oktober 2005 - 19:27
#28
Nu fik jeg lige rettet denne kode inden du skrev forklaringen, så prøv lige denne af, men jeg kigger på din beskrivelse: <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <%Dim ID,opslag Session.LCID = 1030 ordrenr = Request.QueryString("id") Set Connection = Server.CreateObject("ADODB.Connection") Connection.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("../database.mdb") if request.querystring("knap") <> "Ret" then SQLstringK="SELECT * FROM kunde WHERE ordrenr=" & ordrenr SET opslag=Connection.Execute(SQLstringK) else SQLstringK = "UPDATE kunde SET " & _ "firmanavn='"&Request.Form("firmanavn")&"'," & _ "cvrnummer='"&Request.Form("cvrnummer")&"'," & _ "adresse='"&Request.Form("adresse")&"'," & _ "postnr='"&Request.Form("postnr")&"'," & _ "byen='"&Request.Form("byen")&"'," & _ "tlf='"&Request.Form("tlf")&"'," & _ "mobil='"&Request.Form("mobil")&"'," & _ "fax='"&Request.Form("fax")&"'," & _ "email='"&Request.Form("email")&"'," & _ "hjemmeside='"&Request.Form("hjemmeside")&"'," & _ "beskrivelse='"&Request.Form("beskrivelse")&"'," & _ "kontaktperson='"&Request.Form("kontaktperson")&"'," & _ "ean='"&Request.Form("ean")&"'," & _ "branche='"&Request.Form("branche")&"'," & _ "omrode='"&Request.Form("omrode")&"'," & _ "storrelse="&Request.Form("storrelse")&"," & _ "placering="&Request.Form("placering")&"," & _ "datoet=#"& DateAdd("M", -1, Request.Form("datoet")) &"#," & _ "datoto=#"&DateAdd("M", -1, Request.Form("datoto"))&"#," & _ "status='"&Request.Form("status")&"'," & _ "kommentare='"&Request.Form("kommentare")&"'," & _ "pris="&Request.Form("pris")&"," & _ "betalingsdato=#"&Request.Form("betalingsdato")&"#," & _ "rykker="&Request.Form("rykker")&"," & _ "pakkenavn='"&Request.Form("pakke")&"' " & _ "WHERE ordrenr=" & Request.Form("ordrenr") response.write(SQLstringK) connection.Execute(SQLstringK) connection.Close Set connection = Nothing response.end end if %> <!--#include file=tjek.asp--> <html> <head> <title>Administration</title> <style type="text/css"> .Submitknap { background-color : #e9e9e9; border : 1px solid; border-bottom : 1px solid Gray; border-top : 1px solid Silver; border-left : 1px solid Silver; border-right : 1px solid Gray; font-size: 13px; font-weight: plain; } </style> <style> a:link {text-decoration: none} a:active {text-decoration: none} a:visited {text-decoration: none} a:hover {color: #2E6C92; text-decoration: none} .box {color: #193A4D; border: 1px solid #D0D5D9; background-color: #F3F4F5; font-family:Verdana; font-size:8pt} td {font-family: Tahoma; font-size: 8pt} body {font-family: Tahoma; font-size: 8pt; scrollbar-face-color: #F3F4F5;scrollbar-shadow-color: #ADB6BC; scrollbar-highlight-color: #ADB6BC; scrollbar-3dlight-color: #F3F4F5; scrollbar-darkshadow-color: #F3F4F5; scrollbar-track-color: #FFFFFF; scrollbar-arrow-color: #ADB6BC} .link { text-decoration: none} </style> </head> <body bgcolor="#000000" text="#FFFFFF" link="#0066FF" vlink="#0066FF" alink="#0066FF"> <p align="center"><b><font face="Georgia, Times New Roman, Times, serif" size="4">Ret oplysninger </font></b> <p align="center"><br> <table cellspacing="0" cellpadding="0" border="1" bgcolor="#FFFFFF" width="957" align="center"> <tr valign="top" align="center" bgcolor="#eef6fb"> <td class="downloads" bgcolor="#000000" height="3"> <br> <%if not opslag.eof then%> <form method="POST" action="grimside/admins/<%=request.servervariables("SCRIPT_NAME")%>"> <font face=tahoma size=2> </font> <table width="928" border="0" cellspacing="1" cellpadding="3" class="bottom" align="center" bgcolor="#f7f7f7"> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Firma <br> <input type="text" name="firmanavn" class="bottom" maxlength="50" value="<%=OPSLAG("firmanavn")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"> <p><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">CVR nummer <br> <input type="text" name="cvrnummer" class="bottom" maxlength="50" value="<%=OPSLAG("cvrnummer")%>"> </font></b></p> </td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Adresse<span class="rot"><span class="rot"><font color="#FF0000"> </font></span><br> <input type="text" name="adresse" class="bottom" maxlength="1000" value="<%=OPSLAG("adresse")%>"> </span></font></b></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Post nummer <span class="rot"><br> <input type="text" name="postnr" class="bottom" maxlength="1000" value="<%=OPSLAG("postnr")%>"> </span></font></b></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>By<span class="rot"><br> <input type="text" name="byen" class="bottom" maxlength="1000" value="<%=OPSLAG("byen")%>"> </span></b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Telefon nummer <span class="rot"><br> <input type="text" name="tlf" class="bottom" maxlength="1000" value="<%=OPSLAG("tlf")%>"> </span></b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Mobil nummer <span class="rot"><br> <input type="text" name="mobil" class="bottom" maxlength="1000" value="<%=OPSLAG("mobil")%>"> </span></b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Fax<span class="rot"><br> <input type="text" name="fax" class="bottom" maxlength="1000" value="<%=OPSLAG("fax")%>"> </span></b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>E-mail <br> <input type="text" name="email" class="bottom" maxlength="1000" value="<%=OPSLAG("email")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Hjemmeside<br> <input type="text" name="hjemmeside" class="bottom" maxlength="1000" value="<%=OPSLAG("hjemmeside")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Beskrivelse <br> <textarea name="beskrivelse" class="bottom" cols="70" rows="10" ID="Textarea1"><%=OPSLAG("beskrivelse")%></textarea> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Kontakt person <br> <input type="text" name="kontaktperson" class="bottom" maxlength="1000" value="<%=OPSLAG("kontaktperson")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>EAN <br> <input type="text" name="ean" class="bottom" maxlength="1000" value="<%=OPSLAG("ean")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Branche<br> <input type="text" name="branche" class="bottom" maxlength="1000" value="<%=OPSLAG("branche")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Område<br> <input type="text" name="omrode" class="bottom" maxlength="1000" value="<%=OPSLAG("omrode")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#FFFFFF"> <div align="center"><font color="#FFFFFF"><b></b></font></div> </td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Skiftstørrelse<br> <input type="text" name="storrelse" class="bottom" maxlength="1000" value="<%=OPSLAG("storrelse")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Placering</b> <br> <input type="text" name="placering" class="bottom" maxlength="1000" value="<%=OPSLAG("placering")%>"> </font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <b>Pris</b><br> <% dim nypris if OPSLAG("moms") = 5 then nypris = (OPSLAG("pris") * 0.25) + OPSLAG("pris") else nypris = OPSLAG("pris") end if %> <input type="text" name="pris" class="bottom" maxlength="1000" value="<%= response.write(nypris) %>" size="20"> <b> Kr <br> Denne kunne skal <% if OPSLAG("moms") = 5 then else response.write("IKKE") end if %> </b></font> <b>betale moms! </b></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <b> <br> <% if OPSLAG("status") <> "Betalt" AND betalingsdato < date() AND betalingsdato <> #2000-10-10# then %> Betalingsfrist <font color="#FF0000">IKKE overholdt</font>!<br> <input type="text" name="betalingsdato" class="bottom" maxlength="1000" value="<%=OPSLAG("betalingsdato")%>"> <%else%> <input type="text" name="betalingsdato" class="bottom" maxlength="1000" value="<%=OPSLAG("betalingsdato")%>"> <%end if %> </b> </font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Faktura status<br> <select name="status" style="border-style:groove;"> <option value="Mangler" <%If OPSLAG("status") = "Mangler" Then Response.write("Selected")%>>Mangler</option> <option value="Modtaget" <%If OPSLAG("status") = "Modtaget" Then Response.write("Selected")%>>Modtaget</option> <option value="Betalt" <%If OPSLAG("status") = "Betalt" Then Response.write("Selected")%>>Betalt</option> </select> </font></b></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Rykkere<br> <input type="text" name="rykker" class="bottom" maxlength="1000" value="<%=OPSLAG("rykker")%>" ID="Text20"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Pakkeløsning<br> <input type="text" name="pakke" class="bottom" maxlength="1000" value="<%=OPSLAG("pakkenavn")%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br> <b>Fra </b>- Hvis der rettes skal dato formatet overholdes! DD-MM-YYYY <br> <b> <input type="text" name="datoet" class="bottom" maxlength="1000" value=" <%=response.write(DKDato(DateAdd("M", 1, OPSLAG("datoet")),"#1"))%>"> </b><br> <b>Til </b>- Hvis der rettes skal dato formatet overholdes! DD-MM-YYYY <br> </font><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <b> <input type="text" name="datoto" class="bottom" maxlength="1000" value=" <%=response.write(DKDato(DateAdd("M", 1, OPSLAG("datoto")),"#1"))%>"> </b></font></td> </tr> <tr bgcolor="#CCCCCC"> <td width="920" bgcolor="#000000"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Kommentare<br> <textarea name="kommentare" class="bottom" cols="70" rows="10"><%=OPSLAG("kommentare")%></textarea> </b></font></td> </tr> </table> <input type="hidden" name="ordrenr" value="<%=opslag("ordrenr")%>"> <input type="hidden" name="id" value="<%=opslag("id")%>"> <p> <input type="submit" value="Ret" name="knap"> </p> </form> <%end if%> <br> </td> </tr> </table> <p> </p> <% Connection.Close Set Connection = Nothing %> </body> </html> <script language="VBScript" runat="Server"> Function DKDato(nDato, nFormat) If isDate(nDato) = False Then DKDato = nDato Exit Function End If Dim arrMinth Dim arrDays arrMonth = "januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december" arrMonth = Split(arrMonth,",") datDay = PutZero(Day(nDato)) datMonth = PutZero(Month(nDato)) datYear = Year(nDato) datHour = PutZero(Hour(nDato)) datMin = PutZero(Minute(nDato)) datSec = PutZero(Second(nDato)) Select Case nFormat Case "#1" DKDato = datDay&"-"&datMonth&"-"&Mid(datYear,3,2) Case "#2" DKDato = datDay&"-"&datMonth&"-"&Mid(datYear,3,2)&" "&datHour&":"&datMin Case "#3" DKDato = datDay&"-"&datMonth&"-"&Mid(datYear,3,2)&" "&datHour&":"&datMin&":"&datSec Case "#4" DKDato = datDay&"-"&datMonth&"-"&datYear Case "#5" DKDato = datDay&"-"&datMonth&"-"&datYear&" "&datHour&":"&datMin Case "#6" DKDato = datDay&"-"&datMonth&"-"&datYear&" "&datHour&":"&datMin&":"&datSec Case "#7" DKDato = datDay&". "&arrMonth(datMonth-1)&" "&datYear Case "#8" DKDato = datDay&". "&arrMonth(datMonth-1)&" "&datYear&" kl. "&datHour&":"&datMin Case "#9" DKDato = datDay&". "&arrMonth(datMonth-1)&" "&datYear&" kl. "&datHour&":"&datMin&":"&datSec Case Else DKDato = nDato End Select End Function Function PutZero(value) If Len(value) = 1 Then value="0"&value PutZero = value End Function </script>
17. oktober 2005 - 19:28
#29
Det kan i øvrigt godt være du lige skal udskifte form-elementet med denne <form method="POST" action="<%=request.servervariables("SCRIPT_NAME")%>">
17. oktober 2005 - 19:31
#30
Den nye kode giver denne fejl igen Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ordrenr='. det er MEGET mysisk! Det er der jeg selv hele tiden er endt. Udskriver lige sqlen og ser hvilken ID den giver. Den er sikkert tom
17. oktober 2005 - 19:34
#31
Det kan jeg ikke få den til med din kode, men fejlen er præcis den samme som den jeg selv fik hvis jeg requestede ID'et direkte fra url'en.
17. oktober 2005 - 19:36
#32
Det her burde virke ordrenr="&Request.QueryString("ordrenr")&"" Jeg lavede en <%=OPSLAG("ordrenr")%>"> på siden og det er det rigtige nummer. men får samme fejl som med din kode
17. oktober 2005 - 19:48
#33
Hvad betyder fejlen helt præcist? Det virker som om den brokker sig over der ikke kommer nogle tal efter ordrenr eller, at det den slet ikke kan finde tabellen ordrenr i databasen. selv om jeg sagtens kan hente en kunde ud fra et ordrenr!
17. oktober 2005 - 19:55
#34
17. oktober 2005 - 19:55
#35
Prøv lige at rette linie 9 (eller deromkring) til dette: if request.form("knap") <> "Ret" then
17. oktober 2005 - 19:57
#36
Som du selv siger er det jo ikke en voldsom kompliceret side, problemerne opstår bare fordi der fra starten har været lidt forvirring om, hvilke virkemidler du skulle bruge for at opnå hvad. Jeg er ret overbevist om at vi nok skal finde en løsning (snart)...
17. oktober 2005 - 20:03
#37
min gode mand! læg et svar! Det virker nu! betyder det virkelig så meget om man bruger request.query eller request.form? kan du forklare mig hvad der egentlig skete? Husk at ligge et svar!
17. oktober 2005 - 20:05
#38
Du fik også lige lidt karma for det her:)
17. oktober 2005 - 20:07
#39
Ja, i hele konverteringen mellem querystring til form, var der nogle hængepartier som ikke var blevet rettet op. Desuden har jeg tilføjet et felt i formularen som indeholder ordrenr, så den kan genbruges i opdateringen i stedet for at sende den som parameter til siden. Alternativt skulle du have opdateret på grundlag af kundeens id i stedet for ordrenr (det kan jeg dog ikke lige pt. gennemskue om ville fungere umiddelbart). Som sagt, det var en række ting som gik galt, men dem fik vi heldigvis rettet op på :)
17. oktober 2005 - 20:12
#40
Jeg siger mange tak for hjælpen! Koden ser endda pæn ud nu:)!
17. oktober 2005 - 20:14
#41
LOL - Jeg er miljøskadet - kan ikke udstå grim kode ;-) Velbekomme og tak for point :)
Kurser inden for grundlæggende programmering