Newsgroup: it.comp.appl.access
Titolo: Adattamento maschera di ricerca da sitocomune

Un saluto a tutto il NG,
Ho prelevato dal sitocomune, nella sezione forms, il file "ricerche.zip"
(Titolo: "[NEW]: Maschera di ricerca record").
Ho provato ad adattarla al mio database e ci sono riuscito. Tuttavia avrei
bisogno di qualche modifica da apportare al codice sul quale non sono
particolarmente ferrato.
In pratica, avrei bisogno di poter effettuare la ricerca su più campi
contemporaneamente e che mi venisse anche mostrato il numero di risultati
trovati che di volta in volta verrebbero esposti dalla maschera di ricerca.
Come vi ho già anticipato, non sono molto pratico del codice VBA di Access e
quindi queste modifiche non sono riuscito ad apportarle da solo: come potrei
fare ad ottenere quello che effettivamente mi serve?
Grazie a tutti anticipatamente.
--------------------------------
Inviato via 
http://usenet.libero.it

"Fabio" <demo...@NNMSPMMTlibero.it> ha scritto nel messaggio
news:80Z117Z205Z9Y1...@usenet.libero.it...

Facciamo riferimento al database di esempio che hai scaricato dal Sito
Comune.
Ipotizziamo che la ricerca debba essere effettuata in AND su tutti e quattro
i controlli della maschera Ricerche (ID, Ditta, Loca e Prov) e vada fatta
solamente su quelli per i quali selezioni o digiti un valore diverso da
Null.
Creati una query chiamata Query1 che abbia il seguente codice SQL:
SELECT Anagrafica.ID, Anagrafica.Ditta, Anagrafica.Indirizzo,
Anagrafica.Loca, Anagrafica.Prov
FROM Anagrafica
WHERE (((Anagrafica.ID) Like Nz([Forms]![Ricerche]![ID],"*")) AND
((Anagrafica.Ditta) Like "*" & [Forms]![Ricerche]![Ditta] & "*") AND
((Anagrafica.Loca) Like "*" & [Forms]![Ricerche]![Loca] & "*") AND
((Anagrafica.Prov) Like Nz([Forms]![Ricerche]![Prov],"*")));
Naturalmente scriverai qualcosa nei criteri dei soli campi in base ai quali
vuoi effettuare la selezione.
Nella maschera Ricerche elimina le 4 rputine VBA che sono state generate a
fronte degli eventi "Dopo aggiornamento" dei controlli di cui sopra.
A fronte dell'evento "Su clic" del pulsante di comando Cerca sostituisci il
codice VBA che c'è ora con questo:
Private Sub Cerca_Click()
Dim strmsg As String
Me.List.RowSource = "Query1"
Me!List.Requery
If Me.List.ListCount = 0 Then
strmsg = MsgBox("Nessun record trovato !", vbExclamation, "Attenzione...")
End If
End Sub
Il resto resta invariato; naturalmente le altre 4 queries non hanno più
ragione di esistere.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Caro Roberto,
seguendo le te indicazioni sono riuscito ad adattare quasi interamente
la maschera di ricerca presente sul sitocomune alle esigenze del mio
database. Purtropo mi sono rimasti ancora un paio di punti oscuri che da
solo non sono riuscito a risolvere e per i quali ti chiedo ancora un
piccolo aiuto:
- Innanzitutto avrei bisogno di inserire al di sotto della maschera di
ricerca una casella di testo che mi mostri il numero totale dei
risultati ottenuti. Ho provato con la formula "=Conteggio[List]" (senza
virgolette) e atre simili, ma ottengo sempre il valore #Errore prima e
dopo l'inzio di una qualsiasi ricerca
- Ho anche notato che la maschera di ricerca così impostata presenta
delle difficoltà con i risultati che prevedono dei campi con contenuto
Null. In particolare, se faccio una ricerca in una tabella di 3 campi
(cognome, nome e città) per il solo campo cognome e dalla quale mi
aspetto 10 risultati, in realtà se ne potrebbero presentare molti di
meno perchè, ad esempio, per alcuni di questi il valore del campo città
è Null (ad esempio, perchè non ho ancora disponibile quel dato al
momento dell'inserimento). Come faccio a far conteggiare anche questi
record?
- Un ultimo dettaglio sulla lista in cui vengono espressi i risultati: i
campi menzionati sono solo 5: in realtà a me ne servono molti di più e
quindi, avrei bisogno di inserire in qualche modo una barra di
scorrimento orizzontale. Come posso fare?
Grazie ancora di tutto per il tuo aiuto.
Ciao e risentirci presto.
P.S. Una curiosità: perchè nella Query1 che mi hai fatto modificare, i
criteri di alcuni campi sfruttano la funzione NZ e altri no? Che
significato ha questo modo di fare?
Ciao.
Fabio M.

 Fabio M.


Ancora un grazie Roberto.... sto usando gli accorgimenti che mi hai
suggeruto e per ora non sto incontrando particolari problemi. Se ne
dovessi incontrare te lo farò sapere, eventualemente aprendo un nuovo
post.
Ciao.

Come ti avevo anitcpato sto facendo le modifiche che mi hai suggerito tu.
Ho deciso di scartare l'idea della sottomaschera e ho selezionato solo i
campi che realmente possono interessarmi nella ricerca mettendoli nella
casella LIST.
Seguendo poi, la formula che mi hai consigliato e cioč quella relativa alla
creazione del campo calcolato nella query, ho verificato che per alcun campi
funziona perfettamente, mentre per altri non c'č stato verso!!! In
particolare, per quelli per cui non funziona, mi tira fuori come risultato
tutti i record e non solo quelli ho cercato effettivamente!!! Eppure ho
controllato sia dalla struttura della query che dal linguaggio SQL che i
dati sono stati inseriti in maniera identica (tranne per i nomi dei campi,
ovviamente). Ma allora cosa potrebbe essere a creare questo problema??
Escludo a priori un errata nomenclatura dei campi in quanto č stata la prima
cosa che sono andato a controllare! Non ci sto capendo piů nulla.. questa
cosa mista snervando: č come se non prendesse in considerazione i criteri
che gli ho dato!!
Fammi sapere qualcosa tu appena puoi... Grazie di tutto e ciao.


Mi correggo....
era proprio un errore di nomenclatura riferito in particolare, ai nomi
presenti sulla maschera di ricerca che erano diversi da quelli presenti
sulla query... problema risolto ;-)
Grazie lo stesso.
Ciao.
