Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Access 2010 - Maschera - Casella "CERCA" in riquadro pulsanti di spostamento

404 views
Skip to first unread message

ancu...@gmail.com

unread,
Aug 30, 2012, 5:32:20 AM8/30/12
to

Sto cercando di creare una casella che funzioni nello stesso analogo modo di quella indicata in oggetto e che possa quindi filtrare i dati visualizzati immediatamente quanto si digita cercando il testo in ogni campo.

Ho già realizzato qualcosa di simile utilizzando ME.FILTER:

""""" Me.Filter = "[LastName] Like '*" & [ControlName] & "*'"
Me.FilterOn = True """""

Ma realizzarlo con analoga procedura su una maschera che contiene centinaia di campi è un vero problema.

E' possibile variare il codice suddetto e sostituire a [LastName] un qualcosa che indica "Qualunque Campo"?

Oppure: altre idee?

Grazie!!!

Tony dalla Sardegna!

@Alex

unread,
Aug 30, 2012, 10:56:18 AM8/30/12
to
Io ho fatto così:

Private Sub txtFastSearch_AfterUpdate()
Call FastSearchAll(Me.txtFastSearch.Text)
End Sub

Private Sub FastSearchAll(strText As String)
Dim ctl As Access.Control
Dim strCRITERIA As String
Dim idx As Integer

idx = 0

For Each ctl In frmMain.Controls
If HasProperty(ctl, "ControlSource") And ctl.ControlType <>
acImage Then
If Len(ctl.ControlSource) > 0 Then 'And Not
ctl.ControlSource Like "=*"

strCRITERIA = AddToWhere(strCRITERIA, strText,
ctl.ControlSource, idx)

End If
End If
DoEvents
Next

If Len(strCRITERIA) > 0 Then
frmMain.FilterOn = False
frmMain.Filter = strCRITERIA
frmMain.FilterOn = True
End If
End Sub

Private Function HasProperty(obj As Object, strPropName As String) As
Boolean
'Purpose: Return true if the object has the property.
Dim varDummy As Variant
On Error Resume Next
varDummy = obj.Properties(strPropName)
HasProperty = (Err.Number = 0)
End Function


Ciao
@Alex

ancu...@gmail.com

unread,
Aug 30, 2012, 10:58:58 AM8/30/12
to
Grazie! Domattina provarlo sarà la prima cosa che farò appena arrivo in ufficio...

Tony dalla Sardegna!

ancu...@gmail.com

unread,
Aug 31, 2012, 4:46:25 AM8/31/12
to
ok... a grandi linee o capito il codice...

unico problema mi da:
Errore di compilazione
Sub o Function non definita

Sull'editor VBA illumina in giallo

Private Sub FastSearchAll(strText As String)

e poi si ferma sulla parola AddToWhere della seguente riga

strCRITERIA = AddToWhere(strCRITERIA, strText,
ctl.ControlSource, idx)

Che può essere?

PS AddToWhere non lo riconosce come comando (non lo vedo colorato di blu), che è???

Il giorno giovedì 30 agosto 2012 16:56:18 UTC+2, @Alex ha scritto:

Bruno Campanini

unread,
Aug 31, 2012, 9:50:04 AM8/31/12
to
ancu...@gmail.com wrote on 30-08-12 :
> Sto cercando di creare una casella che funzioni nello stesso analogo modo di
> quella indicata in oggetto e che possa quindi filtrare i dati visualizzati
> immediatamente quanto si digita cercando il testo in ogni campo.
>
> Ho giᅵ realizzato qualcosa di simile utilizzando ME.FILTER:
>
> """"" Me.Filter = "[LastName] Like '*" & [ControlName] & "*'"
> Me.FilterOn = True """""
>
> Ma realizzarlo con analoga procedura su una maschera che contiene centinaia
> di campi ᅵ un vero problema.
>
> E' possibile variare il codice suddetto e sostituire a [LastName] un qualcosa
> che indica "Qualunque Campo"?
>
> Oppure: altre idee?
>
> Grazie!!!
>
> Tony dalla Sardegna!

