Avatar billede steen_hansen Forsker
16. februar 2002 - 21:53 Der er 36 kommentarer og
3 løsninger

HJÆLP! :o(

Hvad er der galt her? Nu har jeg snart stirret mig blind:

<form method="POST" action="default2.asp">
<table border="0" cellpadding="6" cellspacing="0" width="100%" class="tekst11" bgcolor="#EEEEEE">
<tr>
<td colspan="2">
<span class="overskrift17">Indtast debatemne</span>
</td>
</tr>
<tr>
<td>Forfatter:</td>
<td><input type="text" name="nick" style="background-color: #ffff99;" size="35" id="input"></td>
</tr>
<tr>
<td>Emne:</td>
<td><input type="text" name="emne" style="background-color: #ffff99;" size="35" id="input"></td>
</tr>
<tr>
<td valign="top">Kommentar:</td>
<td><textarea rows="15" name="kommentar" style="background-color: #ffff99;" cols="51" id="input"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Send debatemne" name="send_debatemne" id="input">&nbsp;&nbsp;&nbsp; <input type="reset" value="Nulstil" name="nulstil" id="input"></td>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath "/fpdb/include.mdb")
Conn.open dbConn

strSQL = "Insert into debat ("

strSQL = strSQL & "nick, "
strSQL = strSQL & "emne, "
strSQL = strSQL & "kommentar, "

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>

</tr>
</table>
</form>

Det skal lige siges, at jeg har kørt meget rundt i det, og at det står besynderligt. Håber I kan hjælpe mig med at få det plads :o(
Avatar billede erikjacobsen Ekspert
16. februar 2002 - 21:59 #1
Du laver noget af en sql-sætning i strSQL - men ikke det
hele, og du udfører den ikke (vist nok med en execute)

Kan det være problemet?
Avatar billede hells Nybegynder
16. februar 2002 - 22:02 #2
Du skriver ikke hvad, der skal i tabellen kun, hvor i tabellen det skal være. Du mangler også Conn.Execute(strSQL). Jeg skulle mene, det ville hjælpe at du tog og kiggede lidt på det.
Avatar billede steen_hansen Forsker
16. februar 2002 - 22:04 #3
Jeg får ikke gemt data fra formular-felterne i databasen, men jeg ryger rigtigt nok videre til default2.asp, og på siden kommer denne fejlmeddelelse for oven:

Microsoft VBScript runtime error '800a01a8'

Object required

/artikler/artikel.asp, line 35

Linie 35 er denne: RS.Close
Avatar billede steen_hansen Forsker
16. februar 2002 - 22:05 #4
hells, jeg har kigget så meget på det, at det flimrer for øjnene :o)
Avatar billede erikjacobsen Ekspert
16. februar 2002 - 22:05 #5
Du har heller ikke oprettet RS (typisk et recordset), men det
skal du heller ikke til en insert
Avatar billede steen_hansen Forsker
16. februar 2002 - 22:07 #6
Kan en af Jer kopiere det over i et NotePad-dokument, flytte rundt på det, tilføje det der mangler og kopiere det tilbage? Jeg fordobler point for indsatsen. For en rutineret ASP-haj burde det ikke tage lang tid.
Avatar billede steen_hansen Forsker
16. februar 2002 - 22:08 #7
Jeg har taget ud, sat ind igen, klippet, kopieret, sat ind, rokeret rundt. Intet af det passer mere. HJÆLP :o(
Avatar billede hells Nybegynder
16. februar 2002 - 22:14 #8
Prøv at indsætte dette i default2.asp:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath "/fpdb/include.mdb")
Conn.open dbConn

nick = Request.Form("nick")
emne = Request.Form("emne")
kommentar = Request.Form("kommentar")

strSQL = "Insert into debat ("

strSQL = strSQL & "nick, "
strSQL = strSQL & "emne, "
strSQL = strSQL & "kommentar,)"

strSQL = strSQL & "values ("

strSQL = strSQL & nick
strSQL = strSQL & emne
strSQL = strSQL & kommentar & ")"

Conn.Execute(strSQL)

Conn.Close
Set Conn = nothing
%>

Er ikke sikker på at det virker, da jeg selv er ret ny til asp.
Avatar billede steen_hansen Forsker
16. februar 2002 - 22:18 #9
Vi skal glemme alt om default2.asp

På siden, som du kan se, er der nogle formular-felter. Indholdet af disse skal gemmes i tabellen "debat". Indholdet bliver så allerede vist på default2.asp

Ovenstående bliver inkluderet i et andet dokument :o)
Avatar billede hells Nybegynder
16. februar 2002 - 22:20 #10
Så prøv at se om det virker i filen med formen
Avatar billede erikjacobsen Ekspert
16. februar 2002 - 22:22 #11
hells: Du skal nok have '....' omkrin tekstfelter.
Og skal der ikke være en test for om man kommer på
siden fordi man har trykket på knappen eller ej ?
Avatar billede hells Nybegynder
16. februar 2002 - 22:26 #12
Hvis det andet ikke virker, så prøv det her:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath "/fpdb/include.mdb")
Conn.open dbConn

