Newsgroup: it.comp.appl.access
Titolo: Non solo combo!

Domandina:
invece della solita casella combinata che mi gestisce gli altri campi e che
valuta il filtro prima di passarlo alla funzione DLookup, se sia possibile
creare una casella di testo che faccia la stessa funzione, evitando di far
vedere quella brutta freccetta di selezione.
Marco M.

 ha scritto nel messaggio
news:5VNn8.22848$pT1.6...@news1.tin.it...

A me non è chiaro ciò che ti serve.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Roberto
Mi spiego meglio Roberto,
hai presente una sottomaschera che gestisce degli ordini (vedi
autocomposizioni)?
Nella sottomaschera,  nel primo campo (casella combinata), inserisco  il
codice e gli altri campi nomeprodotto prezzo sconto ecc.. vengono riempiti
tramite procedura.
Continuo...
Vorrei che al posto della combo (dove nel record inserisco il codice) vi
fosse come alternativa una casella di testo che svolga le stesse funzioni di
ricerca della combo, quindi una volta inserito il codice, con una procedura
questa casella di testo vada a rintracciare come la combo gli altri campi da
riempire.
Ti domanderai perchč desidero questo!
Perchč non mi fa impazzire la casella combinata, con la sua freccettina....
ed anche per una questione di estetica ovvio. Spero di essere stato chiaro.
Ciao Marco M.
PS Magari specifica meglio cosa non ti č chiaro
www.marcoweb.it

 ha scritto nel messaggio
news:cO1o8.30248$S52.1...@news2.tin.it...

Forse ora ho capito (almeno spero): puoi risolvere il tuo problema facendo
ricorso alla funzione di aggregazione sui dominii DLookup (vedi help).
E' d'obbligo una precisazione: in una maschera (quindi in una sottomaschera)
non ci sono i campi (che invece sono contenuti nelle tabelle e nelle
queries) ma i controlli.
Se la tabella che č attualmente origine riga della casella combinata si
chiama TbProdotto ed ha una struttura simile a questa:
CodiceProdotto        Contatore e chiave primaria
NomeProdotto          Testo
Prezzo                       Valuta
Sconto                      Numerico
ecc. ecc.
Se nella tua maschera i controlli si chiamano rispettivamente CtrCodice
(casella di testo dove digiterai il codice del prodotto), CtrNome, CtrPrezzo
e CtrSconto.
A fronte dell'evento "Prima di aggiornare" del controllo CtrCodice genera il
seguente codice VBA:
If IsNul(DLookup("CodiceProdotto", "TbProdotto", "CodiceProdotto=" &
Me!CtrCodice)) Then
    MsgBox "Il prodotto " & Me!CtrCodice & " non esiste. Riprova!"
    Cancel = True
Else
    Me!CtrNome = DLookup("NomeProdotto", "TbProdotto", "CodiceProdotto=" &
Me!CtrCodice)
    Me!CtrPrezzo = DLookup("Prezzo", "TbProdotto", "CodiceProdotto=" &
Me!CtrCodice)
    Me!CtrSconto = DLookup("Sconto", "TbProdotto", "CodiceProdotto=" &
Me!CtrCodice)
End If
Se invece il campo CodiceProdotto fosse di tipo testo dovresti scrivere:
If IsNul(DLookup("CodiceProdotto", "TbProdotto", "CodiceProdotto=" &
Chr$(34) & Me!CtrCodice & Chr$(34))) Then
    MsgBox "Il prodotto " & Me!CtrCodice & " non esiste. Riprova!"
    Cancel = True
Else
    Me!CtrNome = DLookup("NomeProdotto", "TbProdotto", "CodiceProdotto=" &
Chr$(34) & Me!CtrCodice & Chr$(34))
    Me!CtrPrezzo = DLookup("Prezzo", "TbProdotto", "CodiceProdotto=" &
Chr$(34) & Me!CtrCodice & Chr$(34))
    Me!CtrSconto = DLookup("Sconto", "TbProdotto", "CodiceProdotto=" &
Chr$(34) & Me!CtrCodice & Chr$(34))
End If


Letto tutto, è esattamente quello che intendevo, ora provo poi ti faccio
sapere grazie
Marco M.


non mi è molto chiaro cosa intendi per controlli quindi da dove chiamo
CtrCodice.
per semplificarti la vita e per capirci meglio ti propongo di utilizzare
come esempio il db Gestione ordini che realizzi in autocomposizione, anche
perchè le maschere che mi intressa modificare sono simili.
Grazie Marco M.

Grazie risolto
Sei stato gentile
Marco M.

Caro Roberto sorge un problemino!
Premesso che nel mio caso ci sono solo codici univoci vado a spiegarti il
problemino.
Quando gestivo la combo IDProdotto, avevo attivato un doppio controllo
composto da due query che mi impedivano di vendere un prodotto già venduto.
Nei >Dati >Origine riga della combo inserivo la query Prodotto_Ordinati
mentre nella sottomaschera su corrente attivavo la seguente routine
Private Sub Form_Current()
If Me.NewRecord Then
Me.IDProdotto.RowSource = "Prodotti_NON_Ordinati"
Else
Me.IDProdotto.RowSource = "Prodotti_Ordinati"
End If
End Sub
quindi effettuando una vendita non c'era la possibilità di rivendere lo
stesso prodotto, perchè non veniva nemmeno preso in considerazione
grazie alle query che mi filtravano i tappeti venduti e quelli rimasti da
vendere.
Ora con la casella di teso non posso attivare il controllo RowSource per cui
ho il rischio di vendere lo stesso prodotto più volte.
Cosa mi consigli come controllo alternativo alle query e a RowSource?
Molto semplicemente così ti rimane più chiaro, se effettuo una vendita del
codice 1234-02, nel record successivo non deve apparirmi il codice 1234-02
perché è stato già venduto!
Ciao scusa il disturbo e Buona Pasqua

 ha scritto nel messaggio
news:inQo8.39744$S52.1...@news2.tin.it...

Come dominio delle DLookup, dove io ho scritto "TbProdotto", prova invece a
scrivere "Prodotti_NON_Ordinati", ovvero la ricerca anziché farla nella
tabella che contiene tutti i tappeti, devi farla nella query che filtra solo
i tappeti non ordinati precedentemente.
