Avatar billede JenZen Novice
19. september 2005 - 12:25 Der er 27 kommentarer og
1 løsning

form der skriver til db fejl

Nedenstående fejler blot uden at skrive til databasen, nogen idéer ?


<% Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/db/KundeDB.mdb") %>
<% if Request("Opret") = "Post" then
strSQL = "Insert into Kunder(Dato, Kundetype, Selskab, Butik, Navn, Nummer) values('" & Request("Dato") & "','" & Request("Kundetype") & "','"  & Request("Selskab") & "','" & Request("Butik") & "','"  & Request("Navn") & "','" & Request("Nummer") & "','"
Conn.Execute(strSQL)
Conn.Close
Response.Redirect "print.asp"
End if %>
Avatar billede busschou Praktikant
19. september 2005 - 12:29 #1
som regel hjælper det hvis du vedlæger fejl medelelsen ;o)
Men der skal ikke ' omkring datoer i access derimod skal der # så måske det er en af fejlene og så skal der ingen ting omkring tal, så hvis "nummer" er et tal og ikke en streng skal ' væk
altså
strSQL = "Insert into Kunder(Dato, Kundetype, Selskab, Butik, Navn, Nummer) values(#" & Request("Dato") & "#,'" & Request("Kundetype") & "','"  & Request("Selskab") & "','" & Request("Butik") & "','"  & Request("Navn") & "'," & Request("Nummer")
Avatar billede busschou Praktikant
19. september 2005 - 12:30 #2
og så mangler der en parantes til sidst
strSQL = "Insert into Kunder(Dato, Kundetype, Selskab, Butik, Navn, Nummer) values(#" & Request("Dato") & "#,'" & Request("Kundetype") & "','"  & Request("Selskab") & "','" & Request("Butik") & "','"  & Request("Navn") & "'," & Request("Nummer") & ")"
Avatar billede softspot Forsker
19. september 2005 - 12:30 #3
Hvilken fejl får du?

Prøv evt. at skrive SQL ud i browservinduet, så kan det være det er lettere at se hvad fejlen er...
Avatar billede busschou Praktikant
19. september 2005 - 12:30 #4
en god ide er altid at se på fejlmedelelsen som det ene
Det andet er at det kan være en hjælp at udskrive sin sql for at give overblik inden den udføres
altså
---
response.write strSQL
Conn.Execute(strSQL)
Avatar billede softspot Forsker
19. september 2005 - 12:31 #5
ja, ok det er nok en syntaksfejl i sql-sætningen... )
Avatar billede JenZen Novice
19. september 2005 - 13:11 #6
Lyder måske total åndsvagt, men den sætning der hedder if Request("Opret") = "Post" then kan man ikke fjerne den så den kører scriptet igennem uanset hvad ?

<% if Request("Opret") = "Post" then
strSQL = "Insert into Test(Dato, Kundetype, Selskab, Butik, Navn, Nummer) values(#" & Request("Dato") & "#,'" & Request("Kundetype") & "','"  & Request("Selskab") & "','" & Request("Butik") & "','"  & Request("Navn") & "'," & Request("Nummer") & ")"
response.write strSQL
Conn.Execute(strSQL)
Response.Redirect "print.asp"
End if %>
Avatar billede softspot Forsker
19. september 2005 - 13:19 #7
Nej, for den checker (formegentlig) om en submit-knap ved navn Opret (med teksten "Post") er blevet trykket for at aktivere formularen... hvis du fjerner den, vil koden nok blive udført ubetinget (og dermed også første gang siden vises, dvs. inden der er angivet noget i formularen) og det vil du vel ikke...?
Avatar billede busschou Praktikant
19. september 2005 - 13:20 #8
det kommer an på om koden er på samme side som formen er på?
Hvis du fra side1.asp klikker på en form til side2.asp som så redirekter til side3.asp
Ja så er der jo ingen som går ind  på side2.asp uden at have submittet formen :o)
Men ellers har softspot ret :oD
Avatar billede JenZen Novice
19. september 2005 - 13:21 #9
Den er delvist inde påm side2 v.h.a. mode...
Avatar billede busschou Praktikant
19. september 2005 - 13:24 #10
den forstod jeg ikke?
Avatar billede softspot Forsker
19. september 2005 - 13:25 #11
Jeg skulle lige til at spørge: hvordan er din sider bygget på?
Avatar billede softspot Forsker
19. september 2005 - 13:26 #12
"...bygget på?"

