Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Access 2003 - Problema con query di ricerca

    Ciao a tutti, ho un problema con una query creata in Access 2003, che non deve fare nient'altro che estrarre dei nominativi da una tabella.
    Vi spiego meglio, ho la tabella "Clienti" e tramite un form, devo estrarre solo quelli che iniziano in un intervallo compreso tra "NomeInizio" e "NomeFine", per esempio da "A" a "C".
    Per far questo, ho utilizzato l'istruzione WHERE con la condizione ">=" e "<=", ma il risultato è che mi perdo i dati di "NomeFine" (in questo caso perderei quelli che iniziano con la "C").
    Ho provato a cambiare la condizione, usando la clausola OR, ma il risultato non cambia, o probabilmente c'è qualcosa di sbagliato nelle parentesi (mi ci intreccio abbastanza!!).
    Questo è il codice nei due diffferenti modi, dov'è che ho sbagliato?

    SELECT *
    FROM Clienti
    WHERE (((Clienti.Denominazione > Forms![Etichette Clienti]!NomeInizio) Or (Clienti.Denominazione = Forms![Etichette Clienti]!NomeInizio)) And ((Clienti.Denominazione < Forms![Etichette Clienti]!NomeFine) Or (Clienti.Denominazione = Forms![Etichette Clienti]!NomeFine)));

    SELECT *
    FROM Clienti
    WHERE Clienti.Denominazione >= Forms![Etichette Clienti]!NomeInizio And Clienti.Denominazione <= Forms![Etichette Clienti]!NomeFine;

    Grazie mille anticipatamente a tutti

    Fabio
    Un desiderio si insegue. Una passione si vive!!

  2. #2
    prova a cercare nella guida in linea la sintassi di Between

    edit:
    la query si comporta in maniera corretta.
    supponiamo un elenco di nomi

    adamo
    anselmo
    bernardo
    caterina
    cinzia
    flavio

    con la tua query chiedi di estrapolare tutto ciò che è maggiore o uguale a A e minore o uguale a C. se noti caterina è maggiore di C, anzi qualsiasi cosa tu scriva che inizia con C è maggiore di C

  3. #3
    piccolo suggerimento (sempre se ho capito ciò che vuoi fare):
    Between "a" And "g" Or Like "g*"

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    select * from tabella where nome like "[a-c]*" order by nome

  5. #5
    Originariamente inviato da nicola75ss
    select * from tabella where nome like "[a-c]*" order by nome
    like "[a-c]*" ---> questa non la sapevo e sinceramente dalla linea in guida non l'avrei mai capito, con l'esempio che riporta ho sempre pensato che fosse necessario imporre il numero dei caratteri che dovevano seguire.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da borgodiavalon
    like "[a-c]*" ---> questa non la sapevo e sinceramente dalla linea in guida non l'avrei mai capito, con l'esempio che riporta ho sempre pensato che fosse necessario imporre il numero dei caratteri che dovevano seguire.
    Impariamo tutti qualcosa sul nostro forum.

  7. #7
    Originariamente inviato da nicola75ss
    Impariamo tutti qualcosa sul nostro forum.
    è il bello di far parte di una comunità attiva in cui siamo a conoscenza che esiste sempre qualcuno che ne sa più.
    ciao

  8. #8

    Grazie 1000

    Innanzitutto volevo ringraziarvi per la tempestività dell'aiuto e per dirvi che ho poi trovato come risolvere, grazie anche al suggerimento di borgodiavalon per la clausola "like".
    In effetti il momento in cui avevo provato ad usarla, mi ero bloccato sul fatto che io, tra le parentei quadre, avrei dovuto mettere due variabili del form e quindi mi si incasinava tutto.
    Ho però risolto ugualmente in questo modo, che metto come esempio per i prossimi a venire.
    (la query è nella forma originale e quindi con maggiori controlli rispetto a come da me scritto inizialmente)
    Ancora grazie a tutti

    Fabio

    SELECT Clienti.*
    FROM Clienti
    WHERE (
    (
    (
    Clienti.Codice_TiCli) Is Not Null
    And (Clienti.Codice_TiCli)=Forms![Etichette Clienti]!TiCliNOM
    )
    And
    (
    (
    (Clienti.Denominazione) Like Forms![Etichette Clienti]!NomeInizioNOM & "*"
    )
    Or
    (
    (Clienti.Denominazione) Like Forms![Etichette Clienti]!NomeFineNOM & "*"
    )
    )
    And (Clienti.Spedizione=-1)
    And (Clienti.Flag_PRN_NOM=0) //--> (sono entrambi Flag "Sì/No")
    )
    ORDER BY Clienti.Denominazione;
    Un desiderio si insegue. Una passione si vive!!

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Sei sicuro che ad esempio mettendo come estremi a e c vengano estratti anche i record che iniziano con la lettera b? A occhiometro direi di no e che verranno recuperati solo i record che hanno per inziale una delle due lettere specificate.

  10. #10
    sinceramente non vedo dove imposti la forbice che ti permette di estrapolare i dati (concordo con nicolas), inoltre(non prendertela) il suggerimento di nicolas è la procedura corretta nativa di access, quindi dovrebbe essere la migliore anche pensando alle prestazioni.

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.