Si potrebbe mettere in DblClick di tutti e cento i controlli:
FilterText ActiveControl

e in un modulo:
Public Sub FilterText(ControlName As String)
CodeContextObject.FilterOn = True
DoCmd.ApplyFilter , "[LastName] Like '*" & ControlName & "*'"
End Sub

Occorrerᅵ poi anche un pulsante su Form per eliminare il filtro:
Filter = ""

Bruno


@Alex

unread,
Aug 31, 2012, 11:21:59 AM8/31/12
to
Avevo dimenticato un pezzetto...

Private Function AddToWhere(PrevCriteria As String, FieldValue As
Variant, FieldName As String, ArgCount As Integer) As String
' Create criteria for WHERE clause.
If Len(FieldValue & vbNullString) > 0 Then
If ArgCount > 0 And Len(PrevCriteria) > 0 Then AddToWhere = "
OR "

' Append criterion to existing criteria.
' Enclose FieldValue and asterisk in quotation marks.
AddToWhere = PrevCriteria & AddToWhere & "[" & FieldName & "]
Like '*" & Replace(FieldValue, "'", "''") & "*'"

' Increase argument count.
ArgCount = ArgCount + 1
End If
End Function

Ciao
@Alex

Bruno Campanini

unread,
Aug 31, 2012, 7:31:11 PM8/31/12
to
on 31-08-12, @Alex supposed :
Ed inoltre:
frmMain non è definita (immagino sia la scheda attiva)
quindi Set frmMain = Forms("Ditte")

quest'altra l'ho rimediata così:
Private Sub txtFastSearch_AfterUpdate()
FastSearchAll CodeContextObject![txtFastSearch]
End Sub
Ma non so se sia corretto.

Dopo di che si compila senza errori.
Ma come funziona?
Per un rospo del genere dovrai anche pubblicare un manuale...

Bruno


@Alex

unread,
Sep 1, 2012, 1:53:17 PM9/1/12
to
Si ho copiaincollato il codice che ho scritto in un Demo che ho
fatto... di conseguenza quella frmmain è la Form di riferimento...
sostiuibile come meglio si crede...!

In sostanza cicla i controlli nella Form, costruisce il Criterio per
AGGREGAZIONE dei soli controlli con ControlSource...
Campo1 Like *testo* OR Campo2 Like *Testo* OR CampoN LIke *Testo*....

Applica il filtro... nulla di chè....

Quì trovi il demo che lo contiene, che altro non è che la Replica
della Barra di Navigazione... ;-)

http://forum.masterdrive.it/access-79/form-subform-navigazione-managment-69075/

P.S. dai un'occhiata a questo demo, forse ti piace di più:
http://forum.masterdrive.it/access-79/events-tracer-69222/

@Alex

Bruno Campanini

unread,
Sep 2, 2012, 5:10:48 AM9/2/12
to
@Alex explained on 01-09-12 :

> Si ho copiaincollato il codice che ho scritto in un Demo che ho
> fatto... di conseguenza quella frmmain ᅵ la Form di riferimento...
> sostiuibile come meglio si crede...!
>
> In sostanza cicla i controlli nella Form, costruisce il Criterio per
> AGGREGAZIONE dei soli controlli con ControlSource...
> Campo1 Like *testo* OR Campo2 Like *Testo* OR CampoN LIke *Testo*....
>
> Applica il filtro... nulla di chᅵ....
>
> Quᅵ trovi il demo che lo contiene, che altro non ᅵ che la Replica
> P.S. dai un'occhiata a questo demo, forse ti piace di piᅵ:
> http://forum.masterdrive.it/access-79/events-tracer-69222/