Det hedder det sq da ikke! Det hedder "...bygget op" (i dette tilfælde :))
Avatar billede JenZen Novice
19. september 2005 - 13:26 #13
Ja, på side 1 ( indtastning.asp?butik=Test ) taster jeg i formularen som køres gennem ( indtastning.asp?mode=opret&butik=test ) som derefter sender respons på formularen til ( indtastning.asp?mode=print ).


Giver det mening ?
Avatar billede busschou Praktikant
19. september 2005 - 13:27 #14
ja det giver mening, og det er samme side og derfor er det nødvendigt at du tjekker om du skal oprette eller ej da det ellers altid vil gøres uanset hvad
Avatar billede JenZen Novice
19. september 2005 - 13:28 #15
Prøv at se siden her.. [HELE KODEN]

<% mode = request("mode") %>
<% If mode="" then %>
<html>
<head>
<title>Indtastning</title>
</head>
<body>
<form action="Indtastning.asp" method="POST">
<b><font face="Verdana,Arial" size="2">Indtastning af Nye SMS Kunder:</font></b><table border="0" id="Data">
        <tr>
            <td width="100"><b><font face="Verdana,Arial" size="1">Kundetype</font></b></td>
            <td width="100"><b><font face="Verdana,Arial" size="1">Selskab</font></b></td>
            <td width="150"><b><font face="Verdana,Arial" size="1">Navn</font></b></td>
            <td width="100"><b><font face="Verdana,Arial" size="1">Nummer:</font></b></td>
            <td colspan="2">&nbsp;</td>
        </tr>
        <tr>
            <td width="100"><font size="1" face="Verdana,Arial">
            <select size="1" name="Type" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px">
            <option value="Privat">Privat</option>
            <option value="Erhverv">Erhverv</option>
            </select></font></td>
            <td width="100"><font size="1" face="Verdana,Arial"><select size="1" name="Selskab" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px">
            <option value="Telia">Telia</option>
            <option value="Sonofon">Sonofon</option>
            </select></font></td>
            <td width="150"><font size="1" face="Verdana,Arial">
            <input name="Navn" size="20" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px"></font></td>
            <td width="100"><font size="1" face="Verdana,Arial">
            <input name="MobilNummer" size="10" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px"></font></td>
            <td>
            <input border="0" src="images/Reset.jpg" name="Reset" width="24" height="24" type="image" onclick="reset" ></td>
            <td><font size="1" face="Verdana,Arial">
            <input border="0" src="images/Add.jpg" name="Send" width="24" height="24" type="image" onclick="submit"></font></td>
        </tr>
        </table>
            <input type="hidden" name="Butik" value="<%=Request.QueryString("Butik")%>">
            <input type="hidden" name="Dato" value="<%= FormatDateTime(Now, 2) %>">
</form>
</body>
</html>
<% End If %>

<% If mode="Opret" then %>
<!--#include virtual="/Includes/Connection.asp"-->
<% if Request("Opret") = "Post" then
strSQL = "Insert into Test(Dato, Kundetype, Selskab, Butik, Navn, Nummer) values(#" & Request("Dato") & "#,'" & Request("Kundetype") & "','"  & Request("Selskab") & "','" & Request("Butik") & "','"  & Request("Navn") & "'," & Request("Nummer") & ")"
response.write strSQL
Conn.Execute(strSQL)
Response.Redirect "print.asp"
End if %>
<% End If %>

<% If mode="Print" then %>
PRINT
<% End If %>
Avatar billede busschou Praktikant
19. september 2005 - 13:28 #16
men hvis du har
mode = opret og mode = print
så giver det ingen mening at benytte request(opret)
Og det giver ingen mening at lave en redirect til print.asp
Avatar billede JenZen Novice
19. september 2005 - 13:30 #17
Nej, det er også derfor jeg gerne vil have den slettet.

