Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: Campi vuoti o nulli

  1. #1

    Campi vuoti o nulli

    Ciao, ancora io.

    Devo verificare, prima di eseguire una query insert into, che un campo della tabella di access sia debitamente compilato e nel caso sia vuoto o nullo, nella query va scritto valore NULL; questo controllo riguarda più campi contemporaneamente e volevo sapere se potevo con un solo comando controllare simultaneamente tutti i campi.

    Questo è il code con il controllo campo x campo singolo:
    codice:
     if IsNull(rec("A")) or IsEmpty(rec("A")) or Len(rec("A"))="" then 
     A = "NULL"
    else
     A = rec("A")
    end if
    
    if IsNull(rec("B")) or IsEmpty(rec("B")) or Len(rec("B"))="" then 
     B = "NULL"
    else
     B = rec("B")
    end if
    
    if IsNull(rec("C")) or IsEmpty(rec("C")) or Len(rec("C"))="" then 
     C = "NULL"
    else
     C = rec("C")
    end if
    
    SQL = "INSERT INTO tblx (A, B, C) VALUES (& REC("A") &"#, "& REC("B") &", '"& REC("C") &"')"
    MyConn.execute(SQL)
    Gracias!!!

  2. #2
    Enrique, ho provato a testare qualche soluzione, purtroppo al momento il dovere mi chiama........al lavoro, e devo lasciare in sospeso.

    Direi comunque che, per la struttura stessa del controllo, questo si presti ad essere eseguito sia con un ciclo

    codice:
    for i=0 to 2
    
    ...controllo...
    
    next
    sia con un ciclo del tipo

    codice:
    for each campo in rec.fields
    
    ...controllo...
    
    next
    debitamente costruiti.

    Okkio perchè la sintassi

    codice:
    Len(rec("A"))=""
    non è corretta, devi fare

    codice:
    Len(rec("A"))=0
    A più tardi...
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  3. #3
    puoi fare una funzione del tipo

    A=ControlloVuoto(rec("A"))

    sai gia' cosa mettere dentro ControlloVuoto...

  4. #4
    Originariamente inviato da optime
    puoi fare una funzione del tipo

    A=ControlloVuoto(rec("A"))

    sai gia' cosa mettere dentro ControlloVuoto...
    Grazie, scusa ma non ho capito cosa vuoi suggerirmi...
    se devo scrivere una funzione dovrei elencare tutti i campi da controllare?

  5. #5
    Originariamente inviato da teorema55
    Enrique, ho provato a testare qualche soluzione, purtroppo al momento il dovere mi chiama........al lavoro, e devo lasciare in sospeso.

    Direi comunque che, per la struttura stessa del controllo, questo si presti ad essere eseguito sia con un ciclo

    codice:
    for i=0 to 2
    
    ...controllo...
    
    next
    sia con un ciclo del tipo

    codice:
    for each campo in rec.fields
    
    ...controllo...
    
    next
    debitamente costruiti.

    Okkio perchè la sintassi

    codice:
    Len(rec("A"))=""
    non è corretta, devi fare

    codice:
    Len(rec("A"))=0
    A più tardi...
    Grazie teorema55... aspetterò...

  6. #6
    mmmmm, bisogna proprio dirti tutto....

    codice:
    Function ControllaVuoto(sSTr)
       If IsNull(sSTr) or IsEmpty(sSTr) or Len(sSTr)=0 then 
          ControllaVuoto = "NULL"
       Else
          ControllaVuoto = sSTr
       End If
    End Function
    poi puoi fare

    codice:
    A = ControllaVuoto(rec("A"))
    B = ControllaVuoto(rec("B"))
    C = ControllaVuoto(rec("C"))
    
    SQL = "INSERT INTO tblx (A, B, C) VALUES (" & A & "#, " & B & ", '" & C & "')"
    MyConn.execute(SQL)
    oppure

    codice:
    SQL = "INSERT INTO tblx (A, B, C) VALUES (" & ControllaVuoto(rec("A"))
     & "#, " & ControllaVuoto(rec("B")) & ", '" & ControllaVuoto(rec("C"))
     & "')"
    MyConn.execute(SQL)

  7. #7
    Uhm....sì, sono d'accordo sulla funzioncina, mi sembra...

    un' OPTIME idea!

    :maLOL:



    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  8. #8
    Originariamente inviato da teorema55
    Uhm....sì, sono d'accordo sulla funzioncina, mi sembra...

    un' OPTIME idea!

    :maLOL:




  9. #9
    Optime! funziona alla grande!!! :maLOL:

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    415
    Riprendo questa discussione che ho ritrovato effettuando una ricerca:
    ma se utilizzo la funzione indicata da Optime e ho un campo di testo, dovrebbe scrivere nel campo il valore NULL o sbaglio?
    Siccome sono abituato a Oracle e dovendo utilizzare adesso anche un DB access ci sto sbattendo un po' la testa, sembra meno flessibile.

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.