PDA

View Full Version : [Access-VB] Combobox maschera urgente.........


giack83
27-02-2007, 13:37
Salve a tutti,
vi pongo un problema che ho riscontrato:

Ho creato un database in access con una serie di tabelle, una serie di query e di maschere.
In una maschera ho creato tramite il comando "casella combinata" un menù a tendina dove compaiono il codice_identificativo, la marca, e modello dei telefonini presenti nel mio negozio.
Nella maschera A c'è il menu a tendina, nella maschera B è una maschera collegata ad una query che ti visualizza le schede tecniche dei cell.

Come si fa a far si che quando in questo menu che si trova nella maschera A, seleziono un codice di un cell, mi si apra una maschera B con tutte le caratteristiche di quel cell??

Aiuto perpiacere.

akyra
27-02-2007, 17:35
la soluzione migliore sarebbe quella di usare una maschera unica in cui dalla casella combinata fai il filtro sui dati che devi visualizzare...oppure vuoi per forza avere due maschere distinte?
...casomai più tardi ti posto un paio di database di esempio

giack83
28-02-2007, 07:15
sarebbe meglio due maschere distinti......

akyra
28-02-2007, 10:00
eccomi!...meglio tardi che mai...

allora...ti faccio l'upload dell'esempio più semplice che mi sia venuto in mente, e che sia di facile comprensione. Non ho idea di quali siano le tue conoscenze di access, per cui a costo di sembrare elementare cerco di spiegarti tutto quello che ho fatto.
Nel database c'è una tabella, "Tabella1" che contiene i dati che mi servono. Poi ho le 2 maschere separate,

mscFiltro: maschera da cui si effettua il filtro attraverso la casella combinata

mscRisultato: mostra il risultato della ricerca che faccio, scegliendo l'opportuno
codice dalla casella. Questa maschera ha una query sottostante ("qryRicercaPerCodice") che è collegata al valore contenuto nella casella combinata della maschera "mscFiltro". In questo modo la query restituisce solo quelle righe della "Tabella1" che hanno il campo codice uguale al valore contenuto nella casella combinata della maschera "mscFiltro". Naturalmente se la casella in questione è vuota, la query non restituirà nessun valore, e la maschera "mscRisultato" risulterà vuota.

Ho implementato alcuni eventi per realizzare il tutto:
nell'evento "su apertura" della maschera "mscFiltro" faccio aprire la seconda maschera "mscRisultato", in modo che aprendo la prima si apra anche la seconda...questo è ovvio in quanto altrimenti non sarei in grado di mostrare i risultati.

Quindi sull'evento "su aggiornamento" della casella combinata nella maschera "mscFiltro", eseguo il seguente comando

Form_mscRisultato.Requery


il quale non fa altro che rieseguire la query sottostante alla maschera "mscRisultato", che dunque farà comparire i le righe che corrispondono al codice scelto.

Se non ti è chiaro qualcosa chiedi pure!

giack83
28-02-2007, 12:19
Grazie mille davvero sei stato non dico gentile super gentile :D

oggi sul pomeriggio tardi o stasera provo poi o sempre stasera o al massimo domani ti dico.

Ancora grazie.

giack83
01-03-2007, 09:31
Salve,
tutto bene c0ome mi hai spiegato :-)

una cosetta pero, quando clicco su "mscFiltro" mi si apre subito in contemporanea anche la maschera "mscRisultato".
COme posso fare a far si che la maschera "mscRisultato" si apra solo quando nella maschera "mscFiltro" ho selezionato il codice desiderato?

Nel mio DataBase ho creato un pulsante che quando ci clicco sopra mi apre la maschera "mscFiltro" e anche la second amaschera. Ho aggiunto poi un pulsante nella maschera "mscFiltro" che è collegato ad una maschera che permette di aggiungere un nuovo record.
Ho notato pero che la maschera "mscFiltro" rimane sempre in primo piano facendo si che nn possa vedere bene la maschera di immissione nuovo record. COme posso fare a far si che nn sia sempre in primo piano?

giack83
01-03-2007, 17:10
uppppp

akyra
01-03-2007, 22:11
domani mattina ti rispondo...ora sono di fretta, abbi fede :)

akyra
02-03-2007, 10:30
COme posso fare a far si che la maschera "mscRisultato" si apra solo quando nella maschera "mscFiltro" ho selezionato il codice desiderato?


semplicemente la funzione che effettua l'apertura della seconda maschera viene eseguita all'evento "su apertura" della maschera "mscFiltro". Per fare ciò che chiedi basta che sposti la suddetta funzione sotto l'evento "su aggiornamento" della casella combinata. In questo modo la seconda maschera si aprirà solo quando viene aggiornato il contenuto della suddetta casella.


Ho notato però che la maschera "mscFiltro" rimane sempre in primo piano facendo si che nn possa vedere bene la maschera di immissione nuovo record. COme posso fare a far si che nn sia sempre in primo piano?


maschera mscFiltro -> proprietà -> Tutte -> Popup = no

giack83
02-03-2007, 12:04
Grazie per la risposta :D tutto a posto.

Una cosa pero.
Ho provato ad applicare la stessa procedura (le de maschere) anche per la tabella Accessori.
Dopo aver fatto le oppurtune modifiche, cioè creare una query e le due maschere(una con casella combinata e l'altra collegata alla query), cliccando nel munu a tendina della prima maschera "mscFiltroAccessorio" mi si apre una finestra di debug con scritto:

Errore run time '424', se clicco in "debug" mi si apre VB e mi viene sottolineata la riga di codice:

Form_mscRisultatoAccessorio.Requery

perche??

akyra
02-03-2007, 15:32
puoi mandarmi il database in questione? così facciamo prima...altrimenti dovrei scervellarmi come non mai per capire qual è, tra i 9847697 motivi, quello giusto per cui ti da quell'errore...

giack83
03-03-2007, 09:20
eccoti un esempio....

akyra
04-03-2007, 12:14
quale esempio? non vedo nulla...

giack83
05-03-2007, 14:08
Pensavo che i file in formato "rar" li supportava.

Stasera lo zippo con il zip e domani o stasera te lo mando. Scusa

giack83
05-03-2007, 18:32
Ascolta akyra mi mandi con un messaggio privato la tua email?

Perchè ho provato ad aggiungere il file in formato zip ma tiene 54 K e qui il forum supporta solo 24 K dai va la che roba.

è troppo poco 24K va beh.

Cmq se mi mandi un messaggio privato con la tua email ti invio sto esempio :-)

giack83
06-03-2007, 12:29
spedito

akyra
06-03-2007, 13:01
mi devi mandare il database che ti da l'errore, altrimenti come faccio a capire?...mi hai rispedito quello che ti avevo postato io...

giack83
06-03-2007, 13:20
mandato scusa :D

akyra
06-03-2007, 15:01
te l'ho mandato modificato, ora funziona.

forse è meglio eseguire questo comando
Form_mscRisultatoAcc.Requery

in quest'altro modo

Forms![mscRisultatoAcc].Requery

perchè se la maschera in questione non ha nessuna routine definita, allora access non riesce ad indirizzarla nel modo che ho indicato per primo...