Ecco la situazione: Esiste un database SQL Server con un front-end Microsoft Access. Esiste una tabella nel database di SQL Server con una colonna denominata PackID definita VARCHAR (6) NOT NULL (deve essere NOT NULL perché fa parte di una chiave primaria composita per questa tabella). Le stringhe vuote sono legittime nella colonna PackID. In realtà, si verificano abbastanza spesso. Quando l'utente immette i dati nell'interfaccia utente per questa tabella e le schede attraverso il campo PackID, viene visualizzato un messaggio di errore: "Impossibile inserire il valore NULL nella colonna" PackID ", la colonna non consente i valori null. INSERT non riesce."Stringa VBA vuota per l'inserimento in SQL Server
cose che sono state provate che non funzionano:
- l'aggiunta di un vincolo predefinito su questa colonna nel database di SQL Server con un valore di '' - a quanto pare il default viene utilizzato solo se la colonna viene omessa dal INSERT
- impostando il valore di default del campo PackID in Access per "" - si comporta come se "" è un NULL
chiamando il seguente codice VBA quando l'utente si allontana riga nella UI (evento fuoco perso)
If IsNull(PackID.Value) Then PackID.Value = "" End If
Qualcuno sa come forzare una stringa vuota in Access, quindi è interpretata come una stringa vuota per SQL Server e non un NULL?
La riga 'IsNull (ComponentPackID.Value)' restituisce True? – Jens
In Access è probabilmente una cosa che rende la vita "più semplice" inviare NULL per una stringa vuota, perché nei brutti vecchi giorni VBA, non c'erano buoni modi per gestire i valori NULL. È hacky ma che ne dici di un singolo spazio, quindi tagliare tutto indietro? – Jeremy
Sì, restituisce True. – knot22