controlla che il campo accetti null
in un campo numerico non lo farei mai ma imposterei il valore a 0
parliamo di access, vero?
edit:
se ti prende la prima soluzione che ho scritto mi fa pensare che il campo sia di tipo testo
controlla che il campo accetti null
in un campo numerico non lo farei mai ma imposterei il valore a 0
parliamo di access, vero?
edit:
se ti prende la prima soluzione che ho scritto mi fa pensare che il campo sia di tipo testo
Ultima modifica di Vincent.Zeno; 22-02-2018 a 14:00
Il guaio per i poveri computers e' che sono gli uomini a comandarli.
Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
Consultate la discussione in rilievo: script / discussioni utili
Usate la funzione di Ricerca del Forum
Il DB è Access.
Il campo è numerico (Intero lungo) e può accettare il valore Null.
La prima soluzione che mi hai suggerito funziona; nella procedura VB6 assegno Null senza stratagemmi particolari (De.rsutenti!Bolletta_mail = Null).
Oggi è una scelta quasi obbligata perchè quando definii il campo come numerico (qualche anno fa) senza specificare un valore predefinito, ci ho trovato Null. Di conseguenza ho strutturato l'app VB6 su 2 valori: Null per FALSO e 1 per VERO e siccome i db sono circa 400 e le procedure VB sono una ventina, mi secca andarle a modificare magari con ZERO e UNO
In effetti per l'utilizzo attuale di questo campo avrei potuto anche scegliere un campo di tipo S/N ma ho preferito il numerico in quanto il campo di tipo S/N mi limita ad un massimo di 2 scelte.
Resta il fatto che la seconda soluzione suggerita da optime da errore.
Il problema l'ho risolto ma non vi nascondo che mi incuriosisce capire perch� la seconda non va
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nell'istruzione UPDATE.
/updUtenza.asp, riga 176
codice:If Len(Trim(Replace(Request.Form("Mailadress"), "'", "''"))) > 0 Then Bolletta_mail = 1 Else Bolletta_mail = Null End If sqlUpdUtente = sqlUpdUtente & "Bolletta_mail= "& Bolletta_mail &", "
L'errore si presenta quando Boletta_mail = Null ossia quando il campo del form è vuoto
Se Bolletta_mail = 1 tutto OK
Ultima modifica di LupinI; 23-02-2018 a 11:50
impariamo a fare un po' di debug
subito prima di eseguire la query inserisci
Response.Write "MaGGica sql...: " & sqlUpdUtente
Così vediamo cosa esegui effettivamente
sembra che prenda null come variabile e non come valore. prova così:
codice:If Len(Trim(Replace(Request.Form("Mailadress"), "'", "''"))) > 0 Then Bolletta_mail = 1 Else Bolletta_mail = "Null" End If sqlUpdUtente = sqlUpdUtente & "Bolletta_mail= "& Bolletta_mail &", "
cacchio vince', volevo che ci arrivasse da solo!
Funziona, ed ho capito anche l'errore di sintassi, E' un concatenamento cumulativo e se mancano gli apici, il risultato finale del concatenamento da origine ad una query con sintassi errata.
Perdonatemi se potete ma ho dovuto mettere mano a delle procedure ASP realizzate da altro programmatore.
Personalmente mi occupo solo della procedura VB6 che lavora in rete locale.
Grazie di tutto
non era un problema di concatenamento, ma del tipo di dati che vanno trattati diversamente se numero o testo. nel caso specifico è necessario scrivere il valore "null" altrimenti la query risulta mancate di un valore. e il tipo dati nella query dev'essere numerico, e non testo, come lo avevi impostato all'inizio.