Allora dopo tante peripezie sono venuto a capo del problema (almeno il mio).
Prima precisazione: il db è access 2000
Seconda precisazione: solo Dio sa perchè usando una semplice connessione con dsn l'errore non si verifica
Il codice che uso per inserire 4 campi in una tabella di access è il seguente:
---------------------------------------------------
<%
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_conn_strl_STRING
Command1.CommandText = "INSERT INTO Tabella1 (cognome, nome, pws, user) VALUES (" + Replace(Command1__a, "'", "''") + ", " + Replace(Command1__b, "'", "''") + ", " + Replace(Command1__c, "'", "''") + ", " + Replace(Command1__d, "'", "''") + ") "
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
%>
----------------------------------------------------
L'errore è quello che leggete nel titolo del topic.
Se si aggiungono le parentesi quadre al codice l'errore non si verifica più. Non chiedetemi il motivo. Forse è access che di punto in bianco diventa bizzoso.
Ad ogni modo il codice giusto è il seguente:
----------------------------------------------------
<%
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_conn_strl_STRING
'Questa è la riga incriminata che così funziona
Command1.CommandText = "INSERT INTO Tabella1 ([cognome], [nome], [pws], [user]) VALUES ('" + Replace(Command1__a, "'", "''") + "', '" + Replace(Command1__b, "'", "''") + "', '" + Replace(Command1__c, "'", "''") + "', '" + Replace(Command1__d, "'", "''") + "') "
' fine riga
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
%>
--------------------------------------------------
Spero che questa mia dritta possa aitarvi.
Alfonso