Redirect til print.asp er også en fejl det skal selvf. være indtastning.asp?mode=print
Avatar billede busschou Praktikant
19. september 2005 - 13:35 #18
altså det ser fint nok ud i din kode, og som du har det er du nød til at have den if sætning
Det eneste du kan lave om er at lave det om til en if else i stedet for tre if
---
du har pseudo kode!
---
if "" then
  //
end if
if "opret" then
  //
end if
if "print" then
  //
end if
---
kan laveds om til
---
if "" then
  //
elseif "opret" then
  //
elseif "print" then
  //
end if
---
Avatar billede JenZen Novice
19. september 2005 - 13:40 #19
Sådan her ?

Og hvordan slipper jeg af med "if Request("Opret") = "Post" then"

<% mode = request("mode") %>
<% If mode="" then %>
<html>
<head>
<title>Indtastning</title>
</head>
<body>
<form action="Indtastning.asp" method="POST">
<b><font face="Verdana,Arial" size="2">Indtastning af Nye SMS Kunder:</font></b><table border="0" id="Data">
        <tr>
            <td width="100"><b><font face="Verdana,Arial" size="1">Kundetype</font></b></td>
            <td width="100"><b><font face="Verdana,Arial" size="1">Selskab</font></b></td>
            <td width="150"><b><font face="Verdana,Arial" size="1">Navn</font></b></td>
            <td width="100"><b><font face="Verdana,Arial" size="1">Nummer:</font></b></td>
            <td colspan="2">&nbsp;</td>
        </tr>
        <tr>
            <td width="100"><font size="1" face="Verdana,Arial">
            <select size="1" name="Type" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px">
            <option value="Privat">Privat</option>
            <option value="Erhverv">Erhverv</option>
            </select></font></td>
            <td width="100"><font size="1" face="Verdana,Arial"><select size="1" name="Selskab" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px">
            <option value="Telia">Telia</option>
            <option value="Sonofon">Sonofon</option>
            </select></font></td>
            <td width="150"><font size="1" face="Verdana,Arial">
            <input name="Navn" size="20" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px"></font></td>
            <td width="100"><font size="1" face="Verdana,Arial">
            <input name="MobilNummer" size="10" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px"></font></td>
            <td>
            <input border="0" src="images/Reset.jpg" name="Reset" width="24" height="24" type="image" onclick="reset" ></td>
            <td><font size="1" face="Verdana,Arial">
            <input border="0" src="images/Add.jpg" name="Send" width="24" height="24" type="image" onclick="submit"></font></td>
        </tr>
        </table>
            <input type="hidden" name="Butik" value="<%=Request.QueryString("Butik")%>">
            <input type="hidden" name="Dato" value="<%= FormatDateTime(Now, 2) %>">
</form>
</body>
</html>

<% elseif mode="Opret" then %>
<!--#include virtual="/Includes/Connection.asp"-->
<% if Request("Opret") = "Post" then
strSQL = "Insert into Test(Dato, Kundetype, Selskab, Butik, Navn, Nummer) values(#" & Request("Dato") & "#,'" & Request("Kundetype") & "','"  & Request("Selskab") & "','" & Request("Butik") & "','"  & Request("Navn") & "'," & Request("Nummer") & ")"
response.write strSQL
Conn.Execute(strSQL)
Response.Redirect "Indtastning.asp?mode=Print"
End if %>

<% elseif mode="Print" then %>
PRINT
<% End If %>
Avatar billede softspot Forsker
19. september 2005 - 13:48 #20
ja, så mangler du vel egentlig bare at fjerne

<% if Request("Opret") = "Post" then

(og den tilhørende End if %>)

som du selv var inde på tidligere
Avatar billede JenZen Novice
19. september 2005 - 14:13 #21
Er der nogen af jer der kan se hvorfor dette her overhovedet ikke duer ?

