Checkbox e access

prunusmume

Nuovo Utente
8 Feb 2007
3
0
0
Roma
prunusmume.altervista.org
Ho un problema che non riesco a risolvere e spero che qualcuno mi possa aiutare.
Sto sviluppando un form dal quale devo acquisire poche informazioni da inserire poi in un database access.

Il problema è dato tutto da i campi checkbox. Se questi ultimi sono tutti selezionati, viene loro assegnato il valore on e tutto fila liscio in fase di esecuzione query nella pagina successiva in asp. Nel caso invece in cui almeno una di queste checkbox non venga selezionata, la query risultante nella pagina successiva mi viene generata con errori di lessico perché le variabili delle checkbox non selezionate restano prive di valore.

Il risultato della query in questo secondo caso è tipo:
INSERT INTO Nometabella (nome,email,messaggio,dataiscrizione,checkbox1,checkbox2,checkbox3,checkbox4) VALUES ('pinco pallino','pincopallo@sito.dom','','08/02/2007 19.50.44',,on,,)

Il messaggio d'errore è:
Microsoft JET Database Engine error '80040e14'
Errore di sintassi nell'istruzione INSERT INTO.

Potrebbe dipendere dal tipo di dato impostato nel database per il contenuto dei checkbox? Io l'ho impostati come boolean. E' possibile lasciarli boolean per farli funzionare?
 
Ho Risolto!!!

Evviva ce l'ho fatta da solo :ilpirata:

Dopo tre giorni di fuoco e fiamme... ma vieni!!! :mavieni:

Ho lasciato i campi come boolean nel database e ho trovato il problema... e una volta trovato, l'ho risolto con un po' di pazienza!!!
Tutto dipendeva dal fatto che access richiedeva 1 o 0 come valori accettabili e invece dal codice asp passavano "vero" o campo vuoto per il primo check box e "on" o campo vuoto per i successivi. Il perché venissero assegnati questi valori lo ignoro completamente, ma sapendo cosa arriva dal form e cosa richiede access... bastano una serie di confronti e sostituzioni e il gioco è fatto!!!!

Sono un grande... lasciatemelo dire da solo almeno!!! :cool:
 
ciao...io ho il tuo stesso problema! sto realizzando la gestione clienti online ed ho molti checkbox in ogni form, mi da l'ho stesso errore che ti dava a te la prima volta:
Microsoft JET Database Engine error '80040e14'
Errore di sintassi nell'istruzione INSERT INTO.[/
I]

qui di seguito 2 dei tanti check box che ho nel form:
Codice:
<tr>
<td width="199" bgcolor="#FFFFCC" height="36"><font size="2" face="Verdana">Sesso</font></td>
<td width="199" bgcolor="#FFFFCC" height="36" align="center">M&nbsp;<input name="Maschio" type="checkbox" value="True">&nbsp;F &nbsp;<input name="Femmina" type="checkbox"></td>
</tr>
come faccio a correggerli?

e questa è la pagina che iserisce i dati nel db:
Codice:
nome=Request.Form("nome")
cognome=Request.Form("cognome")
residenza=Request.Form("residenza")
Maschio=Request.Form("Maschio")
Femmina=Request.Form("Femmina")
SQL = "INSERT INTO dati (nome,cognome,residenza,Maschio,Femmina)"
SQL = SQL&"VALUES('"&nome&"','"&cognome&"','"&residenza&"',"&Maschio&","&Femmina&")"

i campi checkbox nel db sono settati come
Casella di Controllo;
Formato Vero/Falso

Come posso risolvere il problema?

Grazie
 
aiutino

Non posso correggerti direttamente il codice, ma posso fare di meglio. Ti do' cei consigli su come cercare di risolvere il problema.

I - non usare un checkbox, ma un pulsante radio, visto che la scelta è alternativa.

II - Fatti stampare la query sulla pagina html e copiala e falla eseguire direttamente sul database, così da ricavarne informazioni utili.

III - Se ancora non riesci fatti stampare il valore dei campi del form che arriva nella pagina di destinazione, e se non fossero adatti ad essere inserite nel db, modificali di conseguenza.

Spero che tutto ciò ti sia d'aiuto, non essendo un esperto questo è il modo migliore per darti una mano.
 

Discussioni simili