Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    67

    Individuare se un campo testo lungo Access 2016 e' vuoto

    Salve.

    Come da oggetto, su un vecchio sito nel quale ASP mi interfaccia dei DB Access 2000, ho dovuto modificare con Access 2016 un DB. Un campo, che in origine era un Memo,e' stato trasformato in Testo Lungo. Logicamente, gli ho fatto il salva con nome scegliendo il formato Access 2000.
    Impostando su questo DB un ciclo condizionale per verificare se in un dato record il campo Testo Lungo e' vuoto, mi risulta sempre che questo campo contiene qualcosa anche se non e' vero.
    Credo che il campo Testo Lungo generi automaticamente degli invii a capo al suo interno e questo probabilmente non mi permette di verificare se il campo e' vuoto.
    Infatti, esportando in un file TXT i dati del DB, ottengo:

    6;5/10/2016 00:00:00;"prova 5";"prova 5";"
    <= campo Testo Lungo (unico con invio a capo automatico)
    ";"../../public/lanfranco/home/betty-boop2(3).gif";"3617";"150";;;;;;;;;;;;;;;;;;;;;;;; ;"";"";"";"";"";"";""


    Ho provato ad impostare il ciclo condizionale nei modi piu' svariati:

    if testo = "" then
    ....
    end if

    if testo = " " then
    ....
    end if

    if testo = chr(13) then
    ....
    end if

    if testo = vbcrlf then
    ....
    end if

    Ho mixato il tutto anche con l'uso di len e trim...

    Ma non riesco a venirne a capo.

    Qualcuno puo' aiutarmi a capire?

    Vi ringrazio
    Ultima modifica di prof403; 06-10-2016 a 10:38

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    Quote Originariamente inviata da prof403 Visualizza il messaggio
    Credo che il campo Testo Lungo generi automaticamente degli invii a capo al suo interno
    non conosco bene access 2016, spero non sia vero...

    hai parlato di salvataggio da 2016 a 2000; ora che è 2000, se generi un'altro record, hai lo stesso problema?
    ti sarebbe possibile ritrasformare il campo in memo?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    67
    Se lo apro in Access 2016, il campo Memo non posso crearlo, devo utilizzare il Testo Lungo. Non so cosa combina quando faccio il salvataggio in formato Access 2000. Dovrei aprirlo con una versione vecchia dell'Office per verificarlo, ma non ce l'ho installata su nessun PC...
    Comunque voglio seguire il tuo consiglio, proverò a creare un campo Testo Lungo nuovo che non viene interfacciato da ASP per vedere come si comporta.

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    per curiosità, puoi mandarmi un db modificato di esempio?
    posso aprirlo con access 2003

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    67
    Quote Originariamente inviata da Vincent.Zeno Visualizza il messaggio
    per curiosità, puoi mandarmi un db modificato di esempio?
    posso aprirlo con access 2003
    Il DB te l'ho mandato tramite Skype.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    67
    Creando all'interno del DB un campo Testo Lungo nuovo (che ho chiamato prova):
    - se non e' interfacciato da ASP, quindi, se non viene utilizzato per memorizzare alcun dato, neanche nullo, rimane un campo vuoto (null)
    - se gli faccio memorizzare 0 caratteri (ovvero, RS("prova")=""), lo individuo dal ciclo condizionale mediante if RS("prova") = "" then
    - se gli faccio memorizzare il contenuto della textarea "testo" (nella quale non ho scritto nulla) il campo del DB contiene una riga vuota

    Si comporta esattamente come il campo Testo Lungo preesistente.

  7. #7
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    Quote Originariamente inviata da prof403 Visualizza il messaggio
    Il DB te l'ho mandato tramite Skype.
    non ricevuto.
    mandami in privato un link da dove scaricarlo

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    67
    Spero che questa volta il DB ti sia arrivato...

    Io ho risolto il problema del ciclo condizionale contando i caratteri del campo anzichè cercando di capire cosa cavolo contiene.
    Mi spiego, con len(testo) ho verificato che il campo testo, quando non c'è scritto niente dentro contiene 4 caratteri. Il ciclo condizionale l'ho trasformato in

    if len(testo) > 4 then
    ...
    end if

    e il problema è risolto.

    Mi resta però la curiosità di capire se quei 4 caratteri (tra cui due invii a capo) è il DB a generarli.

  9. #9
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    ciao,
    nel db ricevuto ci sono due campi meno: "presentazione" e "testo".
    nel campo testo, dove i record sembrano essere vuoti, ci sono tre ritorni a capo
    aggiungendo righe manualmente, tramite access 2003, queste sono popolate normalmente: ovvero sono vuote o nulle (salvo per il valore predefinito che hai inserito)


    Quote Originariamente inviata da prof403 Visualizza il messaggio
    - se gli faccio memorizzare il contenuto della textarea "testo" (nella quale non ho scritto nulla) il campo del DB contiene una riga vuota
    questa non l'ho capita bene... sicuro che la textarea sia realmente vuota?
    codice:
    <textarea></textarea>
    (senza spazi tra apertura e chiusura)
    perché, se il tag solamente va a capo, questo già è un carattere
    Ultima modifica di Vincent.Zeno; 06-10-2016 a 21:47

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    67
    Grazie dell'aiuto, intanto.

    Il valore predefinito poi l'ho tolto, non serviva a niente, perchè generando il record dalla pagina ASP, il campo non lo vedeva mai come vuoto.
    Si, <textarea></textarea>, in mezzo non c'è nulla. Avevo anche provato con <textarea>&nbsp;</textarea> e <textarea> </textarea> per vedere se riuscivo ad intercettare il contenuto con

    if RS("testo") = " " then
    ....
    end if

    o

    if RS("testo") = "&nbsp;" then
    ....
    end if

    ma niente, perchè quello spazio va ad aggiungersi ai 4 caratteri (due sono invii a capo) generati automaticamente.

    Se generi un record all'interno di Access, il campo "testo" rimane nullo, se fai il passaggio da ASP mediante RS("testo") = testo, anche se la textarea è vuota genera quei 4 caratteri due dei quali sono invii a capo.
    Se all'interno della pagina ASP generi il record, eliminando
    RS("testo") = testo, il campo e Null.

    Il campo "presentazione" non l'ho testato, ma, come ho scritto, generando un nuovo campo Testo Lungo, questo si comporta come il campo "testo".
    Ultima modifica di prof403; 09-10-2016 a 19:43

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.