strSQL = "Insert into debat ("

strSQL = strSQL & "nick, "
strSQL = strSQL & "emne, "
strSQL = strSQL & "kommentar,)"

strSQL = strSQL & "values ("

strSQL = strSQL & Request.Form("nick") & ", "
strSQL = strSQL & Request.Form("emne") & ", "
strSQL = strSQL & Request.Form("kommentar") & ")"

Conn.Execute(strSQL)

Conn.Close
Set Conn = nothing
%>
Avatar billede steen_hansen Forsker
16. februar 2002 - 22:27 #13
Men hvad med <input type="text"... og <textarea...? Det er jo meningen, at indlæggene fra brugerne skal gemmes i databasen.
Avatar billede hells Nybegynder
16. februar 2002 - 22:29 #14
Det er det Request.Form("formfelt") gerne skulle sørge for. Men jeg ved ikke, om det virker, når de er på samme side som formen.
Avatar billede steen_hansen Forsker
16. februar 2002 - 22:32 #15
Ok. Jeg skal have input-felterne på én side, og action skal være lig den side med Request.Form("formfelt")?
Avatar billede hells Nybegynder
16. februar 2002 - 22:33 #16
Det vil jeg tro. Så kan du vel bare hente data'en på den anden side også.
Avatar billede hells Nybegynder
16. februar 2002 - 22:34 #17
Og, hvis det ikke virker, så redirect til siden, der skal vise data'en.
Avatar billede steen_hansen Forsker
17. februar 2002 - 00:46 #18
Jeg er kommet frem til følgende, men variablerne er tomme:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

strSQL = "insert into debat (nick,emne,kommentar) values ('"&var_nick&"','"&var_emne&"','"&var_kommentar&"')"

conn.execute (strSQL)

'var_nick=request.form("nick")
'var_emne=request.form("emne")
'var_kommentar=request.form("komentar")

strSQL = strSQL & "nick, "
strSQL = strSQL & "emne, "
strSQL = strSQL & "kommentar, "

Conn.Close
Set Conn = nothing
%>

Hvor skal de tre linier sættes hen?

'var_nick=request.form("nick")
'var_emne=request.form("emne")
'var_kommentar=request.form("komentar")
Avatar billede erikjacobsen Ekspert
17. februar 2002 - 00:52 #19
lige inden din strSQL = ...
Avatar billede hells Nybegynder
17. februar 2002 - 00:58 #20
Her er hele koden:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

'Værdier indsættes i variablen strSQL
strSQL = "insert into debat (nick, emne, kommentar) values(" & Request.Form("nick") & ", " & Request.Form("emne") & ", " & Request.Form("kommentar") & ")"

'Kommandoen i strSQL skal udføres
Conn.Execute(strSQL)

'Databasen lukkes
Conn.Close
Set Conn = nothing
%>

Jeg glemte helt, at tegnet, &, også skulle med.

Det her:
strSQL = strSQL & "nick, "
strSQL = strSQL & "emne, "
strSQL = strSQL & "kommentar, "
-skal ikke med, da vi har defineret variablen strSQL
Avatar billede hells Nybegynder
17. februar 2002 - 01:00 #21
Du behøver altså ikke at lave forminput'sene om til variabler
Avatar billede steen_hansen Forsker
17. februar 2002 - 09:29 #22
Hej hells!

Nu ser koden således ud:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

'Værdier indsættes i variablen strSQL
strSQL = "insert into debat (nick, emne, kommentar) values(" & Request.Form("nick") & ", " & Request.Form("emne") & ", " & Request.Form("kommentar") & ")"

'Kommandoen i strSQL skal udføres
Conn.Execute(strSQL)

strSQL = strSQL & "nick, "
strSQL = strSQL & "emne, "
strSQL = strSQL & "kommentar, "

'Database FORBINDELSEN lukkes
Conn.Close
Set Conn = nothing
%>

Og jeg får flg. meddelelse:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

/artikler/artikel.asp, line 34

Når jeg sender en formular, sender jeg tomme variabler ned i databasen?
Avatar billede steen_hansen Forsker
17. februar 2002 - 09:45 #23
<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

'Værdier indsættes i variablen strSQL
strSQL = "insert into debat (nick, emne, kommentar) values(" & Request.Form("nick") & ", " & Request.Form("emne") & ", " & Request.Form("kommentar") & ")"

'Kommandoen i strSQL skal udføres
Conn.Execute(strSQL)