Se ho ben capito, data una form con n record di m campi, si vuole con
un solo comando eseguire la ricerca di un testo su tutti gli m campi
degli n record.

Ma non sono sicuro di aver bene inteso, poichᅵ mentre ᅵ evidente
l'utilitᅵ di ricercare per esempio un nome di persona nel campo Nome di
ogni record, non vedo l'utilitᅵ di cercare un nome di persona in tutti
i campi di tutti i record (quindi anche eventualmente nel campi Cittᅵ,
Indirizzo, etc.)

Bruno


ancu...@gmail.com

unread,
Sep 3, 2012, 11:45:19 AM9/3/12
to
Il giorno domenica 2 settembre 2012 11:10:49 UTC+2, Bruno Campanini ha scritto:


> Se ho ben capito, data una form con n record di m campi, si vuole
> con un solo comando eseguire la ricerca di un testo su tutti gli
> m campi degli n record.
> Ma non sono sicuro di aver bene inteso, poiché mentre è evidente
> l'utilità di ricercare per esempio un nome di persona nel campo
> Nome di ogni record, non vedo l'utilità di cercare un nome di
> persona in tutti i campi di tutti i record (quindi anche
> eventualmente nel campi Città, Indirizzo, etc.)
>
> Bruno
L'utilizzatore del database è la segreteria di un'Associazione no-profit che eroga gratuitamente corsi di italiano a stranieri anche extra-europei con differenti livelli di alfabetizzazione che vanno da analfabeta a laureato e dal gestire migliaia di "schede anagrafiche" di persone di etnie varie compilate da originari cartacei manoscritti.

Capita, purtroppo, che l'utente nel compilare con caratteri latini la scheda di iscrizione scriva fischi per fiaschi e da lì, in un secondo tempo, l'impossibilità di risalire alla loro scheda.

Al momento della consultazione, qualora il nominativo dovesse essere stato male trascritto, si potrà risalire alla scheda della persona da uno qualunque dei suoi dati (nome, cognome, luogo di nascita o addirittura email).

Adoperando già da anni il suddetto database che gira su una copia run-time di Access 2010, i segretari usano già il piccolo box che compare di default nella barra di navigazione di ogni Maschera di cui chiedevano, qualora possibile, una versione più grande.

Per questa mia richiesta, a mio parere legittima, su alcun forum in lingua inglese, mi è stato detto che ho mal progettato il database e che la richiesta da parte degli utilizzatori è sbagliata.

Dal mio punto di vista, invece, l'utente elenca le sue necessità / problematiche e il programmatore le risolve...

@Alex

unread,
Sep 3, 2012, 12:20:37 PM9/3/12
to
On 2 Set, 11:10, Bruno Campanini <bruno...@libero.it> wrote:
> @Alex explained on 01-09-12 :
>
>
>
>
>
>
>
>
>
> > Si ho copiaincollato il codice che ho scritto in un Demo che ho
> > fatto... di conseguenza quella frmmain è la Form di riferimento...
> > sostiuibile come meglio si crede...!
>
> > In sostanza cicla i controlli nella Form, costruisce il Criterio per
> > AGGREGAZIONE dei soli controlli con ControlSource...
> > Campo1 Like *testo* OR Campo2 Like *Testo* OR CampoN LIke *Testo*....
>
> > Applica il filtro... nulla di chè....
>
> > Quì trovi il demo che lo contiene, che altro non è che la Replica
> > della Barra di Navigazione... ;-)
>
> >http://forum.masterdrive.it/access-79/form-subform-navigazione-managm...
>
> > P.S. dai un'occhiata a questo demo, forse ti piace di più:
> >http://forum.masterdrive.it/access-79/events-tracer-69222/
>
> Se ho ben capito, data una form con n record di m campi, si vuole con
> un solo comando eseguire la ricerca di un testo su tutti gli m campi
> degli n record.
>
> Ma non sono sicuro di aver bene inteso, poiché mentre è evidente
> l'utilità di ricercare per esempio un nome di persona nel campo Nome di
> ogni record, non vedo l'utilità di cercare un nome di persona in tutti
> i campi di tutti i record (quindi anche eventualmente nel campi Città,
> Indirizzo, etc.)
>
> Bruno

