Avatar billede Slettet bruger
07. december 2006 - 14:30 Der er 16 kommentarer og
1 løsning

Mål skema vil ikke gemme data

Jeg sidder og er ved at lave en blog, hvor brugeren i sin profil kan skrive mål og vægt, men når jeg fra mal.asp sender oplysningerne kommer min gemme.asp ud med denne fejl:
Microsoft JET Database Engine error '80040e10'

No value given for one or more required parameters.

gemme.asp, line 26

line 26  con.Execute sql_insert

mal.asp
<form method="POST" action="gemme.asp">
  <input type="hidden" name="Mode" value="profil">
  <input type="hidden" name="Id" value="<%= Request("Id") %>">
  <div align="center">
    <center>
    <table border="0" cellpadding="0" cellspacing="0" width="420">
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Højde:</FONT></td>
        <td width="465"><input type="text" name="hojde" size="44" maxlength="255"></td>
      </tr>
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Bryst:</FONT></td>
        <td width="465"><input type="text" name="bryst" size="44" maxlength="255"></td>
      </tr>
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Talje:</FONT></td>
        <td width="465"><input type="text" name="talje" size="44" maxlength="255"></td>
      </tr>
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Hofte:</FONT></td>
        <td width="465"><input type="text" name="hofte" size="44" maxlength="255"></td>
      </tr>
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Overarm:</FONT></td>
        <td width="465"><input type="text" name="overarm" size="44" maxlength="255"></td>
      </tr>
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Vægt:</FONT></td>
        <td width="465"><input type="text" name="vaegt" size="44" maxlength="255"></td>
      </tr>
    </table>
    </center>
  </div>
  <p align="center"><input type="submit" value="Gem Kommentar" name="Send" class="button"></p>
</p>
</form>
------------
gemme.asp
<%
  ' Declaring variables
  Dim hojde, bryst, talje, hofte, overarm, vaegt, data_source, con, sql_insert

  ' A Function to check if some field entered by user is empty
  Function ChkString(string)
  If string = "" Then string = " "
  ChkString = Replace(string, "'", "''")
  End Function

  ' Receiving values from Form
  hojde = ChkString(Request.Form("hojde"))
  bryst = ChkString(Request.Form("bryst"))
  talje = ChkString(Request.Form("talje"))
  hofte = ChkString(Request.Form("hofte"))
  overarm = ChkString(Request.Form("overarm"))
  vaegt = ChkString(Request.Form("vaegt"))
  Id = ChkString(Request.Form("Id"))

  data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("dagbog.mdb")
sql_insert = "insert into profil (Id, hojde, bryst, talje, hofte, overarm, vaegt, dato) values (" & Id & ", '" & hojde & "', '" & bryst & "', '" & talje & "', '" & hofte & "', '" & overarm & "', Date(), '" & vaegt & "')"
       
  ' Creating Connection Object and opening the database
  Set con = Server.CreateObject("ADODB.Connection")
  con.Open data_source
  con.Execute sql_insert
  ' Done. Close the connection
  con.Close
  Set con = Nothing
  Response.Write "Tak for din kommentar."
%>
</body>
</html>
----------
skriv.asp (siden brugeren sendes fra til mal.asp)
<%@ Language=VBScript %>
<!--#INCLUDE FILE ="code_lib.asp" -->
<%
SessionTjek()
%>
<html>
<head>
<title> Skriv i din dagbog!. </title>