' Denne her kan fjernes? strSQL = strSQL & "nick, "
' Denne her kan fjernes? strSQL = strSQL & "emne, "
' Denne her kan fjernes? strSQL = strSQL & "kommentar, "

'Database FORBINDELSEN lukkes
Conn.Close
Set Conn = nothing
%>
Avatar billede steen_hansen Forsker
17. februar 2002 - 10:33 #24
Jeg får stadigvæk fejlmeddelelsen, men den sender åbenbart ikke tomme variabler ned i databasen nu...
Avatar billede snuseren.dk Nybegynder
17. februar 2002 - 10:38 #25
Er du sikker på at du har skriverettigheder på databasen ??

/Snuseren.dk
Avatar billede snuseren.dk Nybegynder
17. februar 2002 - 10:40 #26
Du indsætter jo ikke noget i databasen... Du siger jo kun at den skal indsætte i nick, emne, kommentar. Du mangler "Values".
Avatar billede steen_hansen Forsker
17. februar 2002 - 10:42 #27
Ok. Hvad så med denne her:

strSQL = "insert into debat (nick, emne, kommentar) VALUES(" & Request.Form("nick") & ", " & Request.Form("emne") & ", " & Request.Form("kommentar") & ")"
Avatar billede steen_hansen Forsker
17. februar 2002 - 10:44 #28
Her optræder VALUES da? Skriverettigheder? Ja, det har jeg...
Avatar billede steen_hansen Forsker
17. februar 2002 - 10:49 #29
HELE siden ser sådan her ud:

<form method="POST" action="default2.asp">
<table border="0" cellpadding="6" cellspacing="0" width="100%" class="tekst11" bgcolor="#EEEEEE">
<tr>
<td colspan="2">
<span class="overskrift17">Indtast debatemne</span>
</td>
</tr>
<tr>
<td>Forfatter:</td>
<td><input type="text" name="nick" style="background-color: #ffff99;" size="35" id="input"></td>
</tr>
<tr>
<td>Emne:</td>
<td><input type="text" name="emne" style="background-color: #ffff99;" size="35" id="input"></td>
</tr>
<tr>
<td valign="top">Kommentar:</td>
<td><textarea rows="15" name="kommentar" style="background-color: #ffff99;" cols="51" id="input"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Send debatemne" name="send_debatemne" id="input">&nbsp;&nbsp;&nbsp; <input type="reset" value="Nulstil" name="nulstil" id="input"></td>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

strSQL = "insert into debat (nick, emne, kommentar) values(" & Request.Form("nick") & ", " & Request.Form("emne") & ", " & Request.Form("kommentar") & ")"

Conn.Execute(strSQL)

'strSQL = strSQL & "nick, "
'strSQL = strSQL & "emne, "
'strSQL = strSQL & "kommentar, "

Conn.Close
Set Conn = nothing
%>

</tr>
</table>
</form>
Avatar billede steen_hansen Forsker
17. februar 2002 - 10:54 #30
Når jeg forsøger at poste et indlæg, får jeg dette oven over formularen:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Dette er en test'.

/artikler/artikel.asp, line 31
Avatar billede steen_hansen Forsker
17. februar 2002 - 10:56 #31
Og linie 31 siger:

Conn.Execute(strSQL)
Avatar billede steen_hansen Forsker
17. februar 2002 - 11:02 #32
snuser, er du gået død? :o)
Avatar billede erikjacobsen Ekspert
17. februar 2002 - 11:05 #33
strSQL = "insert into debat (nick, emne, kommentar) values('" & Request.Form("nick") & "', '" &
                          Request.Form("emne") & "', '" & Request.Form("kommentar") & "')"
Avatar billede steen_hansen Forsker
17. februar 2002 - 11:06 #34
Nu ser det ud til, at der sker noget nyt ved et nyt indlæg?

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver]COUNT field incorrect

/artikler/artikel.asp, line 31
Avatar billede steen_hansen Forsker
17. februar 2002 - 11:13 #35
Det virker ... NÆSTEN ... erikjacobsen. Kan du ikke lige svare, jeg hæver pointene
Avatar billede erikjacobsen Ekspert
17. februar 2002 - 11:25 #36
nej, du skal ikke hæve point for min skyld
Avatar billede steen_hansen Forsker
17. februar 2002 - 11:43 #37
Det er gjort nu. Kan du ikke lige svare? :o)
Avatar billede erikjacobsen Ekspert
17. februar 2002 - 11:54 #38
Ok, men jeg skal kun have 5 (fem) point
Avatar billede steen_hansen Forsker
17. februar 2002 - 12:00 #39
Sludder! I har alle tre hjulpet og brugt tid :o)

MEN - når jeg opdaterer siden, sendes der tomme variabler ned i databasen? Indlæggende bliver opdateret, efterhånden som de bliver postet, men jeg får "Siden kan ikke opdateres uden at sende oplysningerne igen..."?
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