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