Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    262

    [VB 6] Gestione record non valido valore Null

    Salve a tutti !!!!
    ho questo tipo di problema; vi spiego subito:
    Durante l'esportazione dei dati da un db access in un file excel,leggo tutti i record e li importo,funziona tutto correttamente fino a quando non trova un campo che non è valorizzato mi si blocca sul record set, come posso by passare questo problema?
    La stringa è questa:
    AdoRs2.Open "SELECT NomeAzienda FROM tAnagrafica WHERE Località='" & Replace(AdoRs!Località, "'", "''") & "' ORDER BY NomeAzienda", AdoCn
    Che si trova in un While, il problema degli apici l'ho gestito con la funzione Replace però se il campo è null mi da errore.
    Premetto che se si trova un campo null è normale in qunato non è obbligatorio.
    Attento una Vs risposta
    GRAZIE

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    per VB c'è il subforum: ti sposto lì
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    262
    Si, grazie, mi sono accorto dopo del sub forum.
    scusate e Grazie

  4. #4
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    codice:
    AdoRs2.Open "SELECT NomeAzienda FROM tAnagrafica WHERE Località='" & Replace(AdoRs!Località, "'", "''") & "' ORDER BY NomeAzienda", AdoCn
    Se la località è null, però, quali Aziende devi estrarre ?

    Ciao,



    PS: Rispondi ai pvt.
    Ciao, Brainjar

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    262
    a monte faccio un if e controllo che se non esiste la località scrivo nella cella "Città non specificata" e inserisco tutte le aziende dove non è stata indicata una località

  6. #6
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Allora devi impostare due estrazioni diverse, una per le Aziende con
    località Null e una, inserita nel ciclo While, per le altre.

    Non capisco,però, la necessità di inserire la query in un ciclo.

    Ciao,
    Ciao, Brainjar

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    262
    Allora ho scoperto una cosa; quando eseguo il recordset e cioè:
    AdoRs2.Open "SELECT NomeAzienda FROM tAnagrafica WHERE Località='" & Replace(AdoRs!località, "'", "''") & "' AND KeyCustomer=true ORDER BY NomeAzienda", AdoCn

    mettendo il Replace per gestire gli apici appena trova una località null,mi si blocca e mi dice utilizzo non valido di null,se lo tolgo tutto funziona correttamente fino a quando non trova qualche località con gli apici e mi si blocca.
    Che soluzione mi consigliate?

  8. #8
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Quello che ti ho condigliato prima.
    Devi eseguire due select distinte. Questo perchè
    1) La prima select
    codice:
    "SELECT NomeAzienda FROM tAnagrafica WHERE Località IS NULL AND KeyCustomer=true ORDER BY NomeAzienda", AdoCn
    Ti estrae TUTTI i record che hanno Località NULL.

    2) La seconda select
    codice:
    "SELECT NomeAzienda FROM tAnagrafica WHERE Località IS NOT NULL AND Località='" & Replace(AdoRs!località, "'", "''") & "' AND KeyCustomer=true ORDER BY NomeAzienda", AdoCn
    Ti estrae tutti i record per quella determinata Località

    Metti le select in questa struttura decisionale :

    codice:
       If IsNull(AdoRs!località.Value) then 
    
           AdoRs2.Open "SELECT NomeAzienda FROM tAnagrafica WHERE Località IS NULL AND KeyCustomer=true ORDER BY NomeAzienda", AdoCn 
       Else
           AdoRs2.Open "SELECT NomeAzienda FROM tAnagrafica WHERE Località IS NULL AND KeyCustomer=true ORDER BY NomeAzienda", AdoCn 
    
       End If
    Il problema, come ti ho già evidenziato, è che devi ottimizzare
    l'algoritmo, altrimenti, per ogni record con località = null del
    primo recordset, ti estrai sempre lo stesso recordset AdoRs2.


    Ciao,
    Ciao, Brainjar

  9. #9
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Errata corrige :

    codice:
    If IsNull(AdoRs!località.Value) then 
    
           AdoRs2.Open "SELECT NomeAzienda FROM tAnagrafica WHERE Località IS NULL AND KeyCustomer=true ORDER BY NomeAzienda", AdoCn 
       Else
           AdoRs2.Open "SELECT NomeAzienda FROM tAnagrafica WHERE Località IS NOT NULL AND Località='" & Replace(AdoRs!località, "'", "''") & "' AND KeyCustomer=true ORDER BY NomeAzienda", AdoCn 
    
       End If
    Ciao, Brainjar

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    262
    allora scusa se ti disturbo, forse non mi sono spiegato bene.
    allora nel primo controllo dove faccio il ciclo if mi server solo a controllare se esiste una località,in qunato devo crearmi il foglio excel è mettere dentro ogni cella il nome; se non esiste gli scrivo citta non specificata.A questo punto entra in gioco il recordset "Adors2" che mi deve inserire in ogni cella in corrispondenza della località il nome azienda. Ora se tolgo replace tutto funziona fino a che non trova un nome con l'apice e mi si blocca,però quando metto replace e trova un record dove non esiste la località mi si blocca. Quello che dovrei fare è trovare una soluzione per by passare il problema;però ripeto io devo prendere tutte le aziende anche dove non esiste la località che a loro volta vanno nella cella dove ho scritto "Città non specificata"

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.