<% mode = request("mode") %>
<% If mode="" then %>
<html>
<head>
<title>Indtastning</title>
</head>
<body>
<form action="Indtastning.asp?mode=Opret" method="POST">
<b><font face="Verdana,Arial" size="2">Indtastning af Nye SMS Kunder:</font></b><table border="0" id="Data">
        <tr>
            <td width="100"><b><font face="Verdana,Arial" size="1">Kundetype</font></b></td>
            <td width="100"><b><font face="Verdana,Arial" size="1">Selskab</font></b></td>
            <td width="150"><b><font face="Verdana,Arial" size="1">Navn</font></b></td>
            <td width="100"><b><font face="Verdana,Arial" size="1">Nummer:</font></b></td>
            <td colspan="2">&nbsp;</td>
        </tr>
        <tr>
            <td width="100"><font size="1" face="Verdana,Arial">
            <select size="1" name="Type" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px">
            <option value="Privat">Privat</option>
            <option value="Erhverv">Erhverv</option>
            </select></font></td>
            <td width="100"><font size="1" face="Verdana,Arial"><select size="1" name="Selskab" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px">
            <option value="Telia">Telia</option>
            <option value="Sonofon">Sonofon</option>
            </select></font></td>
            <td width="150"><font size="1" face="Verdana,Arial">
            <input name="Navn" size="20" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px"></font></td>
            <td width="100"><font size="1" face="Verdana,Arial">
            <input name="MobilNummer" size="10" style="font-family: Verdana; font-size: 8pt; border-style: solid; border-width: 1px"></font></td>
            <td>
            <input border="0" src="images/Reset.jpg" name="Reset" width="24" height="24" type="image" onclick="reset" ></td>
            <td><font size="1" face="Verdana,Arial">
            <input border="0" src="images/Add.jpg" name="Send" width="24" height="24" type="image" onclick="submit"></font></td>
        </tr>
        </table>
            <input type="hidden" name="Butik" value="<%=Request.QueryString("Butik")%>">
            <input type="hidden" name="Dato" value="<%= FormatDateTime(Now, 2) %>">
</form>
</body>
</html>

<% elseif mode="Opret" then %>
<!--#include virtual="/Includes/Connection.asp"-->
<% strSQL = "Insert into Test(Dato, Kundetype, Selskab, Butik, Navn, Nummer) values(#" & Request("Dato") & "#,'" & Request("Kundetype") & "','"  & Request("Selskab") & "','" & Request("Butik") & "','"  & Request("Navn") & "'," & Request("Nummer") & ")"
response.write strSQL
Conn.Execute(strSQL)
Response.Redirect "Indtastning.asp?mode=Print"
%>

<% elseif mode="Print" then %>
PRINT
<% End If %>
Avatar billede softspot Forsker
19. september 2005 - 14:37 #22
Næh, kan du give nogle hint ved f.eks. at beskrive hvilke symtomer du oplever?

Jeg spekulerer i øvrigt over hvorfor du redirecter til siden selv for at få udskrevet, når du ligeså godt bare kan gøre det (uden redirect) efter at have oprettet...
Avatar billede JenZen Novice
19. september 2005 - 14:40 #23
Den skriver bare http 500 fejl, får ikke engang en debug side.

Grunden til at den redirecter er at jeg på den del der hedder print skal have det opbygget det således at den ligesom giver en bekræftigelse på hvad folk har indtastet.
Avatar billede busschou Praktikant
19. september 2005 - 14:43 #24
derfor behøves du stadig ikke at redirecte, for alt kode der efterfølger at du har indsat i databasen vil jo kun blive udført hvis der er indsat i databasen :o)
Kan du se det?
Avatar billede busschou Praktikant
19. september 2005 - 14:44 #25
Hvis du benytter IE så gå op i menuen under "funktioner" og vælg "internetindstillinger" vælg så "avanceret" og fjern fluebenet i noget ala "vis meddelelser som uskadelige http fejl"
Så får du en mere nyttig information :o)
Avatar billede JenZen Novice
19. september 2005 - 14:45 #26
Det er mere fordi der skal bygges en hel del html op omkring bekræftigelsen, og syntes måske bare det var nemmest at se for andre end mig selv hvordan det så var bygget op eller er jeg bare helt ude og skide ?
Avatar billede busschou Praktikant
19. september 2005 - 14:46 #27
nej du er ikke ude at skide, du er ude i at lave det som du synes er nemmest og mest overskueligt, og det står dig selvfølgelig frit for selvom vi andre mener at noget andet er mere overskueligt,...begge metoder vil virke :o)
Avatar billede JenZen Novice
27. maj 2007 - 01:11 #28
Selv løst
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester