I din delete_send.asp så tilldelar du variabeln itemToDelete ett värde 2 gånger, men när du bygger ihop sqlsträngarna så använder du variablerna itemToDelete1 och itemToDelete2 som då är odefinierade.
Vad är det som går fel?
5 svar · 229 visningar · startad av Sensei
Denna dumma kod wont w0rk!!! Och jag är för asp nybörjare för o klura ut det!
delete.asp
<%Set MyConn1 = Server.CreateObject("ADODB.Connection")%>
<%Set MyConn2 = Server.CreateObject("ADODB.Connection")%>
<%Set RS1 = Server.CreateObject("ADODB.RecordSet")%>
<%Set RS2 = Server.CreateObject("ADODB.RecordSet")%>
<%MdbFilePath1 = Server.MapPath("../dbase/miller.mdb")%>
<%MdbFilePath2 = Server.MapPath("../dbase/engmiller.mdb")%>
<%MyConn1.OPEN "driver={Microsoft Access Driver (*.mdb)};;DBQ=" & MdbFilePath1 & ";"%>
<%MyConn2.OPEN "driver={Microsoft Access Driver (*.mdb)};;DBQ=" & MdbFilePath2 & ";"%>
<%RS1.Open "Select * From tblAuthors", MyConn1%>
<%RS2.Open "Select * From tblAuthors", MyConn2%>
<%Do While Not RS2.eof%>
<form action="p_authDelete_send.asp" method="Post">
<tr align="left" valign="middle">
<td width="50"><div align="left"><INPUT Type=CheckBox Name="toDelete" Value=<%= RS2("autID")%></div></td>
<td width="200"><div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>
<% if (RS2("autName").value) = (RS1("autName").value) then%>
<%= RS2("autName")%>
<% else %>
<%="Posts are missplaced."%>
<% end if %>
</b></font></div></td>
<td width="300"><div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><% = RS2("autEmail")%></font></div></td>
</tr>
<%RS2.movenext%>
<%Loop%>
<tr><td>
<%RS1.close%>
<%RS2.close%>
<%MyConn1.close%>
<%MyConn2.close%>
delete_send.asp
<%
Dim itemToDelete1, RS1, MyConn1, SQL1
itemToDelete = Request.Form("toDelete")
'dump the value of the form field into the variable itemToDelete
Dim itemToDelete2, RS2, MyConn2, SQL2
itemToDelete = Request.Form("toDelete")
'dump the value of the form field into the variable itemToDelete
MdbFilePath1 = Server.MapPath("../dbase/miller.mdb")
MdbFilePath2 = Server.MapPath("../dbase/engmiller.mdb")
Set MyConn1 = Server.CreateObject("ADODB.Connection")
Set MyConn2 = Server.CreateObject("ADODB.Connection")
MyConn1.OPEN "driver={Microsoft Access Driver (*.mdb)};;DBQ=" & MdbFilePath1 & ";"
MyConn2.OPEN "driver={Microsoft Access Driver (*.mdb)};;DBQ=" & MdbFilePath2 & ";"
SQL1 = "DELETE FROM tblAuthors WHERE autID = " & itemToDelete1 & ""
SQL2 = "DELETE FROM tblAuthors WHERE autID = " & itemToDelete2 & ""
Set RS1 = MyConn1.Execute(SQL1)
Set RS2 = MyConn2.Execute(SQL2)
'both tables use ID as the key field and both corresponding records are deleted
MyConn1.Close
MyConn2.Close
Set MyConn1 = Nothing
Set MyConn2 = Nothing
%>
I din delete_send.asp så tilldelar du variabeln itemToDelete ett värde 2 gånger, men när du bygger ihop sqlsträngarna så använder du variablerna itemToDelete1 och itemToDelete2 som då är odefinierade.
Vad är det som går fel?
Hmm sant. Ett fel åtgärdat, tackar. Dock fick jag detta felmedelande.
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'autID = 7</div'.
/black/_admin_/p_authDelete_send.asp, line 45
Antar att autID som spökar när inte namnem har samma id i de olika mdb'rna
du kanske skulle ta och avsluta <input>-taggen?
<INPUT Type=CheckBox Name="toDelete" Value=<%= RS2("autID")%></div></td>
mvh,
I felmeddelandet så ser det ut som om du fått in skräp i itemTodelete1 eller 2
7</div'
Det verkar mer som att det är något fel i HTML dokumentet på deletesidan.
<td width="50"><div align="left"><INPUT Type=CheckBox Name="toDelete" Value=<%= RS2("autID")%>[b]>[/b]</div></td>
Hahaha m'kay får köpa en platta jolt på rasten så jag får igång tankeverksamheten igen.
Dock så tar han bara bort i ena mdb'n får sitta o klura lite
Tack ska ni ha