Concordo con l'osservazione... ma è quello che fa la Barra di
Navigazione NATIVA...!!
Consente di CERCARE qualsiasi cosa in qualsiasi campo... ma se la vedi
dal punto di vista GENERICO, non è altro che un sistema
di Cercare quello che serve consentendo all'utente un'interfaccia
MINIMALISTICA...!

E' infatti ovvio che non abbia senso TECNICO cercare un C.F. in un
campo Indirizzo... ma l'interfaccia si complicherebbe...

Così invece se il DB è ben strutturato, la ricerca del C.F., che viene
fatta in TUTTI i campi, in realtà avrà effetto solo nel campo C.F.

@Alex

Bruno Campanini

unread,
Sep 3, 2012, 12:59:53 PM9/3/12
to
@Alex formulated on Monday :

> Concordo con l'osservazione... ma ᅵ quello che fa la Barra di
> Navigazione NATIVA...!!
> Consente di CERCARE qualsiasi cosa in qualsiasi campo... ma se la vedi
> dal punto di vista GENERICO, non ᅵ altro che un sistema
> di Cercare quello che serve consentendo all'utente un'interfaccia
> MINIMALISTICA...!
>
> E' infatti ovvio che non abbia senso TECNICO cercare un C.F. in un
> campo Indirizzo... ma l'interfaccia si complicherebbe...
>
> Cosᅵ invece se il DB ᅵ ben strutturato, la ricerca del C.F., che viene
> fatta in TUTTI i campi, in realtᅵ avrᅵ effetto solo nel campo C.F.

Mi si rivoltan le budella a pensare di dover fare una cosa del genere!

Io ho risolto casi di ricerca simili in altra maniera, cercando ogni
valore (testo, numero, data, booleano che sia) nel campo in cui si deve
trovare collocato.
Con codice VBA, in maniera operativamente molto semplice.

Ma pensa ai nomi... io ho due amici che si chiamano l'uno Francesco
(nome) Romano (cognome), l'altro Romano (nome) Francesco (cognome).
Li voglio mandare da te per farsi fare un database coi fiocchi!

E se dovessi cercare una fattura della quale ricordo l'importo di EUR
47100 e il tuo database mi trovasse il mio CAP?

Orrore!

Bruno


ancu...@gmail.com

unread,
Sep 4, 2012, 2:55:26 AM9/4/12
to
Normalmente anche per me non avrebbe senso...
Non è in discussione questo, ma come realizzarlo...
Continuare a scrivere che non ha senso, non ha senso... ;)

La domanda è:
"Come emulare il piccolo riquadro SEARCH all'interno della maschera"...

Peace and love

Tony dalla Sardegna

Bruno Campanini

unread,
Sep 4, 2012, 4:35:10 AM9/4/12
to
on 04-09-12, ancu...@gmail.com supposed :
> Normalmente anche per me non avrebbe senso...
> Non ᅵ in discussione questo, ma come realizzarlo...
> Continuare a scrivere che non ha senso, non ha senso... ;)
>
> La domanda ᅵ:
> "Come emulare il piccolo riquadro SEARCH all'interno della maschera"...
>
> Peace and love
>
> Tony dalla Sardegna

A chi stai rispondendo?

Bruno


Bruno Campanini

