Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Modificare record con campi numerici

    Buongiorno a tutti,
    ho realizzato una maschera per la modifica di alcuni records in un dbase di access 2000; tutto funziona bene tranne che quando apro un record per la modifica mi ritrovo alcuni campi (numerici) vuoti, che se non compilo al momento della modifica lo script va in errore segnalando:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

    [Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti nell'espressione criterio.

    di questi campi numerici non è sempre disponibile un valore da inserire; come posso fare affinchè si possano lasciare vuoti e lo script non vada in errore? Al momento sono costretto ad inserire sempre uno zero in questi campi numerici per poter modificare correttamente il record selezionato.
    Grazie

  2. #2
    Devi controllare che quei campi possano essere lasciati vuoti (devi controllare nel database direttamente le proprietà di quel campo)
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da Shagrat
    Devi controllare che quei campi possano essere lasciati vuoti (devi controllare nel database direttamente le proprietà di quel campo)
    Grazie, se ti riferisci alla proprietà 'richiesto' della tbl del dbase è prevista come 'no'
    ho capito bene?

  4. #4
    si esatto....
    posta la query
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Grazie, ecco la query:
    codice:
    SQL=""
    SQL = SQL &"UPDATE tbl set "
    SQL = SQL &"COSTRUTTORE='"&COSTRUTTORE&"',"
    SQL = SQL &"MATRICOLA_COSTRUTTORE='"&MATRICOLA_COSTRUTTORE&"'  ,"
    SQL = SQL &"ANNO_COSTRUZIONE='"&ANNO_COSTRUZIONE&"' ,"
    SQL = SQL &"DATA='"&DATA&"'  ,"
    SQL = SQL &"ACQUA='"&ACQUA&"' ,"
    SQL = SQL &"NUMERO='"&NUMERO&"' ,"
    SQL = SQL &"PCBW='"&PCBW&"' "
    
    SQL= SQL &"WHERE ID = "&COD
    Conn.Execute(SQL)
    I campi numerici che creano il problema sono ACQUA, NUMERO, PCBW... ho provato a togliere gli apici ma non cambia nulla...

  6. #6
    gli apici non ci vanno...e devi fare il controllo che il campo sia presente, supponendo che i campi che possono essere vuoti siano solo quei tre farei così:

    codice:
    if IsNull(ACQUA) or ACQUA="" then 
      ACQUA = null
    end if
    if IsNull(NUMERO) or NUMERO="" then 
      NUMERO = null
    end if
    if IsNull(PCBW) or PCWB="" then 
      PCWB = null
    end if
    
    
    SQL=""
    SQL = SQL &"UPDATE tbl set "
    SQL = SQL &"COSTRUTTORE='"&COSTRUTTORE&"',"
    SQL = SQL &"MATRICOLA_COSTRUTTORE='"&MATRICOLA_COSTRUTTORE&"'  ,"
    SQL = SQL &"ANNO_COSTRUZIONE='"&ANNO_COSTRUZIONE&"' ,"
    SQL = SQL &"DATA='"&DATA&"'"
    SQL = SQL &",ACQUA="&ACQUA
    SQL = SQL &",NUMERO="&NUMERO
    SQL = SQL &",PCBW="&PCBW
    
    SQL= SQL &" WHERE ID = "&COD
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  7. #7
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da Shagrat
    gli apici non ci vanno...e devi fare il controllo che il campo sia presente, supponendo che i campi che possono essere vuoti siano solo quei tre farei così:

    codice:
    if IsNull(ACQUA) or ACQUA="" then 
      ACQUA = null
    end if
    if IsNull(NUMERO) or NUMERO="" then 
      NUMERO = null
    end if
    if IsNull(PCBW) or PCWB="" then 
      PCWB = null
    end if
    
    
    SQL=""
    SQL = SQL &"UPDATE tbl set "
    SQL = SQL &"COSTRUTTORE='"&COSTRUTTORE&"',"
    SQL = SQL &"MATRICOLA_COSTRUTTORE='"&MATRICOLA_COSTRUTTORE&"'  ,"
    SQL = SQL &"ANNO_COSTRUZIONE='"&ANNO_COSTRUZIONE&"' ,"
    SQL = SQL &"DATA='"&DATA&"'"
    SQL = SQL &",ACQUA="&ACQUA
    SQL = SQL &",NUMERO="&NUMERO
    SQL = SQL &",PCBW="&PCBW
    
    SQL= SQL &" WHERE ID = "&COD
    Grazie, ma restituisce:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nell'istruzione UPDATE.

    code:
    codice:
    if IsNull(ACQUA) or ACQUA="" then 
      ACQUA = null
    end if
    if IsNull(NUMERO) or NUMERO="" then 
      NUMERO = null
    end if
    if IsNull(PCBW) or PCWB="" then 
      PCWB = null
    end if
    
    
    SQL=""
    SQL = SQL &"UPDATE tbl set "
    SQL = SQL &"COSTRUTTORE='"&COSTRUTTORE&"',"
    SQL = SQL &"MATRICOLA_COSTRUTTORE='"&MATRICOLA_COSTRUTTORE&"'  ,"
    SQL = SQL &"ANNO_COSTRUZIONE='"&ANNO_COSTRUZIONE&"' ,"
    SQL = SQL &"DATA='"&DATA&"'"
    SQL = SQL &",ACQUA="&ACQUA
    SQL = SQL &",NUMERO="&NUMERO
    SQL = SQL &",PCBW="&PCBW
    
    SQL= SQL &" WHERE ID = "&COD

  8. #8
    codice:
    if IsNull(ACQUA) or ACQUA="" then 
      ACQUA = null
    end if
    if IsNull(NUMERO) or NUMERO="" then 
      NUMERO = null
    end if
    if IsNull(PCBW) or PCWB="" then 
      PCWB = null
    end if
    
    
    SQL=""
    SQL = SQL &"UPDATE tbl set "
    SQL = SQL &"COSTRUTTORE='"&COSTRUTTORE&"',"
    SQL = SQL &"MATRICOLA_COSTRUTTORE='"&MATRICOLA_COSTRUTTORE&"'  ,"
    SQL = SQL &"ANNO_COSTRUZIONE='"&ANNO_COSTRUZIONE&"' ,"
    SQL = SQL &"DATA='"&DATA&"'"
    SQL = SQL &",ACQUA="&ACQUA
    SQL = SQL &",NUMERO="&NUMERO
    SQL = SQL &",PCBW="&PCBW
    
    SQL= SQL &" WHERE ID = "&COD
    
    response.write SQL : response.end
    guarda un po' cosa ti viene scritto a video e postalo
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  9. #9
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    ok, grazie... ecco qui:

    codice:
    UPDATE ListFiles set COSTRUTTORE='OCREN',MATRICOLA_COSTRUTTORE='551983' ,ANNO_COSTRUZIONE='1964' ,DATA='16/12/03' ,ACQUA='38 ,NUMERO=' ,PCBW='WHERE ID = 653

  10. #10
    hihi, come puoi vedere c'è qualcosa di sbagliato

    arrivano degli apici che non dovrebbero arrivare...controlla bene come viene passata la variabile
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.