Avatar billede jubas Nybegynder
13. februar 2004 - 12:13 Der er 33 kommentarer

Rediger i en database fra en form

Jeg har problem som jeg håber at der er nogen der kan hjælpe mig med .
Jeg skal gerne bruge en form ,som kan rediger data i en database (Microsoft Access) ,som ligger ude på nette
Navn på database SALG
Navn på tabel = t_salg
Navn på feltet der skal redigere er: SYNLIG ( feltet er et ja/nej)
Det skal gerne forgå på en asp side
På forhånd tak.
Avatar billede keysersoze Ekspert
13. februar 2004 - 12:16 #1
Avatar billede zetn Nybegynder
13. februar 2004 - 12:19 #2
Skal det bare være muligt at uploade et ja eller nej?
Avatar billede clscableguy Praktikant
13. februar 2004 - 14:03 #3
<% STRDBNAVN="salg.mdb" 'her tilføjes databasen navn
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBNAVN & "") 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open DSN

SQL = "Update t_salg set"

if request("synlig") = "on" then
  SQL = SQL & " synlig = true"
else
  SQL = SQL & " synlig = false"
end if

conn.execute(SQL)
Avatar billede clscableguy Praktikant
13. februar 2004 - 14:05 #4
%>
<html>
<body>
<form method="post" action="filnavn.asp">
<input type="checkbox" name="synlig" onclick="submit()">
</form>
</body>
</html>
Avatar billede clscableguy Praktikant
13. februar 2004 - 14:08 #5
<%
if request("synlig") <> "" then
STRDBNAVN="salg.mdb" 'her tilføjes databasen navn
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBNAVN & "") 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open DSN

SQL = "Update t_salg set"

if request("synlig") = "on" then
  SQL = SQL & " synlig = true"
else
  SQL = SQL & " synlig = false"
end if

conn.execute(SQL)
end if
%>
<html>
<body>
<form method="post" action="filnavn.asp">
<input type="checkbox" name="synlig" onclick="submit()">
</form>
</body>
</html>

Så skulle den ikke komme med fejl.  :)
Avatar billede jubas Nybegynder
13. februar 2004 - 15:24 #6
Det er fint og det virker ,men jeg har nok ikke udtrykt mig  rigtig .
Det skal gerne være sådanne at jeg kan opdater et bestemt felt i et
Recordset  i tabelen: t_salg på baggrund  af  en bestemt ID (nøgle felt) navn: ID
Der skal være 2 felter i formen  et til ID og et felte synlig.
Håber at det ikke er for meget
På forhånd tak
Avatar billede jubas Nybegynder
13. februar 2004 - 15:31 #7
Undskyl det var beder hvis det kunne lade sig fra en forspøgelse i databasen  ved navn Q_salg
Avatar billede jubas Nybegynder
13. februar 2004 - 15:33 #8
eller hvad der kan lade sig gør ????
Avatar billede clscableguy Praktikant
13. februar 2004 - 21:36 #9
<%
if request("synlig") <> "" then
STRDBNAVN="salg.mdb" 'her tilføjes databasen navn
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBNAVN & "") 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open DSN

SQL = "Update t_salg set"

if request("synlig") = "on" then
  SQL = SQL & " synlig = true"
else
  SQL = SQL & " synlig = false"
end if

SQL = SQL & " where id=" & request("id")
conn.execute(SQL)
end if
%>
<html>
<body>
<% SQL = "Select * from t_salg order by id"
  set rs = conn.execute(SQL)
  do until rs.eof
%>
<form method="post" action="filnavn.asp">
<input type="hidden" name="id" value="<% =rs("id") %>">
<input type="checkbox" name="synlig" onclick="submit()" <% if rs("synlig") = true then response.write(" Checked") %>>
</form>
<% rs.movenext
  loop
%>
</body>
</html>
Avatar billede jubas Nybegynder
13. februar 2004 - 22:43 #10
Hej clscableguy den første virke godt nok men på alle Recordset  i tabelen t_salg ,men det skal gene være sådanne at jeg kan skrive ID inde i et tekst felt i formen  og afkrydse i checkbox  i en formen

<form method="post" action="filnavn.asp">
<input type="text" name="id">
<input type="checkbox" name="synlig">
<input type="submit" name="send">
</form>