unread,
Sep 4, 2012, 6:42:59 AM9/4/12
to
Bruno Campanini expressed precisely :
> @Alex formulated on Monday :
>
>> Concordo con l'osservazione... ma ᅵ quello che fa la Barra di
>> Navigazione NATIVA...!!
>> Consente di CERCARE qualsiasi cosa in qualsiasi campo... ma se la vedi
>> dal punto di vista GENERICO, non ᅵ altro che un sistema
>> di Cercare quello che serve consentendo all'utente un'interfaccia
>> MINIMALISTICA...!
>>
>> E' infatti ovvio che non abbia senso TECNICO cercare un C.F. in un
>> campo Indirizzo... ma l'interfaccia si complicherebbe...
>>
>> Cosᅵ invece se il DB ᅵ ben strutturato, la ricerca del C.F., che viene
>> fatta in TUTTI i campi, in realtᅵ avrᅵ effetto solo nel campo C.F.
>
> Mi si rivoltan le budella a pensare di dover fare una cosa del genere!
>
> Io ho risolto casi di ricerca simili in altra maniera, cercando ogni valore
> (testo, numero, data, booleano che sia) nel campo in cui si deve trovare
> collocato.
> Con codice VBA, in maniera operativamente molto semplice.

Un semplice esempio tratto da un'applicazione recentemente aggiornata.

http://www.2shared.com/file/vW618JR-/GP_Prova.html

Bruno


Bruno Campanini

unread,
Sep 4, 2012, 6:52:20 AM9/4/12
to
Bruno Campanini brought next idea :

> Un semplice esempio tratto da un'applicazione recentemente aggiornata.
>
> http://www.2shared.com/file/vW618JR-/GP_Prova.html

Ho sbagliato file! questo ᅵ quello buono:

http://www.2shared.com/file/RJPkNVq5/GP_online.html

Bruno


@Alex

unread,
Sep 11, 2012, 12:44:54 PM9/11/12
to
...
> Ma pensa ai nomi... io ho due amici che si chiamano l'uno Francesco
> (nome) Romano (cognome), l'altro Romano (nome) Francesco (cognome).
> Li voglio mandare da te per farsi fare un database coi fiocchi!
>
> E se dovessi cercare una fattura della quale ricordo l'importo di EUR
> 47100 e il tuo database mi trovasse il mio CAP?
>
> Orrore!
>
> Bruno

Bruno non ho detto che è GIUSTO ho detto che il senso potrebbe essere
questo...!!!!
Ma se hai A2010, ti accorgi che questo GADGET è implementato in
automatico e NON RIMOVIBILE nella barra di NAVIGAZIONE... dalla MAMMA
MS...
Ora vai a dire ai tuoi amici... Romano Francesco e Francesco Romano,
che cavolo di amici hai poi..., di andare negli USA... a tritare i
pistacchi a BILL ....

Come sei riggido..., il che detto da me è un complimento...

@Alex

Bruno Campanini

unread,
Sep 12, 2012, 11:28:05 AM9/12/12
to
on 11-09-12, @Alex supposed :
> ...
>> Ma pensa ai nomi... io ho due amici che si chiamano l'uno Francesco
>> (nome) Romano (cognome), l'altro Romano (nome) Francesco (cognome).
>> Li voglio mandare da te per farsi fare un database coi fiocchi!
>>
>> E se dovessi cercare una fattura della quale ricordo l'importo di EUR
>> 47100 e il tuo database mi trovasse il mio CAP?
>>
>> Orrore!
>>
>> Bruno
>
> Bruno non ho detto che ᅵ GIUSTO ho detto che il senso potrebbe essere
> questo...!!!!

Questa allora cos'ᅵ, un peccato di gioventᅵ?
http://forum.masterdrive.it/access-79/form-subform-navigazione-managment-69075/

> Ma se hai A2010, ti accorgi che questo GADGET ᅵ implementato in
> automatico e NON RIMOVIBILE nella barra di NAVIGAZIONE... dalla MAMMA
> MS...
Prova a dirmi come vi si accede che io Access 2010 non lo mastico
ancora bene.

