Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

query access

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

query access

Postdi barbagianni62 » 31/01/13 22:07

ciao a tutti,
ho bisogno di un aiuto per Access - ho provato a leggere nelle discussioni, ma in effetti non so nemmeno io che voci cercare.
Ho costruito una maschera in access in cui inserire 5 tipologie - [nFattura] And [nAutomezzo] And [nAzienda] And [CodiceIntervento] And [data]. Lancio una query che mi ricerca i dati immessi in una tabella. Sin qua tutto bene. Mi restituisce in videata i dati ricercati dalla [TabellaFatture]. Nel momento però, che non inserisco almeno uno di questi dati perchè non intendo filtrarli in base a questa condizione, la query nn mi restituisce alcun valore. Come devo fare per impostare la query in modo di avere un range da 1 a 5 valori a seconda delle mie esigenze di ricerca in quel momento? - Per esempio, se dovessi dare valore zero oppure "" al [nFattura] e al [nAutomezzo], mi dovrebbe restituire i dati di [nAzienda] e [CodiceIntervento] e [data]. Mi potreste per cortesia rispondere possibilmente come fare in visualizzazione struttura perchè in SQL non ne capisco molto.
Ciao a tutti e 1000 grazie
barbagianni62
Utente Junior
 
Post: 22
Iscritto il: 10/09/12 11:12

Sponsor
 

Re: query access

Postdi Flash30005 » 31/01/13 23:31

Nei campi della maschera potresti mettere un * (asterisco) come valore di default
Per permettere alla query di selezionare tutti i record
Anche se penso che dovresti realizzare il tutto tramite codice Vba

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: query access

Postdi barbagianni62 » 01/02/13 00:09

grazie Flash della risposta immediata,
ma purtroppo nn funziona. Se manca anche uno solo dei dati la query nn mi restituisce niente..
notte !!!
barbagianni62
Utente Junior
 
Post: 22
Iscritto il: 10/09/12 11:12

Re: query access

Postdi Flash30005 » 01/02/13 00:11

Ma qual'è il codice della query che esegui?
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: query access

Postdi barbagianni62 » 01/02/13 19:21

ciao Flash,
questa è la query che mi chiedevi:

SELECT Fatture.[N° Fattura], Fatture.data, [Anagrafica Automezzi].[Numero Sociale], [Tipologia Lavorazione].codice, Aziende.[Nome Azienda], Fatture.Corrispettivo, Fatture.Note, Fatture.Immagine
FROM [Tipologia Lavorazione] INNER JOIN (Aziende INNER JOIN ([Anagrafica Automezzi] INNER JOIN Fatture ON [Anagrafica Automezzi].ID = Fatture.idAutomezzo) ON Aziende.ID = Fatture.idAzienda) ON [Tipologia Lavorazione].ID = Fatture.idCodLav
WHERE (((Fatture.data) Between [Maschere]![Ricerca]![Testo97] And [Maschere]![Ricerca]![Testo99]) AND ((Fatture.idAutomezzo)=[Maschere]![Ricerca]![CasellaCombinata92]) AND ((Fatture.idCodLav)=[Maschere]![Ricerca]![CasellaCombinata94]))
ORDER BY Fatture.data;

è costruita per estrarre i valori in base ad una data iniziale e finale (between testo 97 e testo 99), n° automezzo (Casella Combinata 92) e tipologia di lavoro (Casellacombinata94), quindi ordinata per data di fatturazione. Tieni conto per ovviare al problema che ho posto, ho dovuto costruire 5 di queste query, che comunque soddisfano solo un minimo di queste ricerche, anche perchè mi è stato chiesto di implementare il database con altre tabelle ed altri dati, quindi altre tipologie di ricerca.
ciao a tutti
barbagianni62
Utente Junior
 
Post: 22
Iscritto il: 10/09/12 11:12

Postdi archimede » 01/02/13 21:10

Così?
Codice: Seleziona tutto
SELECT F.[N° Fattura], F.data, AA.[Numero Sociale], TA.codice, A.[Nome Azienda], F.Corrispettivo, F.Note, F.Immagine
  FROM [Tipologia Lavorazione] AS TA, Aziende AS A, [Anagrafica Automezzi] AS AA, Fatture AS F
 WHERE AA.ID = F.idAutomezzo
   AND A.ID  = F.idAzienda
   AND TA.ID = F.idCodLav
   AND (F.data Between [Maschere]![Ricerca]![Testo97] And [Maschere]![Ricerca]![Testo99]
    OR  IsNull([Maschere]![Ricerca]![Testo97])
    OR  IsNull([Maschere]![Ricerca]![Testo99]))
   AND (F.idAutomezzo = [Maschere]![Ricerca]![CasellaCombinata92]
    OR  IsNull([Maschere]![Ricerca]![CasellaCombinata92]))
   AND (F.idCodLav = [Maschere]![Ricerca]![CasellaCombinata94]
    OR  IsNull([Maschere]![Ricerca]![CasellaCombinata94]))
 ORDER BY F.data;
HTH.

Alessandro

PS: complimenti per la scelta dei nomi dei controlli della form e dei campi.
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: query access

