Quesito di un neofita

di il
24 risposte

24 Risposte - Pagina 2

  • Re: Quesito di un neofita

    Creare una query:
    1) Vai nella zona di sinistra e clicca su Query
    2) Clicca in alto su Nuovo
    3) Scegli Visualizzazione struttura
    4) Mostra tabella: scegli SPESE, poi OK
    5) Vedrai apparire la tabella in alto a sinistra con tutti i suoi campi, avvicina il mouse su un campo, cliccaci sopra e trascinalo nella prima colonna della griglia in basso. Ripeti questa operazione per gli altri campi che ti interessa visualizzare.
    6) In basso alla griglia, segui il rigo Criteri e in corrispondenza dei campi Componente, Categoria e Data ci scrivi esattamente quelle tre sintassi che ho elencato negli ultimi punti 1)2)3),
    Like [un testo qualsiasi racchiuso tra parentesi quadre riguardante Componente]
    Like [un testo qualsiasi racchiuso tra parentesi quadre riguardante Categoria]
    Between [Dimmi la data di inizio] And [Dimmi la data di fine]

    Come creare una query è ampiamente spiegato sia su qualsiasi manuale di base, sia sulla guida in linea. Per capire poi il significato di quelle parentesi quadre, devi andare al sottoargomento "query con parametri"
  • Re: Quesito di un neofita

    Like [un testo qualsiasi racchiuso tra parentesi quadre riguardante Componente]

    Ho provato a fare come mi dici tu solo con il nome ma nell'eseguire la query mi chiede di immettere il valore parametro: inserisco lo stesso nominativo che appare in criteri (es. Like [papà]) ma non mi compare nulla...
  • Re: Quesito di un neofita

    Il testo racchiuso tra parentesi quadre è libero e corrisponde a ciò che vedrai scritto nella finestra dove devi inserire il parametro. Se hai scritto
    Like [Digita il nome di un Componente]
    quando andrai ad eseguire la query, ti apparirà una finestra con su scritto "Digita il nome di un Componente" e sotto dovrai scrivere tu quale componente vuoi scegliere. Sìì preciso nel digitare esattamente un valore Componente esistente nella tua tabella Componenti, altrimenti Access non sa dove cercare tale valore. Ad es. "papà" è esattamente con l'accento sulla à? O è stato memorizzato come papa' (con l'apostrofo)?

    Like [papà]
    non ha senso per quello che pensavi tu. Access, tra parentesi quadre, non va a pescare alcun valore. Ti mostrerà una finestra con su scritto "papà" e aspetta che tu digiti un valore valido dal suo elenco dati.

    Beh, poi fai ancora attenzione. Se hai preferito una sola query con 4 domande-parametro è ovvio che Access ti invia prima le 4 domande una per una e soltanto dopo ti mostra la query (solo la pazienza di qualche secondo in più!).
  • Re: Quesito di un neofita

    Ciao Osvaldo,
    pian piano avverto miglioramenti, seppur lievi sono sempre segnali di buon auspicio...
    in effetti sono costretto a creare una query con 4 domande-parametro, perchè se volessi sapere mamma (componente) quanto spende a settembre (data inizio e data fine) in sigarette (categoria spese) pagando cash (modalità pagamento) questi parametri avranno molteplici combinazioni tra loro...almeno che tu non abbia qualche altra soluzione.
    Pongo un altro quesito: se non inserisco data inizio e data fine, ma inserisco * anzichè le date, alla fine del percorso (immetti valore parametro) compare una tabella in cui mi dic che "l'espressione è stata digitata in modo non corretto o è troppo complessa per essere valutata......."
    Da cosa dipende???
    p.s. intanto ti rigrazio infinitamente per tutte le risposte che dai alle mie domande, spesso scontate e banali, ma non per me...grazie di esistere a tutto il forum!!!
  • Re: Quesito di un neofita

    Hai ragione. Il problema risiede nel fatto che soltanto
    Like [testo con parentesi quadre]
    accetta la possibilità di inserire il valore *. Perchè ho provato a immettere nel campo Data un solo
    Like [Digita Data]
    e Access accetta *.
    Ho fatto molte prove per trovare una sintassi valida che combini il Between con il Like, non ci sto riuscendo.
    In attesa di una sintassi coerente e esaustiva, ti consiglio, quando non vuoi filtrare in base alle date, di inserire ad es. 1/1/2000 e 31/12/2050, sono valori sufficientemente al di fuori dei tuoi che ti consentono di non filtrare alcuna tua data.
  • Re: Quesito di un neofita

    Mi intrometto in questo 3d in quanto mi sembra che riguardi il mio problema.
    Ho creato una query che accetta un parametro con questa condizione:
    WHERE Utenti.Utente like [Nome]
    Quando la apro mi appare la finestra che mi chiede il nome, ma non mi trova nessun record, o meglio, vorrei che mi restituisse risultati anche se non immetto il nome precisamente come è menmorizzato. Il comando like dovrebbe servire proprio a questo, ma non mi funziona.
    Dove sbaglio?
  • Re: Quesito di un neofita

    Luigi3 ha scritto:


    Ho creato una query che accetta un parametro con questa condizione:
    WHERE Utenti.Utente like [Nome]
    Quando la apro mi appare la finestra che mi chiede il nome, ma non mi trova nessun record, o meglio, vorrei che mi restituisse risultati anche se non immetto il nome precisamente come è menmorizzato. Il comando like dovrebbe servire proprio a questo, ma non mi funziona.
    Hai più soluzioni a seconda se vuoi che la ricerca sia SEMPRE generica, oppure la rendi tu generica caso per caso. Il trucco sta nel aggiungere il carattere asterisco (*).
    Like "*" & [Digita il Nome] & "*"
    la query troverà tutte le parole contenenti il testo da te digitato
    Like [Digita il Nome] & "*"
    la query troverà tutte le parole che iniziano con il testo da te digitato
    Like [Digita il Nome]
    la query troverà il testo esattamente digitato, però se ci digiti dentro anche asterischi prima e dopo, la query restituirà gli stessi valori del mio primo suggerimento

    In tutti i casi, abbi cura di scrivere, all'interno delle parentesi quadre, un testo libero sì, ma che non sia esattamente il nome del campo, altrimenti non funziona.
  • Re: Quesito di un neofita

    Perfetto!! Ho scelto di implementare la soluzione con l' * solo alla fine.
  • Re: Quesito di un neofita

    Domanda:
    ho creato una maschera con due campi: casella combinata utente e data. Ho aggiunto un pulsante che una volta premuto vorrei che mi aprisse un report (report generato da una query) dove gli passo come parametri l'utente e la data.
    Ho provato ad aggiungere nell'evento click del pulsante:
    Apri report
    Nome filtro: nome query
    Condizione: [Assegnazione Query].[Utente]=[cmbUtente].[SelText]
    Ma cliccando sul pulsante mi appare a video la richiesta del parametro.

    Cosa manca? Inoltre vorrei che la condizione del where sia sempre il like "qualcosa"&*
  • Re: Quesito di un neofita

    Non ho mai usato il campo Nome filtro. Penso che, se la query che fa da filtro sia corretta, non è necessario riempire il campo WHERE.
    Però ti chiedo: la coppia Utente/Data da filtrare è sempre un solo record? Se sì, io non applicherei il filtro sulla coppia, ma sfrutterei il campo IDcontatore, il quale essendo univoco, restituirebbe un solo risultato, facilitando la sintassi dentro WHERE che sarebbe la seguente:
    [IDcontatore]=[Maschere]![NomeMaschera]![IDcontatore]
    in questo caso bisogna lasciare vuoto il campo Nome filtro. Ovviamente il campo IDcontatore deve apparire sia nella maschera, sia nel report.

    Luigi3 ha scritto:


    [Assegnazione Query].[Utente]=[cmbUtente].[SelText]
    In ogni caso, indipendentemente dal mio ragionamento, la sintassi a destra di = deve contenere la sintassi completa di un oggetto maschera, come ho scritto io sopra.
Devi accedere o registrarti per scrivere nel forum
24 risposte