novecento ha scritto:
Quando devi inserire dei dati è sufficiente utilizzare connessione.Execute(SQL) anzichè aprire un recordset.
Grazie novecento, ho provato a fare come dici. Sono riuscito ad inserire un record, ma poi ogni volta che riprovo mi restituisce il seguente messaggio:
Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC Microsoft Access] L'apporto modifiche non è riuscito perché si è cercato di duplicare i valori nell'indice, nella chiave primaria o nella relazione. Modificare i dati nel campo o nei campi che contengono dati duplicati, rimuovere l'indice o ridefinire l'indice per consentire l'inserimento di voci duplicate, quindi ritentare l'operazione.
/fatture.asp, line 13
Questa è la pagina di inserimento dati:
<html>
<head>
<title>Inserimento fatture</title>
</head>
<body>
<p>Compila i campi:</p>
<form method="POST" action="fatture.asp">
<p>Data fattura: <input type="text" name="datafattura" size="20"></p>
<p>Num fattura: <input type="text" name="numfattura" size="20"></p>
<p>Importo fatt: <input type="text" name="importodocumento" size="20"></p>
<p><input type="submit" value="Invia"></p>
</form>
E questa è la pagina ricevente (quella che dovrebbe scrivere il record e mostrare l'elenco dei records inseriti:
<HTML>
<TITLE>Elenco fatture</TITLE
<center>
<%
datafattura=Request.form("datafattura")
numfattura=Request.form("numfattura")
importodocumento=Request.form("importodocumento")
dim connessione
Set connessione = Server.CreateObject("ADODB.Connection")
connessione.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\mdb-database\fatture.mdb"
SQL = "INSERT INTO fatture (datafattura, numfattura, importodocumento) "
SQL = SQL & "VALUES ('" & datafattura & "','" & numfattura & "','" & importodocumento & "')"
connessione.Execute(SQL)
connessione.Close
set connessione = nothing
response.redirect("fatture.asp")
%>
<%
Set connessione = Server.CreateObject("ADODB.Connection")
connessione.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\mdb-database\fatture.mdb"
Set recordset = Server.CreateObject("ADODB.Recordset")
recordset.open "select datafattura from fatture", connessione
Set recordset1 = Server.CreateObject("ADODB.Recordset")
recordset1.open "select numfattura from fatture", connessione
Set recordset2 = Server.CreateObject("ADODB.Recordset")
recordset2.open "select importodocumento from fatture", connessione
Set recordset3 = Server.CreateObject("ADODB.Recordset")
recordset3.open "select incassato from fatture", connessione
Set recordset4 = Server.CreateObject("ADODB.Recordset")
recordset4.open "select fatture.importodocumento-fatture.incassato AS residuo FROM fatture", connessione
%>
<CENTER>
<% response.write "<img src=/calc.png>" %>
<TABLE>
<TR BGCOLOR="#FF0000">
<TD COLSPAN="5"><FONT FACE="ARIAL" COLOR="#FFFFFF"><DIV ALIGN="CENTER"><SPAN CLASS="STYLE1"><STRONG>Elenco fatture</STRONG></SPAN></FONT></TD></TR>
<TR BGCOLOR="#00CCFF">
<TD WIDTH="150"><DIV ALIGN="CENTER"><FONT FACE="ARIAL">Data fattura</FONT></TD>
<TD WIDTH="150"><DIV ALIGN="CENTER"><FONT FACE="ARIAL">Numero fattura</FONT></TD>
<TD WIDTH="150"><DIV ALIGN="CENTER"><FONT FACE="ARIAL">Importo documento</FONT></TD>
<TD WIDTH="150"><DIV ALIGN="CENTER"><FONT FACE="ARIAL">Incassato</FONT></TD>
<TD WIDTH="150"><DIV ALIGN="CENTER"><FONT FACE="ARIAL">Residuo</FONT></TD>
<%
Do While not recordset.EOF
Do While not recordset1.EOF
Do While not recordset2.EOF
Do While not recordset3.EOF
Do While not recordset4.EOF
%>
<TR>
<TD align="center" bgcolor="#eeeeee"><% response.write recordset.Fields("datafattura").Value %></TD>
<TD align="center" bgcolor="#eeeeee"><% response.write recordset1.Fields("numfattura").Value %></TD>
<TD align="center" bgcolor="#eeeeee"><% response.write recordset2.Fields("importodocumento").Value %></TD>
<TD align="center" bgcolor="#eeeeee"><% response.write recordset3.Fields("incassato").Value %></TD>
<TD align="center" bgcolor="#eeeeee"><% response.write recordset4.Fields("residuo").Value %></TD>
</TR>
<%
recordset.MoveNext
recordset1.MoveNext
recordset2.MoveNext
recordset3.MoveNext
recordset4.MoveNext
Loop
Loop
Loop
Loop
Loop
recordset.Close
recordset1.Close
recordset2.Close
recordset3.Close
recordset4.Close
set recordset = Nothing
set recordset1 = Nothing
set recordset2 = Nothing
set recordset3 = Nothing
set recordset4 = Nothing
Connessione.Close
Set Connessione = Nothing
%>
</TABLE>
</HTML>
<FORM method="POST" action="inseriscifattura.asp">
<input type="Submit" value="Inserisci fattura">
e questa è la famigerata linea 13:
connessione.Execute(SQL) Dove sta l'inghippo?
Grazie