Det skal gerne være sådanne at når jeg skrive et tal inde  I ID feltet og afkrydeser i checkbox SYNLIG  i formen vil  det Recordset  som svare til ID  i  feltet i formen  kun blive redigeret og ikke alle Recordset i tabelen t_salg 
Det sidste du svare kan jeg ikke få til at virke
Jeg takke maget for din tålmodighed med mig ,jeg håber at du stadig vil hjælpe
Avatar billede clscableguy Praktikant
14. februar 2004 - 07:10 #11
<%
if request("synlig") <> "" then
STRDBNAVN="salg.mdb" 'her tilføjes databasen navn
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBNAVN & "") 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open DSN

SQL = "Update t_salg set"

if request("synlig") = "on" then
  SQL = SQL & " synlig = true"
else
  SQL = SQL & " synlig = false"
end if

conn.execute(SQL)
end if
%>
<html>
<body>
<form method="post" action="filnavn.asp">
<input type="text" name="id">
<input type="checkbox" name="synlig">
<input type="submit" name="send">
</form>
</body>
</html>
Avatar billede keysersoze Ekspert
14. februar 2004 - 15:28 #12
hvis du følger vejledningen fra det link jeg gav burde det være muligt
Avatar billede jubas Nybegynder
17. februar 2004 - 00:26 #13
hej igen det virker ikke clscableguy
og det link du omtaler keysersoze hjælper mig ikke ret meget, da jeg ikke forstå det der bliver omtalt.
Jeg  håbe på hjælp
Avatar billede keysersoze Ekspert
17. februar 2004 - 09:46 #14
hvis du har prøvet ud fra linket vil jeg meget gerne forsøge at hjælpe dig videre derfra. Forstår du slet ingenting ud fra linket - eller nogle af de andre asp-tutorials inde på html.dk - så tror jeg ikke jeg eller nogle andre kan gøre meget for dig desværre :o/
Avatar billede clscableguy Praktikant
17. februar 2004 - 09:49 #15
rettet og testet:
<%
if request("id") <> "" then
STRDBNAVN="salg.mdb" 'her tilføjes databasen navn
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBNAVN & "") 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open DSN

SQL = "Update t_salg set"

if request("synlig") = "on" then
  SQL = SQL & " synlig = true"
else
  SQL = SQL & " synlig = false"
end if

SQL = SQL & " where id=" & request("id")
conn.execute(SQL)
end if
%>
<html>
<body>
<form method="post" action="filnavn.asp">
<input type="text" name="id">
<input type="checkbox" name="synlig">
<input type="submit" name="send">
</form>
</body>
</html>
Avatar billede jubas Nybegynder
17. februar 2004 - 21:29 #16
Hej igen
Nu har jeg helt opgivet det med den databasen ,fordi jeg kan ikke få  min asp side med en form vor der er felt i ( checkbox) til at funger i min tabel ,det er lige meget om jeg klikker det af eller ikke det bliver altid falsk i tabellen  i  Access databasen  piv piv .

Jeg har lavet en ny database og tabel ,jeg har prøvet ud fra det jeg kan læse mig til at lave en asp side som indeholder en form  som kan opdater databasen:

<html>
<head>
<title>Opdatere data i databasen</title>
<meta name="generator" content="Microsoft FrontPage 5.0">
</head>
<body>
<% STRDBNAVN="fpdb\rapporter.mdb" 'her tilføjes databasen navn
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBNAVN & "") 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Update t_rapport set "     
strSQL = strSQL & "Fornavn= '?', "  '? her skal gene stå  det der bliver skrivet feltet  fornavn
strSQL = strSQL & "efternavn= '?' " '? her skal gene stå  det der bliver skrivet feltet  Eftenavn
strSQL = strSQL & "notat= '?', "    '? her skal gene stå  det der bliver skrivet feltet  notat
?strSQL = strSQL & " Where id=" & request("id")"

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
<form method="post" action="rappot_tabel.asp">
<input type="text" name="id" size="10">
<input type="text" name="fornavn" size="20">
<textarea rows="2" name="notat" cols="20"></textarea>
<input type="text" name="sand" size="10">
    <p><input type="submit" name="send" value="send">
    </p>