Postdi barbagianni62 » 01/02/13 23:18

ciao Alessandro,
grazie ma purtroppo niente da fare . Ho spudoratamente copiato e incollato la tua query ma nn funziona. O meglio......mi restitusce tutti i dati della tabella fatture senza filtrarli. L'unica cosa buona è che, come avevo detto, visto che non sono capace con SQL e in parte anche con Access, ho capito "visivamente" guardando la grafica della query in visualizzazione struttura, il ragionamento che hai impostato per cercare di ottenere i dati esatti.
Ti ringrazio tanto comunque
barbagianni62
Utente Junior
 
Post: 22
Iscritto il: 10/09/12 11:12

Postdi archimede » 02/02/13 08:36

barbagianni62 ha scritto:mi restitusce tutti i dati della tabella fatture senza filtrarli.
Ma hai provato la query con la form Ricerca aperta e i dati compilati?

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: query access

Postdi barbagianni62 » 02/02/13 15:44

Ho provato. Io lancio la query proprio dal form Ricerca attraverso un Button dedicato, Il problema è che mi restituisce i dati per intero della tabella fatture, come se non li filtrassi. Ad esempio mi restituisce fatture con la data fuori dal range che io seleziono - ad esempio, mi restituisce una fattura del 07 gennaio 2013 pur avendo selezionato il periodo di ricerca dal 15 al 28 gennaio. Finora ho adottato come soluzione, la costruzione di una query per ogni insieme di dati ricercati (esempio data-fattura-Tipo lavoro oppure ditta-automezzo) e come ti ho detto funziona. Ma siccome ho intenzione di aggiungere altre tabelle e di conseguenza la ricerca di altri dati asociati a quelli già esistenti, la costruzione delle query diventa quasi impossibile. Pensavo di adottare un pò la soluzione che mi diceva Flash. Ad esempio volevo costruire una query per ogni dato ricercato (range data, fattura, tipo lavorazione ecc...) e poi costruire una macro che mi lanciasse insieme queste query escludendo quelle con il campo zero (o meglio per correttezza isNull). Cosa ne pensate? Credo che non sia la soluzione più ortodossa... ma è sempre una soluzione.
Ciao a tutti
barbagianni62
Utente Junior
 
Post: 22
Iscritto il: 10/09/12 11:12

Re: query access

Postdi barbagianni62 » 02/02/13 16:52

No scusate!! Stupidata, non funziona
barbagianni62
Utente Junior
 
Post: 22
Iscritto il: 10/09/12 11:12

Re: query access

Postdi Flash30005 » 03/02/13 07:54

Le query non le uso quasi mai proprio perché diventano complesse se i dati sono articolati
quindi eseguo un codice Vba sviluppato appositamente per lo scopo.
Se vuoi potrei dedicarmi ma mi occorre il file db.

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Postdi archimede » 03/02/13 09:45

Il problema potrebbe essere causato da un mio errore di sintassi (che non vedo, ma non posso escludere con certezza), da un errore nel nome di uno o più controlli della form (questo solo tu puoi saperlo) o dal formato in cui immetti i criteri di selezione (specialmente le date).

Per diagnosticarlo, potresti iniziare con una query semplice (ad esempio con solo il controllo su idAutomezzo) e, se funziona, aggiungere un controllo alla volta finché non si rompe.

Quanto all'opportunità di scrivere una query così piuttosto che costruirla tramite codice in VBA, non saprei. Mi pare che si tratti di scegliere in quale posto vuoi complicarti la vita, per cui alla fine è più che altro una questione di gusti.

Certo se i criteri sono una trentina o più (e se hai TANTI dati nelle tabelle coinvolte) una query unica potrebbe essere inefficiente. D'altra parte, se dovessi davvero soddisfare esigenze di ricerca così complesse, valuterei se non fosse il caso di fare più form di ricerca specializzate.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: query access

Postdi barbagianni62 » 03/02/13 14:08

Grazie ad entrambi ed anche a un mio amico abbiamo risolto prendendo spunto dai vostri suggerimenti. Mentre archimede creava dei campi in SQL, io (non conoscendo bene SQL) ho aggiunto due textBox (invisibili sulla maschera) che riportano i dati delle caselle di testo col valore data. Mentre per il campo di ricerca “automezzo” ho riportato il valore “ * “ di default- come diceva Flash- ma usando l’operatore Like. Il button di ricerca non mi avvia direttamente la query, ma un codice Vba che assegna di default alle due caselle di testo aggiunte il valore 01/01/1900 e 31/12/2100 se le caselle della maschera di ricerca sono “null”, mentre se imposto la data iniziale e finale assegna il valore della data. Poi il codice avvia la query…. Certo non penso che sia la soluzione migliore, ma se funziona….spero anche per le variabili che aggiungerò in seguito
Vi ringrazio tantissimo per il tempo e la disponibilità
p.s. penso che il problema principale sia l’operatore “between” per la ricerca del range di data
barbagianni62
Utente Junior
 
Post: 22
Iscritto il: 10/09/12 11:12


Torna a Applicazioni Office Windows


Topic correlati a "query access":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti