FUNZIONE IF

di il
9 risposte

FUNZIONE IF

Buonasera a tutti,

mi scuso in anticipo se ho creato un novo argomanto, ma sono un neofita dei Forum e non mi sembra di aver trovato dei post sulla funzione “If” almeno per quello che è il mio problema.

cerco di spiegare la mia situazione:

ho creato un DB all'interno del quale c'è una tabella con una serie di articoli nella quale ho inserito id_articolo, descrizione ecc. ….

questi articoli hanno un campo che si chiama “finitura” e che indica il colore. 

Avrei necessità di creare un report nel quale tutti gli articoli che inziano per “M3-5” e “M3-6” il valore “Finitura” diventi “Laccato” e per quelli dove il campo finitura è “rosso” diventi Bianco per tutti gli altri articoli, invece, mantenga la finitura originale, ovviamnete senza modificareil valore originale della tabella articoli.

Ho provato a creare un Qry con un campo calcolato ma non sono riuscito, allora ho pensato di lavorare direttamnete sul report creando una casella di testo alla quale legare una Routine all'apertura report che compila la casella di testo utilizzando la funzione “IF”, ma purtroppo non so come scrivere il codice.

Se cortesemente qualcuno mi puo aiutare, premesso che se ci fossero altre “strade” che non ho consideraro le possiamo valutare…

Ringrazie in anticipo  

9 Risposte

  • Re: FUNZIONE IF

    Non esiste una funzione IF

    Non si capisce se quelle variazioni di contenuto di campo vuoi che siano definitive o no.

    Forse volevi usare la funzione IIF

  • Re: FUNZIONE IF

    Oregon buongiorno,

    Si hai ragione non IF ma IIF!

    No, le variazioni non devono essere definitive, i dati sulla tabella articoli devono rimanere quelli originali, la variazione di dati deve essere solo nel Report.

    Grazie

  • Re: FUNZIONE IF

    Ciao.

    A naso, quello che vuoi fare implica  una conoscenza della scrittura in vba e dei  database in generale che al momento mi sembra che non possiedi. 

    Inoltre anche a livello logico sempre secondo me, non è un approccio giusto.

    Mi sembra di capire che hai un codice colore, una descrizione del colore ed il tipo di verniciatura, che potrebbe variare nel temp,anche per altri colori.

    Con il metodo che vuoi adottare, se si aggiungessero 1000 colori, dovresti aggiungere 1000 volte le modifiche a livello di codice.

    Quindi ti suggerisco di aggiungere un campo alla tabella colori, dove metterai il tipo di verniciatura che sar  legato in modo permanente a quel colore. Campo che poi userai nel report.

    Cosi facendo lo immetterai solo al momento dell immissione del nuovo colore, ed inoltre ti permetterà anche di avere la possibilità di sapere quanti colori laccati, opachi, metallizzati hai in archivio.

  • Re: FUNZIONE IF

    Nella query in una colonna vuota scrivi:

    Finitura:IIf([NomeTabellaArticoli].[Finitura]="M3-5" OR [NomeTabellaArticoli].[Finitura]="M3-6";"Laccato";IIf([NomeTabellaArticoli].[Finitura]="rosso";"Bianco ";[NomeTabellaArticoli].[Finitura]))

    ma da quello che dici sembra esserci una cattiva strutturazione del database in quanto il campo "Finitura", nella tabella degli articoli, dovrebbe essere sostituito da uno di tipo numerico (intero lungo) IDFinituraFk relazionato a una tabella delle finiture, che potresti chiamare tblFiniture, con i campi IDFinitura (di tipo Numerazione automatica e impostata Chiave primaria) e un'altro Finitura (di tipo Testo con le proprietà impostate nel seguente modo Richiesto?Sì, Consenti lunghezza zero?No, Indicizzato?Sì (Duplicati non ammessi) dove effettivamenti inerisci l'effettivo testo della finitura e in modo univoco.

  • Re: FUNZIONE IF

    Fratac ciao,

    No non è esattamente comn hai scritto, la situazione è un pò diversa…….

    Cerco di essere un pò più chiaro.

    Non ho un tipo di verniciatura da associare al colore, ho semplicemente dei colori o Finiture (come le chiamo io), le quali hanno un codice.

    Ho semplicemnte bisogno che la finitura che ha codice “001” e descrizione “Rosso” nel Report esca come Bianco, mentre in tutti gli altri casi mantenga la “finitura” originale, ma fin a qui riesco a farlo con un a Qry con un campo calcolato utilizzando la funzione “IIf”. Il problema nasce adesso nel senso che dovrei fare la stessa cosa per tutti gli articoli che iniziano con un determinato carattere (i casi sono solo 2).

    Non mi interessa la finitura originale poichè ogni volta che l'articolo inizia con determinati caratteri mi deve dare sempre lo stesso risultato….

    Tutto ciò solo a livello di Report perchè i dati originali nella tabella devono rimanere…

    Ciao 

  • Re: FUNZIONE IF

    05/12/2022 - LeMirco ha scritto:


    Non mi interessa la finitura originale poichè ogni volta che l'articolo inizia con determinati caratteri mi deve dare sempre lo stesso risultato

    Allora a monte della   funzion  iif devi ricavarele lettere che ti occorrono,manipolando la stringa con left() o right() o mid().

    Poi confronti il dato risultante.

  • Re: FUNZIONE IF

    Allora ho inserito nella Qry un campo calcolato come mi ha scritto Stifone e ho risolto la parte relativa agli articolo che iniziano per …….

    Adesso dovrei completare la cosa con la seconda parte ossia ……

    tutti quegli articoli che hanno come finitura “rosso” devono diventare “Bianco” …. 

  • Re: FUNZIONE IF

    Se l'istruzione l'hai copiata tutta e correttamente deve darti il risultato anche per gli altri casi altrimenti è più semplice aiutarti se posti un file di esempio con un minimo di dati non sensibili.

  • Re: FUNZIONE IF

    Stifone ciao,

    Hai ragione non avevo scritto una parte di formula, scusami!

    Risolto tutto! Grazie a tutti!

Devi accedere o registrarti per scrivere nel forum
9 risposte