</form>
</body>
</html>
Jeg håber at nogen kan hjælp mig med hvad der skal stå i felterne mrk.?
Avatar billede clscableguy Praktikant
18. februar 2004 - 07:34 #17
<html>
<head>
<title>Opdatere data i databasen</title>
<meta name="generator" content="Microsoft FrontPage 5.0">
</head>
<body>
<% STRDBNAVN="fpdb\rapporter.mdb" 'her tilføjes databasen navn
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBNAVN & "") 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Update t_rapport set "     
strSQL = strSQL & "Fornavn= '" & request("fornavn") & "', "
strSQL = strSQL & "efternavn= '" & request("efternavn") & "', "
strSQL = strSQL & "notat= '" & request("notat") & "', "
strSQL = strSQL & "Where id=" & request("id")

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
<form method="post" action="rappot_tabel.asp">
<input type="text" name="id" size="10">
<input type="text" name="fornavn" size="20">
<input type="text" name="efternavn" size="20">
<textarea rows="2" name="notat" cols="20"></textarea>
<input type="text" name="sand" size="10">
    <p><input type="submit" name="send" value="send">
    </p>
</form>
</body>
</html>
Avatar billede jubas Nybegynder
18. februar 2004 - 17:31 #18
Jeg få en fejl medling :Fejltype:
Microsoft JET Database Engine (0x80040E14)
Der er en syntaksfejl i UPDATE-sætningen.
/test1/rapport_rediger.asp, line 21
som er: Conn.Execute(strSQL)
Hvad er er det ???
Avatar billede keysersoze Ekspert
18. februar 2004 - 18:12 #19
hvilke kolonnetyper er de forskellige felter?

prøv i stedet for

Conn.Execute(strSQL)

at skrive

response.write strSQL
'Conn.Execute(strSQL)
Avatar billede jubas Nybegynder
19. februar 2004 - 00:19 #20
Der kommer det frem  Update t_rappot set Fornavn= '', efternavn= '', notat= '', Where id=  hvis jeg gør som du siger keysersoze
Id = Autonummerering (Langt heltal), Fornavn =Tekst, Efternavn= Tekst, notat=Notat,
sand= Tekst
Kan det hjælp elle hvad ??
Avatar billede clscableguy Praktikant
19. februar 2004 - 07:29 #21
<html>
<head>
<title>Opdatere data i databasen</title>
<meta name="generator" content="Microsoft FrontPage 5.0">
</head>
<body>
<%
if request("id") <> "" then
STRDBNAVN="fpdb\rapporter.mdb" 'her tilføjes databasen navn
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBNAVN & "") 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Update t_rapport set "     
strSQL = strSQL & "Fornavn= '" & request("fornavn") & "', "
strSQL = strSQL & "efternavn= '" & request("efternavn") & "', "
strSQL = strSQL & "notat= '" & request("notat") & "', "
strSQL = strSQL & "sand= '" & request("sand") & "', "
strSQL = strSQL & "Where id=" & request("id")

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
end if
%>
<form method="post" action="rappot_tabel.asp">
<input type="text" name="id" size="10">
<input type="text" name="fornavn" size="20">
<input type="text" name="efternavn" size="20">
<textarea rows="2" name="notat" cols="20"></textarea>
<input type="text" name="sand" size="10">
    <p><input type="submit" name="send" value="send">
    </p>
</form>
</body>
</html>
Avatar billede keysersoze Ekspert
19. februar 2004 - 09:55 #22
fejlen kommer fordi der ingen input er og så fejler SQL-sætningen - men med det sidste forslag fra clscableguy burde det næsten virke. Grunden er ganske enkelt at SQL-sætningen bliver forsøgt kørt før man i det hele taget får lov til at udfylde formen

Dog er det sjældent en god idé at have html-visninger og execute af ASP på samme side af rent overskuelsesmæssige årsager samt - netop som i clscableguy første forslag - af fejlmæssige årsager.
Avatar billede jubas Nybegynder
19. februar 2004 - 23:46 #23
Hej clscableguy det virker godt nok ,den åbner godt nok asp side ,men den opdater ikke databasen,hvorfor ?? Er der en anden måde som jeg kan bruge og hvis hvad??
Avatar billede keysersoze Ekspert
20. februar 2004 - 09:09 #24
kommer der nogen fejl eller?

