Newsgroup: it.comp.appl.access
Titolo: Query di ricerca "pulita"

Ciao di nuovo,
ho creato una baschera basata su una query parametrica che per ogni valore
inserito in maschera va ad individuare i record corrispondenti nella query.
Lei funziona, di seguito vi riporto il relativo codice, ora pero'
promettetemi di non mettervi a strillare per le oscenita' scritte ;-) ...
voglio appunto trovare il modo di migliorarla !
Private Sub cmdCerca_Click()
On Error GoTo Err_cmdCerca_Click
    Dim stDocName As String
    Dim stLinkCriteria As String
Me.txtditta = "*" & Me.txtditta & "*"
Me.txtnome = "*" & Me.txtnome & "*"
Me.txtcognome = "*" & Me.txtcognome & "*"
Me.txtcitta = "*" & Me.txtcitta & "*"
Me.txtcap = "*" & Me.txtcap & "*"
    stDocName = "frmRisRicerca"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
Me.txtditta = ""
Me.txtnome = ""
Me.txtcognome = ""
Me.txtcitta = ""
Me.txtcap = ""
Exit_cmdCerca_Click:
    Exit Sub
Err_cmdCerca_Click:
    MsgBox Err.Description
    Resume Exit_cmdCerca_Click
End Sub
Come vedete, prendo i valori eventualmente immessi, gli aggiungo un *
davanti e dietro e faccio fare la ricerca sulla query con questi parametri.
I problemi che riscontro sono:
    1) il codice cosi' fa pieta'
    2) non mi tiene memorizzati i valori sui campi una volta lanciata la
query
    3) Ottengo una maschera continua come ricerca e vorrei avere la
possibilita' di esportare
        o in un file di testo o nella clipboard, i risultati della query.
Quindi dovrei inerire un
        pulsantino che prenda i risultati o che prenda i parametri passati e
mi rigeneri la stessa
        cosa su un file. Il problema e' che la maschera di ricerca a questo
punto e' vuota e cmq         non mi pare belle andare a riprendere li i
dati. Un alternativa sarebbe selezionare tutti i             record
visualizzati e lavorare su quelli... ma non ho idea di come...
Se mi sono spiegato, sapete darmi l'ennesimo aiuto !?
Grazie
Fabio

 ha scritto nel messaggio
news:hdnx6.114512$lj4.3...@news6.giganews.com...

Diamo per scontato che esista una tabella (Tabella1) che tra i vari campi
contiene anche quelli di tipo testo chiamati Ditta, Nome, Cognome, Citta e
Cap.
Diamo per scontato che esista una query (Query1) basata su Tabella1 e che ne
contenga tutti i suoi campi.
Diamo per scontato che tu abbia creato una maschera (Maschera1) che abbia
come origine record Query1.
Creati una maschera (Maschera2) con visualizzazione a Mascera singola e che
non abbia origine record. In Maschera2 inserisci 5 caselle di testo non
associate che chiamerai rispettivamente txtDitta, txtNome, txtCognome,
txtCitta e txtCap.
In Maschera2 inserisci anche un pulsante di comando chiamato cmdCerca e a
Fronte del suo evento "Su clic" genera il seguente codice VBA:
DoCmd.OpenForm "Maschera1"
Nella riga "Criteri:" del campo Ditta di Query1 scrivi:
Like Nz("*" & [Forms]![Maschera2]![txtDitta] & "*"; "*")
e nella riga "Criteri:" del campo Nome di Query1 scrivi:
Like Nz("*" & [Forms]![Maschera2]![txtNome] & "*"; "*")
e cosi via anche per le altre tre righe criteri.
Apri Maschera2, digita nelle caselle di riepilogo solo i parametri necessari
alla ricerca (usando anche stringhe parziali); pigia il pulsante di comando:
ti si aprirà Maschera1 che ti visualizzerà i soli record che soddisfano in
AND i criteri di  ricerca impostati su Maschera2.
Sino a quando non chiuderai Maschera2, in query1 avrai il risultato della
ricerca; puoi farci ciò che ti pare.
Puoi inoltre crearti una query di creazione tabella (Query2) con una griglia
del tutto identica a Query1. In Maschera2 inserisci un secondo pulsante di
comando con il quale apri Query2 dopo aver impostato i parametri di ricerca;
così facendo, l'esito della ricerca ti verrà registrato nei record di una
tabella.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------