> Ora vai a dire ai tuoi amici... Romano Francesco e Francesco Romano,
> che cavolo di amici hai poi..., di andare negli USA... a tritare i
> pistacchi a BILL ....
Ma ᅵ la veritᅵ sai...
C'ᅵ stato un periodo che li frequentavo entrambi e quando in mia
assenza era mia moglie a rispondere al telefono io non sapevo mai chi
dei due avesse chiamato.

Bruno


@Alex

unread,
Sep 12, 2012, 6:51:35 PM9/12/12
to
....
> > Bruno non ho detto che è GIUSTO ho detto che il senso potrebbe essere
> > questo...!!!!
>
> Questa allora cos'è, un peccato di gioventù?http://forum.masterdrive.it/access-79/form-subform-navigazione-managm...

No è la replicazione di quanto A2010 già fa di nativo nella BARRA...,
e come dicevo prova a chiamare BILL e chiedere a lui il perchè...

> > Ma se hai A2010, ti accorgi che questo GADGET è implementato in
> > automatico e NON RIMOVIBILE nella barra di NAVIGAZIONE... dalla MAMMA
> > MS...
>
> Prova a dirmi come vi si accede che io Access 2010 non lo mastico
> ancora bene.

Di cosa parli....?
A2010 quando apri una Form, sotto hai i Button di Navigazione Avanti/
Indietro/primo/Ultimo/NUovo ed a DX trovi una TextBox che fa quello
che fa il mio demo(anzi è il mio demo che replica quella di MS)...

E' nativa ed integrata nella Barra di Navigazione in sostanza.
Cosa sarebbe che non trovi e che non ti è chiaro di A2010 che devo
premasticarti....?(sarà ma secondo me è questione di dentiera...)

> > Ora vai a dire ai tuoi amici... Romano Francesco e Francesco Romano,
> > che cavolo di amici hai poi..., di andare negli USA... a tritare i
> > pistacchi a BILL ....
>
> Ma è la verità sai...
> C'è stato un periodo che li frequentavo entrambi e quando in mia
> assenza era mia moglie a rispondere al telefono io non sapevo mai chi
> dei due avesse chiamato.

Ovviamente ci credo non avrei motivo alcuno per dubitarne... ed in
effetti se tutte queste stranezze capitano a te un motivo c'è
sicuramente.

> Bruno

Ciao Bruno, non ho fatto faccine strane ma credo sia evidente stessi
scherzando...

@Alex

Bruno Campanini

unread,
Sep 12, 2012, 7:28:10 PM9/12/12
to
@Alex wrote on 13-09-12 :

>> Prova a dirmi come vi si accede che io Access 2010 non lo mastico
>> ancora bene.
>
> Di cosa parli....?
> A2010 quando apri una Form, sotto hai i Button di Navigazione Avanti/
> Indietro/primo/Ultimo/NUovo ed a DX trovi una TextBox che fa quello
> che fa il mio demo(anzi ᅵ il mio demo che replica quella di MS)...
>
> E' nativa ed integrata nella Barra di Navigazione in sostanza.
> Cosa sarebbe che non trovi e che non ti ᅵ chiaro di A2010 che devo
> premasticarti....?(sarᅵ ma secondo me ᅵ questione di dentiera...)

Per il momento solo quel Search che non avevo mai notato.
E non avevo notato nemmeno quel Unfiltered alla sua sinistra, che nella
scheda sulla quale l'ho provato filtra sempre e solo le prime due righe
indistintamente.

>> Ma ᅵ la veritᅵ sai...
>> C'ᅵ stato un periodo che li frequentavo entrambi e quando in mia
>> assenza era mia moglie a rispondere al telefono io non sapevo mai chi
>> dei due avesse chiamato.
>
> Ovviamente ci credo non avrei motivo alcuno per dubitarne... ed in
> effetti se tutte queste stranezze capitano a te un motivo c'ᅵ
> sicuramente.

What do you want me to say... sarᅵ perseguitato dalle stranezze.

Bruno


0 new messages