Når du udfylder formen, indtaster du så i det første felt et id-nummer der reelt eksisterer i databasen?
Avatar billede jubas Nybegynder
23. februar 2004 - 17:21 #25
ja det gør jeg  hvad så ?
Avatar billede keysersoze Ekspert
23. februar 2004 - 18:01 #26
fil1.html
----------------------------------------------------------
<html>
<head>
<title>Opdatere data i databasen</title>
</head>
<body>
<form method="post" action="fil2.asp">
<input type="text" name="id" size="10">
<input type="text" name="fornavn" size="20">
<input type="text" name="efternavn" size="20">
<textarea rows="2" name="notat" cols="20"></textarea>
<input type="text" name="sand" size="10">
    <p><input type="submit" name="send" value="send">
    </p>
</form>
</body>
</html>
----------------------------------------------------------

fil2.asp
----------------------------------------------------------
<%
STRDBNAVN="fpdb\rapporter.mdb" 'her tilføjes databasen navn
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBNAVN & "") 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Update t_rapport set "     
strSQL = strSQL & "Fornavn= '" & request("fornavn") & "', "
strSQL = strSQL & "efternavn= '" & request("efternavn") & "', "
strSQL = strSQL & "notat= '" & request("notat") & "', "
strSQL = strSQL & "sand= '" & request("sand") & "', "
strSQL = strSQL & "Where id=" & request("id")
Response.Write strSQL
' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
----------------------------------------------------------

prøv at lav de to ovenstående filer og fortæl hvad der sker/ikke sker
Avatar billede jubas Nybegynder
24. februar 2004 - 00:29 #27
Der sker ikke noget i databasen
jeg få denne fejl :

Tekniske oplysninger (for supportteknikere)
•    Fejltype:
Microsoft JET Database Engine (0x80040E14)
Der er en syntaksfejl i UPDATE-sætningen.
/test1/fil2.asp, line 16
•    Browsertype:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
•    Side:
POST 65 bytes to /test1/fil2.asp
•    POST Data:
id=1&fornavn=ole&efternavn=hansen&notat=bl%E5&sand=sand&send=send
•    Klokkeslæt:
23. februar 2004, 23:59:10
line 16 er: Conn.Execute(strSQL)
Avatar billede clscableguy Praktikant
24. februar 2004 - 07:23 #28
fil2.asp
----------------------------------------------------------
<%
STRDBNAVN="fpdb\rapporter.mdb" 'her tilføjes databasen navn
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBNAVN & "") 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Update t_rapport set "     
strSQL = strSQL & "Fornavn= '" & request("fornavn") & "', "
strSQL = strSQL & "efternavn= '" & request("efternavn") & "', "
strSQL = strSQL & "notat= '" & request("notat") & "', "
strSQL = strSQL & "sand= '" & request("sand") & "' "
strSQL = strSQL & "Where id=" & request("id")
Response.Write strSQL
' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
----------------------------------------------------------
Avatar billede keysersoze Ekspert
24. februar 2004 - 08:54 #29
hvilke kolonne-typer bruger du
Avatar billede jubas Nybegynder
29. februar 2004 - 23:57 #30
Hvad mener du
Avatar billede keysersoze Ekspert
03. marts 2004 - 19:10 #31
hvilke typer kolonner bruger du i databasen? tekst, notat, tal, dato...?
Avatar billede jubas Nybegynder
03. marts 2004 - 19:19 #32
Fleter i databasen :
ID = Autonummerering
Navn =Tekst
Efternavn = Tekst
Notat = Notat
Sand = Tekst
Avatar billede keysersoze Ekspert
03. marts 2004 - 20:40 #33
Med nedenstående burde den udskrive noget - fejlen skyldes formentig at du ikke får noget id-nummer med over men det kan du se om du gør med dette


<%
STRDBNAVN="fpdb\rapporter.mdb" 'her tilføjes databasen navn
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""& STRDBNAVN & "") 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open DSN

' SQL sætning opbygges
strSQL = "Update t_rapport set "     
strSQL = strSQL & "Fornavn= '" & request("fornavn") & "', "
strSQL = strSQL & "efternavn= '" & request("efternavn") & "', "
strSQL = strSQL & "notat= '" & request("notat") & "', "
strSQL = strSQL & "sand= '" & request("sand") & "' "
strSQL = strSQL & "Where id=" & request("id")
Response.Write strSQL
Response.end
' SQL sætning eksekveres
'Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
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