Avatar billede asp_rookie Nybegynder
18. juni 2002 - 13:27 Der er 14 kommentarer og
1 løsning

Skrive i flere db ved hjælp af check boxe..

Jeg har prøvet at omskrive et script men er ikke rigtigt lykkes...
Jeg vil prøve om jeg kan skrive i flere db'er ved at 'krydse' dem af i siden...

Min adm. side har denne kode - hvordan vil den skulle se ud med checkboxe mm. for at det skal kunne lykkes??..:o)

If Request.Form("nyhed")<>"" And Request.Form("navn")<>"" Then
  strNyhed = Replace(Request.Form("nyhed"), vbcrlf, "<br>")
  strNyhed = Replace(strNyhed, "'", "''")
  strNavn = Replace(Request.Form("navn"), "'", "''")

  strSQL = "Insert into Nyheder ("

  strSQL = strSQL & "Nyhed, "
  strSQL = strSQL & "Dato, "
  strSQL = strSQL & "IndsatAF) "

  strSQL = strSQL & "values("

  strSQL = strSQL & "'" & strNyhed & "', "
  strSQL = strSQL & "'" & Request.Form("dato") & "', "
  strSQL = strSQL & "'" & strNavn & "') "

  Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing

Response.Redirect ("pw_admin.asp")

Else

Response.Write "<center><b>Du skal udfylde begge felter, ellers bliver der IKKE <br>oprettet nogen nyhed!</b></center><br>"
%>
<FORM method="post" action="pw_opret.asp" name="pwopret">
<table border=1 cellspacing=0 cellpadding=3 width="500" align=center>
<tr><td width="70%">
Oprettet <% Response.Write FormatDateTime(Now, vbGenerel) %>
<input type="hidden" name="dato" size="30" readonly=yes value="<% Response.Write FormatDateTime(Now, vbGenerel) %>"></td>
<td width="30%">
<input type="text" name="navn" size="20" value="Dit navn/kaldenavn..">
</td></tr><tr><td colspan="2">
<TEXTAREA NAME="nyhed" ROWS="5" COLS="60" WRAP="off">
Skriv nyhed her...</TEXTAREA>
</td></tr><tr><td colspan="2">
<INPUT TYPE="Submit" VALUE="Opret nyhed">
&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT TYPE="Reset" VALUE="Nulstil alt">
</td></tr></table> 
</FORM>
<%
End if
Avatar billede eagleeye Praktikant
18. juni 2002 - 13:32 #1
du kan lave en checkbox som hedder dbSel og sæt value til db1...:

i toppen af din kode:

if Request.form("dbSel") = "db1" then
  'lav connection streng til database et:
  connStr = "Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\db1.mdb;"
else
  connStr = "Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\db2.mdb;"
end if
set Conn = server.createObject("ADODConnection")
Conn.Open connStr

Så har du conn til at peje på den dabase du har valgt via checkbox'en.
Avatar billede asp_rookie Nybegynder
27. juni 2002 - 12:48 #2
Kan sq ikke rigtigt få det til at virke...
Sikker på det bare skal i toppen?
Er det rigtigt?

if Request.form("dbSel") = "db1" then
  'lav connection streng til database et:
  connStr = "Driver={Microsoft Access Driver (*.mdb)} & Server.MapPath("events.mdb")
else
  connStr = "Driver={Microsoft Access Driver (*.mdb)} & Server.MapPath("nyheder.mdb")
end if
set Conn = server.createObject("ADODConnection")
Conn.Open connStr

If Request.Form("nyhed")<>"" And Request.Form("navn")<>"" Then
  strNyhed = Replace(Request.Form("nyhed"), vbcrlf, "<br>")..........
Avatar billede asp_rookie Nybegynder
27. juni 2002 - 13:05 #3
Virker ... du havde kunne til at skrive forkert...*S*
Men så får kun den db med check i nyheden...
Den skal samtidigt også i den oprindelige nyheds db.????
Avatar billede eagleeye Praktikant
27. juni 2002 - 17:12 #4
Skal det i begge databaser?
Det jeg har vist skriver det til enten den ene eller den anden.
Avatar billede asp_rookie Nybegynder
28. juni 2002 - 08:24 #5
Ja .. man skal kunne vælge om det skal i flere databaser ved check.
Feks. kunne der være 4-5 check boxe... men hvis der ikke er nogen checkket af skal det bare i den nyheder.db
El. skal det i nyheder.db + dem der er checkket af...
Avatar billede asp_rookie Nybegynder
28. juni 2002 - 08:24 #6
Er du med??
Lød vist lidt rodet...*GG*
Avatar billede eagleeye Praktikant
29. juni 2002 - 22:17 #7
Er det samme SQL sætning som skal bruges eller...?

Hvis det er samme SQL kan du starte med at opbygge SQL'en.


