Avatar billede 12tri Nybegynder
22. september 2001 - 17:31 Der er 5 kommentarer og
2 løsninger

Indsæt data i acces fra formular

Jeg skal oprette nogle indlæg til et forum i en Access database, til dette har jeg en side med en formular:

<form method=”post” action=”save.asp”> 
<B>Navn:</B> <br> 
<input type=\"text\" name=\"navn\" size=\"35\"><br><BR> 
<B>E-mailadresse:</B><BR> 
<input type=\"text\" name=\"email\" size=\"35\"><br><BR> 
<B>Overskrift på indlægget:</B><BR> 
<input type=\"text\" name=\"overskrift\" value=\"\" SIZE=\"35\"><BR><BR> 
<B>Indhold</B><BR> 
<textarea name=\"besked\" cols=\"55\" rows=\"10\"></textarea><BR><BR> 
<input type=\"submit\" value=\"OPRET INDLÆG\" NAME=\"action\"> 
</form> 

Og en side til at gemme data i databasen, men denne side kan jeg ikke få til at gemme de værdier som jeg skriver i formularen på den anden side. Jeg har fundet dette eks på www.html.dk

strConnect = \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" &(\"C:\\Inetpub\\access\\db.mdb\")
Set objConn = Server.CreateObject (\"ADODB.Connection\") 
objConn.Open strConnect
 
strSQL = \"Insert into forumindlaeg (\"

strSQL = strSQL & \"navn, \"
strSQL = strSQL & \"mail, \"
strSQL = strSQL & \"overskrift, \"
strSQL = strSQL & \"indhold, \"
strSQL = strSQL & \"dato) \"

strSQL = strSQL & \"values( \"

strSQL = strSQL & \"\'NAVN\', \"
strSQL = strSQL & \"\'MAIL\', \"
strSQL = strSQL & \"\'OVERSKRIFT\', \"
strSQL = strSQL & \"\'INDHOLD\', \"
strSQL = strSQL & \"\'20-04-1964\')\"

objConn.Execute(strSQL)
objconn.close 
set objconn = nothing
Response.Redirect(\"ok.asp\")
%>

og det virker fint, men jeg kan ikke finde ud af hvordan jeg skal få:
Request.Form(\"FELTNAVN\") puttet ind I stedet for de faste værdier.

Desuden vil jeg gerne have lavet en replace i nogle af værdierne inden de gemmens i databasen som

<%
strTekst = Request.Form(\"Tekstfelt\")
strTekst = Replace(strTekst, \"\'\", \"\'\'\")
%>

Dvs. din ”opgave” er:
At få formularen til at virker, så de indtastede data gemmes i databasen, efter at repalce er fortaget


Morten
morten@12tri.dk
Avatar billede mri Nybegynder
22. september 2001 - 17:55 #1
Du skal ændre tekstfelterne:

strSQL = strSQL & \"\'INDHOLD\', \"

til:

strSQL = strSQL & \"\'\" & request.form(\"feltnavn\") & \"\',\"

og datofeltet til:

strSQL = strSQL & \"#\" & DatePart(\"m\",request.form(\"datofelt\")) & \"/\" & DatePart(\"d\",request.form(\"datofelt\")) \"/\" & DatePart(\"yyyy\",request.form(\"datofelt\")) & \"#\"

Du skal være opmærksom på, at datoer i SQL skal være i formatet mm/dd/yyyy.

Hvis du ønsker at udskifte værdierne fra formobjektet, så henter du dem først ned i en varibel og bruger derefter variablen i stedet for request.form(feltnavn\")
Avatar billede eagleeye Praktikant
22. september 2001 - 18:01 #2
Jeg har lagt replace(str,\"\'\",\"\'\'\") i en function som så kan kaldes. Jeg ved ikke hvordan dit Dato format er så det kan  være der kommer en fejl i indsætelsen af Date().

<%
function strCorrect(strInput)
strCorrect = Replace(strInput, \"\'\", \"\'\'\")
end function

strConnect = \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & (\"d:\\Inetpub\\wwwroot\\dirchpasser\\db.mdb\")
Set objConn = Server.CreateObject (\"ADODB.Connection\")
objConn.Open strConnect

strSQL = \"Insert into forumindlaeg (\"

strSQL = strSQL & \"navn, \"
strSQL = strSQL & \"mail, \"
strSQL = strSQL & \"overskrift, \"
strSQL = strSQL & \"indhold, \"
strSQL = strSQL & \"dato) \"

strSQL = strSQL & \"values( \"

strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"navn\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"email\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"overskrift\")) & \"\', \"
strSQL = strSQL & \"\'\" & strCorrect(Request.form(\"besked\")) & \"\', \"
strSQL = strSQL & \"#\" & date() & \"#)\"

objConn.Execute(strSQL)
objconn.close
set objconn = nothing
Response.Redirect(\"ok.asp\")
%>
Avatar billede mri Nybegynder
22. september 2001 - 18:08 #3
Jeg tror nok - men jeg er ikke sikker, at datoformatet i en SQL-streng altid skal være mm/dd/yyyy uafhængigt af(dog ikke nødvendigvis adskilt af \'/\'). Hvis du kører det datoformat, så er der ingen ko på isen.

Jeg foretrækker dog at konstruere datoer vha DatePart.
Avatar billede eagleeye Praktikant
22. september 2001 - 18:13 #4
Ja i SQL er jeg også løbet ind i at formatet er mm/dd/yyyy. Men - viker også.

Jeg har brugt dette:
datostr = month(date()) & \"-\" & day(date()) & \"-\" & year(date())
Avatar billede 12tri Nybegynder
22. september 2001 - 18:39 #5
Jeg skal lige prøve jeres forslag så vender je tilbage
Avatar billede eagleeye Praktikant
22. september 2001 - 18:55 #6
OK
hvis dato\'en skal ændres til mm-dd-yyyy, så kan det ligges ind sådan her:

<%
...<code>...
datostr = month(date()) & \"-\" & day(date()) & \"-\" & year(date())
strSQL = \"Insert into forumindlaeg (\"
...<code>...
strSQL = strSQL & \"values( \"
...<code>...
strSQL = strSQL & \"#\" & datostr & \"#)\"

..<code>...
Response.Redirect(\"ok.asp\")
%>
Avatar billede 12tri Nybegynder
22. september 2001 - 21:04 #7
Det virker som det skal, mange tak for hjælpen, jeres kommentarer om dato fik jeg ikke brug for da det var den aktuelle dato jeg skal bruge (now())

Morten
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