</head>
<body><br><br>
<form action="gem.asp" METHOD="POST" name="tilmeld">
<TABLE>
<input type="hidden" name="mode" VALUE="1">
<input type="hidden" name="bruger_id" VALUE="<%= Session("mail_login") %>">
<%
response.write("<input type='hidden' name='dato' VALUE='"& now &"'>")
%>
<td height="33"></td><td height="33"></td>
<TR>
<TD height="29">
<B>
<font size = '2' face='Verdana'>Dagbog for:
</B>
</TD>
<TD height="29">
<font size = '2' face='Verdana'><%=username(user_id)%>
</TD>
</TR>
<TR>
<TD height="29">
<B>
<font size = '2' face='Verdana'>Overskrift:
</B>
</TD>
<TD height="29">
<input type="text" name="overskrift">
</TD>
</TR>
<TR>
<TD height="29"  valign="top">
<B>
<font size = '2' face='Verdana'>Tekst:
</B>
</TD>
<TD height="29">
<textarea COLS="35" ROWS="10" name="tekst"></textarea>
</TD>
</TR>
</table>
<table width="452">
<TR>
<TD VALIGN="TOP" height="27" width="265">
&nbsp;
</TD>
<TD ALIGN="RIGHT" height="27" width="173">
<input type="submit" value="-- skriv i dagbog --" tabindex="2">
</TD>
</TR>
</form>
</TABLE>
<table width="452">
<TR>
<TD VALIGN="TOP" height="27" width="265">
<ul>
<li><A href="logoff.asp"><FONT FACE="VERDANA" SIZE="2">Log af</FONT></A></li>
<li><a href='mal.asp?id=<%=username(user_id)%>'>Kropsmål</li>
</ul>
</TD>
<TD ALIGN="RIGHT" height="27" width="173">
&nbsp;
</TD>
</TR>
</form>
</TABLE>
</body>
</html>

i db'en i tabellen profil er der følgende felter
Pid Id hojde bryst talje hofte overarm vaegt dato
Avatar billede madeindk Nybegynder
07. december 2006 - 14:39 #1
Skal din SQL streng ikke også se sådan her ud:

data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("dagbog.mdb")

sql_insert = "insert into profil (Id, hojde, bryst, talje, hofte, overarm, vaegt, dato) values (" & Id & ", '" & hojde & "', '" & bryst & "', '" & talje & "', '" & hofte & "', '" & overarm & "','" & vaegt & "', '" & Date() & "')"
Avatar billede helmet Nybegynder
07. december 2006 - 14:42 #2
Der er i hvert fald et problem i din insert
Der hvor du definere input felterne har du til sidste ...vaegt, dato),
men i din insert skriver du  ..Date(), '" & vaegt & "')

Er det desuden nødvendigt og sende et id med ned i din insert, er id feltet ikke et autonummeringsfelt?

Datoen skal muligvis også formateres før den kan indsættes, men du kan prøve det andet først.
Avatar billede Slettet bruger
08. december 2006 - 16:42 #3
madeindk jeg prøvede dit ex men får denne fejl

Microsoft JET Database Engine error '80040e10'

No value given for one or more required parameters.

gemme.asp, line 26

line 26  con.Execute sql_insert
Avatar billede helmet Nybegynder
08. december 2006 - 17:58 #4
Du kan prøve og sætte en
response.write sql_insert
response.end
ind efter linie hvor du danner sqlen, og evt, smide resultatet herinde.
Avatar billede Slettet bruger
08. december 2006 - 18:04 #5
tænker du på sådan:
data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("dagbog.mdb")
sql_insert = "insert into profil (Id, hojde, bryst, talje, hofte, overarm, vaegt, dato) values (" & Id & ", '" & hojde & "', '" & bryst & "', '" & talje & "', '" & hofte & "', '" & overarm & "','" & vaegt & "', '" & Date() & "')"
       
  ' Creating Connection Object and opening the database
  Set con = Server.CreateObject("ADODB.Connection")
  response.write sql_insert
  response.end
  ' Done. Close the connection
  con.Close
  Set con = Nothing
  Response.Write "Tak for din kommentar."
Avatar billede Slettet bruger
08. december 2006 - 18:11 #6
jeg prøvede at rette mit script til følgende:
data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("dagbog.mdb")
sql_insert = "insert into profil (Id, hojde, bryst, talje, hofte, overarm, vaegt, dato) values (" & Id & ", '" & hojde & "', '" & bryst & "', '" & talje & "', '" & hofte & "', '" & overarm & "','" & vaegt & "', '" & Date() & "')"
       
  ' Creating Connection Object and opening the database
  Set con = Server.CreateObject("ADODB.Connection")
  response.write sql_insert
  response.end
  ' Done. Close the connection
  con.Close
  Set con = Nothing
  Response.Write "Tak for din kommentar."

