Newsgroup: it.comp.appl.access
Titolo: Maschera/casella Combinata/query

In un DataBase Access, ho creato una mascera con casella combinata
colleagata ad una tabella di listini (codice e descrizione)
Ora ho applicata ai criteri di una query questa funzione:
[Forms]![Maschera3]![CasellaCombinata0]
Però non mi permette la selezione tra i vari articoli, contrariamente
a ciò che mi permetterebbe la sola selezione dalla maschera.
Se digito io codice "a memoria", mi fà la query elaborata esattamente.
Sbaglio qualcosa nella funzione?
Grazie

alberghi...@gmail.com
 ha scritto:

Se vuoi che all'esecuzione della query si apra la maschera per farti
scegliere dall'elenco della combo un valore per filtrare la query non si
può fare.
Puoi invece fare il contrario, prima selezioni il valore nella maschera e
poi con un pulsante (sempre sulla maschera) fai aprire la query che
leggerà il criterio dalla maschera.
La query dovrebbe funzionare anche così come l'hai scritta, se i nomi
della maschera e della combo sono corretti, però la maschera dev'essere
già aperta prima dell'esecuzione della query ed il valore nella combo già
selezionato.
-Marco-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Ottimo, ci sono riuscita.
Però mi sono accorta che per visualizzare diverse selezioni degli
articoli, una successiva all'altra, tiene in memoria il primo
articolo. E quindi devo sempre chiudere e riaprire la maschera.
C'è qualche metodo per ovviare a questo imprevisto?
Grazie
Daniela

alberghi...@gmail.com
 ha scritto:


Se lavori dalla maschera e apri la query con un pulsante ti basta
aggiungere Me.CasellaCombinata0=null subito dopo la riga di codice VBA che
apre la query.
Comunque sarebbe più carino visualizzare i dati in una maschera piuttosto
che far aprire una query. Nella stessa maschera avresti in alto la combo
di selezione e subito sotto vedi i record selezionati, che cambiano appena
cambi il valore della combo.
Ciao.


 
alberghinidani...@gmail.com
 ha scritto:

Io ho collegato nella maschera, l'apertura della query e non ho agisto
sul codice VBA.
Visto che non sono molto pratica, come potrei agire per la tua seconda
opzione "più carina" per vedere direttamente i dati in una maschera e
fare il reset di cui sopra?
Grazie e scusami se ho mille lacune
Daniela

 Daniela
Prepari una maschera continua che mostri tutti i record che ti servono,
dalla tabella o da una query.
Poi nell'intestazione ci metti una combo non associata come quella che hai
già nella tua maschera.
Dalla finestra proprietà della combo clicchi sui tre puntini che appaiono
quando metti il cursore nell'evento "dopo aggiornamento" e scegli
"generatore di codice".
Si apre l'editor VBA, devi scrivere qualche riga di codice che filtri i
record in base al valore selezionato nella combo. Riporto un esempio, da
adattare cambiando i nomi dei controlli e dei campi (combo1 e ID) per
adattarli ai tuoi:
Private sub combo1_after_update()
if isnull(me.combo1) then
  me.filter=""
  me.filteron=false
else
  me.filter="ID=" & me.combo1
  me.filteron=true
end if
end sub


 --
Ti ringrazio per le precise spiegazioni.
L'unica cosa che mi dà un errore
Errore di run-time '3075':
errore di sintassi nel numero nell'espressione della query
'Codice=1.0011.0'.
Se poi faccio il debug mi evidenzia questa riga:
  Me.FilterOn = True
Sembra che non riesca a capire qual'è il campo dove applicare il
filtro.
Questo è il codice inserito da me:
Private Sub CasellaCombinata0_AfterUpdate()
If IsNull(Me.CasellaCombinata0) Then
  Me.Filter = ""
  Me.FilterOn = False
Else
  Me.Filter = "Codice=" & Me.CasellaCombinata0
  Me.FilterOn = True
End If
End Sub
Grazie
Daniela

 Daniela
Se il campo è un testo bisogna aggiungere gli apici:
   Me.Filter = "Codice=""" & Me.CasellaCombinata0 & """"


 
alberghinidani...@gmail.com
 ha scritto:

Grazieissmo per l'aiuto e la pazienza.
Ciao
Daniela