Query e soma di valori non numerici

di il
7 risposte

Query e soma di valori non numerici

Ho poca conoscenza delle query , mi servirebbe interrogare una tabella dove riscontro dei valori errati di digitazione nei suoi campi
la tabella si compone di DescrRagSoc; Via; NumCivico; ViaSL; NumCivicoSL; Cognome; Nome.
ad esempio volevo quantificare quanti caratteri "--" sono presenti nel testo di tutte queste colonne (due trattini ni anziché uno solo)
quindi nella prima colona della query (visualizzata in in struttura) nel criterio metto like "*--*" ; nella formula pensavo di mettere conteggio, ma si limita a riportare il valore 1 per ogni campo corrispondente, senza darmi il totale; lo stesso dicasi per le altre colonne dove ovviamente il like "*--*" viene posto nella condizione Oppure.

per essere più chiari vorrei visualizzare quanti campi della prima colonna contengono l'errore, quanti della seconda contengono l'errore e così via ; il tutto per quantificare la mole di lavoro dell'operatore che dovrà correggere quelli effettivamente errati.

7 Risposte

  • Re: Query e soma di valori non numerici

    A me non è chiaro se, ponenedo che nella colonna DescrRagSoc ci sono 50 valori errati, nella Via ce ne sono 30 errati, e in Cognome ce ne sono 80 errati tu desideri:
    A) Vedere i 50 + 30 + 80 errati ...cosa impossibile da visualizzare in unica query...ti servono 3 query (nella tua richiesta 7 query)
    B) Conteggio errati DescrRagSoc / Conteggio errati Via / Conteggio errati Cognome...in quest'ultimo caso vedresti 1 solo record con i 3 valori 50 / 30 / 80.
  • Re: Query e soma di valori non numerici

    Ho già predisposto le query per essere interrogate col carattere che io scelgo da una txtbox e queste visualizzano i campi da correggere, quindi al momento non mi serve considerare come giustamente hai fatto presente le diverse quantità e i le diverse info rispetto alle colonne che possono essere diverse diverse. Devo invece limitarmi chiedere solo il conteggio dei record con gli errori ( che naturalmente possono anche essere coesistenti di due o più campi ; ad es. DescrRagSoc "antonio -- lo giudice" e Via " lo --Jacono".
    per farti capire chiedo alla query di restituirmi i campi che contengono:
    Like "*¦*" Or Like "*+*" Or Like "*+*" Or Like "*û*" Or Like "*Æ*" or like "*¦*" or like "*ö*"or like "*ô*"or like "*$*"or like "*%*"or like "*$*"or like "*ç*"or like "*<*"or like "*>*" or like "*=*"or like "*;;*"or like "*.;*"or like "*;,*"or like "*//*" or like "*..*" or like "*--*" or like "*_*"
    quindi mi restituisce il testo , ma ripeto mi serve invece il totale dei record

    ho appena provato a inserire tutte queste condizioni e superate le 4 colonne, il sistem da una finestra che mi dice che effettivamente sono troppe , motivo per cui forse è opportuno suddividere le richieste per ogni tipologia di carattere errato, ottenerne i totali e visualizzarli in una maschera che riassuma le risultanze di tutte queste query (magari specificando il carattere per ogni subtotale e infine sommando tutti i subtotali). resta il fatto che non riesco ad ottenere quanti record contiene ogni query che dovrò preparare

    chiedo scusa se mi spiego in maniera confusa e inadeguata
  • Re: Query e soma di valori non numerici

    calascibetta ha scritto:


    forse è opportuno suddividere le richieste per ogni tipologia di carattere errato, ottenerne i totali e visualizzarli in una maschera che riassuma le risultanze di tutte queste query
    Se ti serve solo questo risultato, forse puoi non impiantare query apposta apposta, ma sfruttare la funzione DCount con tutti e 3 gli argomenti. Il terzo lo usi appositamente come filtro sul "singolo" campo da analizzare.
    https://support.microsoft.com/it-it/office/funzione-dcount-f6b5d78b-ad0b-4e42-be7a-11a64acbf3d3

    P.S.: Non sono sicuro di aver afferrato fino in fondo il tuo intento, ma (qualcosa mi dice che) io al posto tuo farei così:
    1. Creo le 7 query che mi servono comunque a identificare "quali" sono questi valori errati.
    2. Nella maschera creo 7 textbox con 7 espressioni DCount (senza usare il 3° argomento) che puntano sulle corrispondenti 7 query. In questo modo, la maschera ti dà un risultato "al volo" della situazione, la singola query serve per esporti "esplicitamente" i valori con errori che (immagino) vorrai correggere poi.
  • Re: Query e soma di valori non numerici

    Seguo il tuo consiglio e provo grazie
    credo tu abbia compreso il senso di che intendevo
  • Re: Query e soma di valori non numerici

    Direi che la soluzione più semplice è utilizzare una maschera di ricerca con all'interno una sottomaschera di tipo continua che conterrà tutti i record.
    Nell'intestazione della maschera dovresti inserire una una casella di testo dove inserire il carattere o i caratteri da ricercare.
    Inserito il dato filtrerai la sottomascchera, su tutti i campi che vuoi, in modo da visualizzare solo i record interessati e che l'operatore potrà modificare.
  • Re: Query e soma di valori non numerici

    Non posso che ringraziare, ho trovato la soluzione grazie al tuo suggerimento. Nel mio caso, mi serviva solo dare una info generica e mi sono reso conto che potevo evitare di creare query da dedicarvi, infatti, per ogni campo di testo della mia maschera ho inserito la formula Dcount, interrogando direttamente la tabella AA dove i dati sono presenti.
    Con un ulteriore pulsante di stampa della maschera, previa aggiunzione di istruzione vba per visualizzare nel campo TxtRiportaData la data corrente con l'orario, ottengo i dati risultanti.
    Resta ovvio che nel mio caso , visto che per ogni 22 corrispondenze di caratteri cercati, corrispondono 7 campi di testo con la funzione DCount, per visualizzare il risultato occorre attendere dai 60 ai 120 secondi (un tempo accettabile per 144 interrogazioni eseguite una dietro l'altra).
    riporto un esempio dell'istruzione inserita in uno di questi campi
    =DCount("[DescrRagSoc]";"AA";"[DescrRagSoc]like '*¦*'")
    codice per aggiungere al pulsante di stampa l'istruzione di visualizzare la casella TxtRiportaData e di aggiungervi Data ed Orario correnti
    Private Sub CmdStampaVer_Click()
    On Error GoTo Err_CmdStampaVer_Click
    TxtRiportaData.value = Now
    TxtRiportaData.Visible = True
        DoCmd.PrintOut
    
    Exit_CmdStampaVer_Click:
        Exit Sub
    
    Err_CmdStampaVer_Click:
        MsgBox Err.Description
        Resume Exit_CmdStampaVer_Click
        
    End Sub
    nuovamente ringrazio e faccio gli auguri a tutti
  • Re: Query e soma di valori non numerici

    calascibetta ha scritto:


    Non posso che ringraziare, ho trovato la soluzione grazie al tuo suggerimento.
    Ti serve un conteggio separato per ogni "carattere balordo" da controllare?
    Se non è così basta fare un LIKE '*[......]*' mettendo dentro la parentesi quadrata i vari caratteri da cercare. Per quelli che vanno cercati "in coppia" credo che si sia obbligati a andare con OR, ripetendo la stessa struttura del like, con un carattere tra parentesi quadra ogni volta.
    Mi spiego
    LIKE '*[¦++ûƦöô$%$ç<>=_]*' OR
    LIKE '*[;][;]*' OR 
    LIKE '*[.][;]*' ....
    (qui sono andato a capo per capire meglio il ragionamento)
    Forse, dico forse, creando una funzione con le espressioni regolari si può riuscirci senza quella sfilza di OR ma non è detto che quanto a prestazioni sia meglio. Ma soprattutto non saprei come farlo, so solo che esistono e qualche infarinatura ma applicarla al caso concreto è fuori dalla mia portata.
Devi accedere o registrarti per scrivere nel forum
7 risposte