men nu skriver gemme.asp
insert into profil (Id, hojde, bryst, talje, hofte, overarm, vaegt, dato) values (test, '10', '20', '30', '40', '50','60', '08-12-2006')

Den gemmer ikke dataen i min db
Avatar billede madeindk Nybegynder
08. december 2006 - 18:15 #7
Jeg tror den skal se sådan her ud:

data_source = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("dagbog.mdb")
sql_insert = "insert into profil (hojde, bryst, talje, hofte, overarm, vaegt, dato) values ('" & hojde & "', '" & bryst & "', '" & talje & "', '" & hofte & "', '" & overarm & "','" & vaegt & "', '" & Date() & "')"
Avatar billede Slettet bruger
08. december 2006 - 18:22 #8
jeg prøvede det forslag du kom med madeindk. Scriptet gemmer det i db'en, men den tager ikke id med som er id'et for den bruger daterne passer til
Avatar billede madeindk Nybegynder
08. december 2006 - 18:23 #9
Nej, det er jo klart :-) Men er ID ikke et talfelt?
Avatar billede Slettet bruger
08. december 2006 - 18:25 #10
i tabellen users har jeg
user_id user_kon user_navn user_alder user_name user_email user_password user_profil user_created

user_id er det id som daterne skal gemmes under :)
Avatar billede Slettet bruger
08. december 2006 - 18:26 #11
Nej det er sat til "tekst" i db'en
Avatar billede madeindk Nybegynder
08. december 2006 - 18:30 #12
Så kan du gøre sådan her:

<%
' Din variabel som indeholder ID
userID = Request.QueryString("ID")

If isNumeric(userID) Then

sql_insert = "insert into profil (user_id, hojde, bryst, talje, hofte, overarm, vaegt, dato) values (" & userID & ",'" & hojde & "', '" & bryst & "', '" & talje & "', '" & hofte & "', '" & overarm & "','" & vaegt & "', '" & Date() & "')"

Else
  Response.Write("ID er ikke et tal eller udfyldt")
End If
%>
Avatar billede madeindk Nybegynder
08. december 2006 - 18:31 #13
Nårh nej. Du skal jo indsætte noget i databasen og ikke opdatere det. Men hvis du kun har de der felter hvor kommer hojde, bryst, talje, overarm osv. så fra?
Avatar billede Slettet bruger
08. december 2006 - 18:36 #14
hojde, bryst, talje, overarm osv kommer fra mal.asp der ser således ud
<form method="POST" action="gemme.asp">
  <input type="hidden" name="Mode" value="profil">
  <input type="hidden" name="Id" value="<%= Request("Id") %>">
  <div align="center">
    <center>
    <table border="0" cellpadding="0" cellspacing="0" width="420">
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Højde:</FONT></td>
        <td width="465"><input type="text" name="hojde" size="44" maxlength="255"></td>
      </tr>
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Bryst:</FONT></td>
        <td width="465"><input type="text" name="bryst" size="44" maxlength="255"></td>
      </tr>
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Talje:</FONT></td>
        <td width="465"><input type="text" name="talje" size="44" maxlength="255"></td>
      </tr>
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Hofte:</FONT></td>
        <td width="465"><input type="text" name="hofte" size="44" maxlength="255"></td>
      </tr>
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Overarm:</FONT></td>
        <td width="465"><input type="text" name="overarm" size="44" maxlength="255"></td>
      </tr>
<tr>
        <td width="81"><FONT FACE="VERDANA" SIZE="2">Vægt:</FONT></td>
        <td width="465"><input type="text" name="vaegt" size="44" maxlength="255"></td>
      </tr>
    </table>
    </center>
  </div>
  <p align="center"><input type="submit" value="Gem Kommentar" name="Send" class="button"></p>
</p>
</form>
Avatar billede madeindk Nybegynder
08. december 2006 - 18:38 #15
Ja, men de skal jo også eksisterer i databasen :-)
Avatar billede Slettet bruger
08. december 2006 - 18:40 #16
de gemmes i "profil" i db'en
Avatar billede Slettet bruger
29. maj 2011 - 11:55 #17
luk
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