Newsgroup: it.comp.appl.access
Titolo: Contatore di presenza parole

Ciao a tutti!!,
Ho una tabella con vari campi, ed una maschera assegnata a questa tabella
che applica un filtro a questa tabella aggiornando i risultati in un query.
Adesso i vorrei creare sempre sulla stessa maschera un bottone (bottone) che
alla sua pressione verifichi una parola che io scrivo in una casella di
testo (parola) da me creata sulla maschera stessa, e che conti quante volte
trova la parola data nella query precedente.
E che aggiorni il suo risultato in una casella di testo (ris).
Grazie grazie grazie!!!!

 ha scritto nel messaggio
news:eZXJb.39194$VW.18...@news3.tin.it...

Prova a leggere ed utilizzate
DCount("NomeTAbella","nomeCampoInTabella","[NomeCampo]=" & chr(34) &
Me.TuaTextBox & chr(34)
Ciao.
@Alex.

 Scusa ma questa righa dove devo collocarla???
Poi non posso selezionare un campo preciso della tabella ma voglio che
svolga la ricerca in tutti i campi.... di una query non di una tabella...!!
Grazie Mille

 ha scritto nel messaggio
news:G0aKb.50725$_P.21...@news4.tin.it...

Se vuoi come dici avere l'INFO dopo aver premuto il BOTTONE
allora devi inserirlo nell'EVENTO CLick del CommandButton.
PEr la 2° questione non è possibile che ti serva cercare su tutti i
campi, dovresti ottimizzare, ma è in ogni caso fattibile anche
se rallenterà un pò l'esecuzione.
Il fatto che sia QRY o Tabella cambia poco, visto che la QRY
in realtà è solo un modo di rappresentare una Tabella.....!
Devi seguire queste istruzioni correttamente.
Ogni controllo associato ad un campo della QRY(le TextBox, le Combo ecc...)
hanno una proprietà TAG se guardi nella Mascherina delle proprietà.
Li ci devi scrivere il NOME del CAMPO al quale sono associate.
Poi dopo aver creato il CommandButton nell'Evento Click inserisci questo
codice:
Dim fld as DAO.Field
Dim rs as DAO.Recordset
Dim ctl as Access.Control
set rs=Me.recordsetClone
If rs.eof and rs.bof  then exit sub
rs.movefirst
        Do Until rs.eof
        'Per ogni Record nella QRY cicla tutti i Campi
            for each fld in rs.fields
            'Per ogni campo del Record cicla tutti i Controlli nella Form
            ' per cercare un DOPPIO
                For each ctl in me.controls
                    if len(ctl.TAG)>0 then
                        if fld.value=ctl then Msgbox "DOPPIO = " & ctl
                    End if
                Next
            Next
            rs.Movenext
        Loop
    rs.Close
    Set rs=Nothing
E' solo un esempio che dovrebbe funzionare, ma ovviamente andrebbe
ottimizzato
nella gestione della Messaggistica.....!
@Alex.

 Sei un genio...!!!


Beh si, ma non dirlo in giro potrebbero crederti...!
Ciao.
@Alex.

 Perň io povero ignorante non riesco a capire cosa devo fare nei controlli
di query.... dove devo inserire... devo inserire il nome dalla casella di
testo dove scrivo la parola..??

 testo dove scrivo la parola..??
Questo purtroppo deriva dalla inesperienza nell'uso di Access.
Auando vuoi formattare una Casella di Testo la Selezioni, poi con il destro
del
Mouse ti si apre un Menù a Tendina, l'ultima Opzione è Proprietà:
qui si apre una Maschera a pagine, una pagina si chiama "ALTRO"....!
Ora in questa pagina ci sono un'elenco di proprietà della TextBox in
questione
tra queste c'è TAG, che è l'ultima.
Proprio li dentro devi metterci la stessa stringa che trovi nella Pagina
DATI
Origine Controllo, ti basta fare un Copia/Incolla.
A questo punto ci sei...???
@Alex.

Io l'unica casella di testo che ho nella maschera oltre le due che servono
per il filtro precedente e la casella di testo dove io inserisco la parola
da cercare...quindi nello spazio dati-origine di controllo non ce nulla
perche il valore di quella casella di testo lo decido io di volta in
volta...
Poi c'e il bottone che ho creato ma che alla pressione con il codice che mi
hai dato prima da errore di compilazione, tipo definito dall'utente non
definito... segnalato alla riga 2 "fld As DAO.Field"... cos a significa...
Io pensavo di fare un semplice contatore che non riconosca i doppi... ma
solo la presenza della parola data da me.... che controlli cio su tutti i
campi della query che sono 17 X tot record...
Solo che no riesco a sviluppare qualcosa che funzioni, tieni conto che la
query naturalmente a gia in un campo un criterio di filtraggio... pensavo ad
un ciclo if con un contatore che si incremente ad ogn parola trovata....!!!
Cos ane dici tu... hai un idea...???
Grazie Mille sei di grande aiuto..!!

 ha scritto nel messaggio
news:7FeKb.53549$_P.21...@news4.tin.it...

Per l'errore devi inserire le Librerie DAO tra i riferimenti, poichè
presumo tu stia usando una versione di Access>97, quindi devi andare
nella modalità Codice, menù Strumenti---Riferimenti, ora Deseleziona
Microsoft Activex Data Object 2.xx e vai a cercare Microsoft DAO 3.xx
xx dipende dalla versione di Service PAck che hai installato....!
Per il problema precedente invece la cosa è ben più seria e non riesco
a spiegarti tutto poichè hai strutturato una Form in modo no adeguato.
Quello che non mi è chiaro è se il controllo lo devi fare su una Nuova
Immisione o solo
come ricerca....!
La cosa cambia molto, nel 1° caso devi partire da un punto zero così:
Creati una Maschera basata sulla Tabella in questione, con tutti i Controlli
TextBox
associati ai Campi.
Ora nelle tua Form hai tutto ciò che serve per seguire le istruzioni dei
post precedenti.
Nel 2° caso, quello cioè in cui devi solo effettuare una Ricerca allora va
bene la
maschera che hai, ma va modificato un pò il codice che ti ho postato....!
Quale dei 2 ti serve...?
@Alex.

 Il mio caso è il secondo io devo effettuare solo una ricerca delle parole
perche mi serve soltanto il numero di parole uguali a quella che immetto io
nella casella di testo...che si trovano nella query.
Questo numero deve essere scritto in un altra casella di testo.. esempio la
parola la immetto in una casella di testo dal nome "PAROLA" schiaccio il
bottone "BOTTONE" e il risultato me lo scrive nella casella di testo "
RIS"...
cosa ne dici...??
Grazie