Newsgroup: it.comp.appl.access
Titolo: valore nullo in query di inserimento

Buon pomeriggio.
In una procedura di caricamento automatico di record da tabella dettagli ordini in tabella dettagli fattura, ho alcuni record di cui  tutti i campi hanno dei valori da duplicare mentre altri hanno dei campi che possono aver nessun valore.
Nel ciclo, se tutti i campi hanno un valore, la query di inserimento copia il record; se invece uno dei campo è vuoto, il vba va in errore.
Ho provato con Iif(rs!IdPresenzaTipo = Null, Null, rs!IdPresenzaTipo) oppure sostituendo Null con "".
Mi domando se è fattibile una query in cui uno o più campi hanno valore nullo e
se sì cosa devo mettere quando so che un campo può avere valore nullo?
Grazie.
Giuseppe

Ci sarebbe da guardare il codice... se aggiungi il quote perché sono campi stringa ovviamente va in errore, il Null va inserito senza quote.
 
@Alex

 @Alex
 
Ho risolto con un If, ma in altri casi, ci sono altri campi che presentano valori nulli.
Il codice atuale è questo
Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT tblDatoDettagli.* FROM tblDatoDettagli LEFT JOIN tblDocumentoDettagli ON tblDatoDettagli.IdDatoDettaglio = tblDocumentoDettagli.IdDatoDettaglio WHERE IDDato = " & Form_mDocumentoDato.IdDato & " AND tblDocumentoDettagli.idDatoDettaglio Is Null" & " AND Seleziona = true ")
    Do While Not rs.EOF
        With Form_mDocumentoDato
            If IsNull(rs!IdPresenzaTipo) Then
                CurrentDb.Execute "INSERT INTO tblDocumentoDettagli ( IdDocumento, IdArticolo, IdCategoria, IdUnitaDiMisura, Quantita, IdIva, PrezzoUnitarioDiVendita, PercentualeFatturata, PrezzoUnitarioEffettivo,PercentualeSconto, PrezzoUnitarioNetto, Contributo, Imponibile, ImportoIva, TotaleDettaglio, DataInizio, DataFine, IdDatoDettaglio ) " & _
                                "SELECT " & Form_mDocumento.IdDocumento & " AS IdDocumento, " & rs!IdArticolo & " AS IdArticolo, " & rs!IdCategoria & " AS IDCategoria, " & rs!IdunitadiMisura & " AS IdUnitaDiMisura, " & rs!Quantita & " AS Quantita, " & _
                                "" & rs!IdIva & " AS IdIva, " & Replace(rs!PrezzoUnitarioDiVendita, ",", ".") & " AS PrezzoUnitarioDiVendita, " & Replace(rs!PercentualeOrdinata, ",", ".") & " AS PercentualeFatturata, " & Replace(rs!PrezzoUnitarioEffettivo, ",", ".") & " AS PrezzoUnitarioEffettivo,  " & Replace(rs!PercentualeSconto, ",", ".") & " AS PercentualeSconto, " & Replace(rs!PrezzoUnitarioNetto, ",", ".") & " AS PrezzoUnitarioNetto, " & Replace(rs!Contributo, ",", ".") & " AS Contributo," & Replace(rs!Imponibile, ",", ".") & " AS Imponibile, " & Replace(rs!ImportoIva, ",", ".") & " AS ImportoIva, " & Replace(rs!TotaleDettaglio, ",", ".") & " AS TotaleDettaglio, " & CLng(rs!DataInizio) & " AS DataInizio, " & _
                                "" & CLng(rs!DataFine) & " AS DataFine, " & rs!IdDatoDettaglio & " AS IdDatoDettaglio "
            Else
                CurrentDb.Execute "INSERT INTO tblDocumentoDettagli ( IdDocumento, IdArticolo, IdPresenzaTipo, IdCategoria, IdUnitaDiMisura, Quantita, IdIva, PrezzoUnitarioDiVendita, PercentualeFatturata, PrezzoUnitarioEffettivo,PercentualeSconto, PrezzoUnitarioNetto, Contributo, Imponibile, ImportoIva, TotaleDettaglio, DataInizio, DataFine, IdDatoDettaglio ) " & _
                                "SELECT " & Form_mDocumento.IdDocumento & " AS IdDocumento, " & rs!IdArticolo & " AS IdArticolo, " & rs!IdPresenzaTipo & " AS IdPresenzaTipo, " & rs!IdCategoria & " AS IDCategoria, " & rs!IdunitadiMisura & " AS IdUnitaDiMisura, " & rs!Quantita & " AS Quantita, " & _
                                "" & rs!IdIva & " AS IdIva, " & Replace(rs!PrezzoUnitarioDiVendita, ",", ".") & " AS PrezzoUnitarioDiVendita, " & Replace(rs!PercentualeOrdinata, ",", ".") & " AS PercentualeFatturata, " & Replace(rs!PrezzoUnitarioEffettivo, ",", ".") & " AS PrezzoUnitarioEffettivo,  " & Replace(rs!PercentualeSconto, ",", ".") & " AS PercentualeSconto, " & Replace(rs!PrezzoUnitarioNetto, ",", ".") & " AS PrezzoUnitarioNetto, " & Replace(rs!Contributo, ",", ".") & " AS Contributo," & Replace(rs!Imponibile, ",", ".") & " AS Imponibile, " & Replace(rs!ImportoIva, ",", ".") & " AS ImportoIva, " & Replace(rs!TotaleDettaglio, ",", ".") & " AS TotaleDettaglio, " & CLng(rs!DataInizio) & " AS DataInizio, " & _
                                "" & CLng(rs!DataFine) & " AS DataFine, " & rs!IdDatoDettaglio & " AS IdDatoDettaglio "
            End If
 
Ovviamente il campo incriminato in questo caso è IdPresenzaTipo.
Spero il codice sia leggibile per effetto dell'indentazione, avendo fatto il copia incolla.
Grazie Alex.