set Conn = server.createObject("ADODConnection")
strSQL = "INSERT INTO tabel (kol1,kol2) VALUES ('"&request.form("xxx")&"','"&request.form("yyyy")&"')"
'Degfault gem i nyheds db
connStr = "Driver={Microsoft Access Driver (*.mdb)} & Server.MapPath("nyheder.mdb")
Conn.Open connStr
Conn.execute(strSQL)
Conn.Close

'Tjek om data også skal i alternativ database
if request.form("GemIEvents") <> "" then
  connStr = "Driver={Microsoft Access Driver (*.mdb)} & Server.MapPath("events.mdb")
  Conn.Open connStr
  Conn.execute(strSQL)
  Conn.Close
end if


----------------
Så lave du en checkbox som ser sådan ud.
<input type="checkbox" name="GemIEvents" value="noget">Gem i Events.

Du kan får hver database lave en checkbox bare ændre navnet (name) også kan du gentage dette kode i filen som gemmer til databaserne:

'Tjek om data også skal i alternativ database
if request.form("GemIEvents") <> "" then  'Ret GemIEvents til checkboxnavnet
  connStr = "Driver={Microsoft Access Driver (*.mdb)} & Server.MapPath("events.mdb") 'Ret database navnet
  Conn.Open connStr
  Conn.execute(strSQL)
  Conn.Close
end if
Avatar billede asp_rookie Nybegynder
30. juni 2002 - 22:38 #8
Er dette så ikke rigtigt nok??
Jeg bliver ved at få fejl noget med linje 41:
Error Type:
Microsoft JET Database Engine (0x80004005)
Handlingen skal bruge en opdaterbar forespørgsel.
/news/pw_opret.asp, line 41


If Request.Form("nyhed")<>"" And Request.Form("navn")<>"" Then
  strNyhed = Replace(Request.Form("nyhed"), vbcrlf, "<br>")
  strNyhed = Replace(strNyhed, "'", "''")
  strNavn = Replace(Request.Form("navn"), "'", "''")

  strSQL = "Insert into Nyheder ("

  strSQL = strSQL & "Nyhed, "
  strSQL = strSQL & "Dato, "
  strSQL = strSQL & "IndsatAF) "

  strSQL = strSQL & "values("

  strSQL = strSQL & "'" & strNyhed & "', "
  strSQL = strSQL & "'" & Request.Form("dato") & "', "
  strSQL = strSQL & "'" & strNavn & "') "

  Conn.Execute(strSQL)  (linje 41)

Conn.Close
Set Conn = Nothing

if request.form("GemIEvents") <> "" then
  connStr = "Driver={Microsoft Access Driver (*.mdb)}" & Server.MapPath("events.mdb")
  Conn.Open connStr
  Conn.execute(strSQL)
  Conn.Close
  Set Conn = Nothing
End if

Response.Redirect ("pw_admin.asp")

Else

Response.Write "<center><b>Du skal min. udfyld........
Avatar billede eagleeye Praktikant
30. juni 2002 - 22:42 #9
Ja de er rigtig, fejlen skylds at du ikke har skriverettigheder til databasen, hvis du har NT/2000 skal du give IUSR_MASHINENAME skriverettigheder til filen og foldere den ligger i.

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q175168
Avatar billede asp_rookie Nybegynder
30. juni 2002 - 23:03 #10
Hmmm.. før kunne jeg da godt....
Avatar billede eagleeye Praktikant
30. juni 2002 - 23:06 #11
Jeg kan nu ikke se noget galt med din SQL-sætning, detenste er denne
strSQL = strSQL & "'" & Request.Form("dato") & "', "

Hvis dato er defineret som Dato i access vil du få en Syntax Fejl, da man i SQL'en skal bruge # i stedet for ' ved dato-format.
Avatar billede asp_rookie Nybegynder
30. juni 2002 - 23:25 #12
Du havde ret... meeennn..nu kommer denne:o)

Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk
/news/pw_opret.asp, line 49

if request.form("GemIEvents") <> "" then
  connStr = "Driver={Microsoft Access Driver (*.mdb)}" & Server.MapPath("events.mdb")
  Conn.Open connStr (linje 49)
  Conn.execute(strSQL)
  Conn.Close
  Set Conn = Nothing
End if
Avatar billede asp_rookie Nybegynder
30. juni 2002 - 23:28 #13
Kommer kun når checkbox event er krydset af...
Avatar billede eagleeye Praktikant
30. juni 2002 - 23:36 #14
Det er nok nødvendig at hvade denne med
set Conn = server.createObject("ADODConnection")


if request.form("GemIEvents") <> "" then
  connStr = "Driver={Microsoft Access Driver (*.mdb)}" & Server.MapPath("events.mdb")
  set Conn = server.createObject("ADODConnection")
  Conn.Open connStr (linje 49)
  Conn.execute(strSQL)
  Conn.Close
  Set Conn = Nothing
End if
Avatar billede asp_rookie Nybegynder
01. juli 2002 - 00:08 #15
Ja - det var lige det der skulle til.....pyhh ha...*GG*
Tusind tak for hjælpen......it works!!!
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