Newsgroup: it.comp.appl.access
Titolo: aiuto per scadenziario a principiante in panne

Innanzitutto tanti saluti a tutto il NG e grazie in anticipo pe rogni
suggerimento disponibile.
Ho iniziato a bazzicare con Access da quasi un anno, riuscendo a creare
piccoli applicativi che hanno accellerato diverse procedure che devo
svolgere per lavo, ma ora sono incappato in qualcosa (probabilmente più
semplice di quel che credo per voi esperti) al di sopra delle mie capacità.
Mi spiego:
voglio creare una sorta di scadenziario, che mi permetta di tenere sotto
controllo l'iter di certe operazioni, le quali possono essere  anche
piuttosto complesse, in quanto ad ogni passaggio ci sono 2 o 3 possibilità
con delle scadenze da rispettare. ( sono un impiegato che si occupa di
gestione del personale: devo comunicare un' assunzione all'ufficio di
collocamento entro 5 gg lavotativi, ma se il lavoratore è extracomunitario,
ci sono ulteriori pratiche da svolgere con la questura ... e 10 altre
possibilità del genere)
Mi chiedevo se potevate darmi una "dritta" su come poter gestire queste
scadenze, o in alternativa, dove trovare db simili da cui prendere spunto.
Vi ringrazio
St

 scadenze, o in alternativa, dove trovare db simili da cui prendere spunto.
Secondo me sei stato troppo generico: dovresti presentare un problema per
volta e dire come vorresti che si risolva, poi si vedrà...
Antonio

Rileggendo la mia richiesta, non posso far altro che darti ragione! il fatto
è che non so ancora da che parte cominciare.
Un primo probblemino è questo:
Nella maschera che fa riferimento alla tabella principale, voglio che
inserendo nel campo "codice ditta" un codice, nel campo Ditta mi appaia il
nome della stessa.
NB esiste una tab ditte con collegato il cod ditta alla tabella principale
la tab principale, non deve necessariamente contenere il nome ditta, basta
che mi appaia nella maschera.
grazie, e nella speranza un giorno di poter anche io dar consigli, alla
prossima
Stefano

nome della stessa.
Lavorando un po' di fantasia potrebbero venir fuori una dozzina di
risposte diverse. Io che non so un cavolo ne ho gia' due.
Sarebbe un bell'argomento per una sfida. Vince chi ha l'ultima parola,
cioe' quando nessun altro riesce piu' ad inventarsi niente di diverso.
Vale inventare anche cose mostruose che nessuno farebbe mai. Si vince
la classica bambolina.
Se nessuno partecipa, domani ti dico la mia, ma per ora non voglio
"rubare" una risposta, visto che non ho speranze di vincere.

 nome della stessa.
Caso 1: il CONTROLLO (non esistono campi nelle maschere, ma controlli
eventualmente legati a campi) codice ditta è una casella di testo.
Soluzione: All'evento dopo aggiornamento del codice ditta, userai la
funzione DLookup per trovare il corrispondente nome di ditta. Guardati
comunque l'help su questa funzione, e sue sorelle, spesso molto utili,
comunque verrà fuori
ditta = DLookup("[nome ditta]","tab_ditte","[codice ditta]='" &
me.codice_ditta & "'")
Poi assegni il valore ditta (chiaramente puoi saltare il passaggio con la
variabile d'appoggio ditta) al controllo nome_ditta, cioè
me.nome_ditta = ditta
Se codice ditta è un campo numerico non devi mettere gli apici '.
Dovresti infine anche gestire il caso di codice inesistente, nel qual caso
ditta sarebbe null. Potresti testare quindi con isnull il valore di ditta e
o mandare un messaggio all'utente o aprire una maschera di inserimento nuove
ditte.
Caso 2: il codice ditta è una combo associata al campo codice ditta della
tabella principale, ma la cui origine riga è una query sulla tab_ditte che
restituisce come primo campo i codici ditte e come secondo i nomi. Il numero
di colonne della combo saranno due, ma se ne vedrà una sola mettendo come
dimensione colonne X cm.;0 cm.
Una volta selezionato un codice con la proprietà column della combo potrai
avere anche il nome e quindi, sull'evento dopo aggiornamento della combo
farai
me.nome_ditta = me.comboCodice.column(1)
Antonio

dimensione colonne X cm.;0 cm.
Imho la combo dovrebbe proprio far trovare il codice cercando il nome
della ditta in un elenco alfabetico, quindi farei vedere tutte e due
le colonne, altrimenti a che serve?

 le colonne, altrimenti a che serve?
Beh, se il codice è parlante e l'utente riconosce il cliente solo con esso
va bene come ho detto io. E poi pensa al caso in cui ci sono molti altri
campi associati ad un cliente: mica puoi farli vedere tutti nella combo.
Farai vedere solo il significativo con gli altri nascosti e poi li
schiafferai usando la proprietà column in tutti i controlli non legati della
maschera dopo la scelta del cliente.
Antonio

forms!fatture.[codice cliente] = me.codice_cliente
Io devo aggiornare i controlli "non associati" nella maschera
principale e questo non posso farlo, pare, usando l'evento su chiusura
del popup che in un certo senso non c'entra nulla ...non so come
spiegarmi... Mi sarei anche meravigliata del contrario, e' intuitivo
che posso mandare un qualcosa dalla maschera principale a quella
secondaria, ma non viceversa e alla maschera principale non trovo il
modo di far sapere "ok, la maschera secondaria l'ho chiusa, adesso
aggiornati".
Probabilmente avrei dovuto impostare tutto quanto in un altro modo
dall'inizio, basando tutto su una query, invece che su due tabelle.
Era un esperimento :))

 Era un esperimento :))
Secondo me semplicemente non riesci a fare una cosa fattibile: il motivo non
riesco a capirlo però...
Antonio

Sono disperatissimo!
:-((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
(((
 Premesso che a codice, sono peggio che analfabeta, la mia interpretazione
del codice indicato da Antonio (me.nome_ditta = me.comboCodice.column(1))
non fa niente (viene visualizzato sempre il codice e non la descrizione). Se
qualcuno di voi ha pero ancora un pò di  tempo da dedicarmi, cercherò di
essere un po' più chiaro.
La combo ha come origine dati la Quey_Ordina_Ditte, che a sua volta, deriva
dalla Tab_Ditte (i cui campi sono: Cod_Ditta, numerico, chiave; Nome_Ditta,
testo).
Io vorrei che la combo funzioni nel seguente modo:
­­■ seleziono la Ditta sfruttando il campo Nome_Ditta, ordinato in ordine
alfabetico;
■nella tabella principale ( Tab_Sc_Dip, campo Cod_Ditta) venga memorizzato
il codice corrispondente (fino a qui ci sono);
■vorrei però che nella mia maschera, in alternativa al Cod_Ditta o in
aggiunta, in un altro controllo o anche nella combo stessa, venga
visualizzato il nome Ditta
Spero di essere stato chiaro.
Grazie ancora della pazienza e saluti a tutto il ng.
Ps qualcuno, saprebbe forse indicarmi un manuale per iniziare a bazzicare
con un po' diVBA?
ciao e a presto
Stefano

 visualizzato il nome Ditta
Allora: una combo può visualizzare un unico campo per volta quando è chiusa,
più di uno quando è aperta.
Tu selezioni la ditta tramite il nome però immagino che i riferimenti alla
ditta scelta utilizzino il cod_ditta che è univoco altrimenti in caso di
omonimia saresti fregato.
Questo significa quindi che la query della combo deve avere sia il campo
nome che il campo Cod. Ok!
Il campo Cod però all'utente non glielo vogliamo far vedere perchè non è
significativo. Quindi la colonna corrispondente al campo Cod dovrà avere
dimensione 0.
Supponiamo di mettere nella query come primo campo selezionato il campo Cod
e come secondo il nome.
Nelle proprietà della combo dovrai allora mettere:
Numero colonne = 2
Dimensione colonne = 0 cm;X cm
Colonna Associata : 1
In questa maniera la combo ti farà vedere solo il campo nome, sia quando è
aperta che quando è chiusa, però il campo associato alla combo è il campo
Cod che tu potrai schiaffare nella tabella Tab_Sc_Dip per riferire alla
ditta selezionata.
Se per caso tu avessi bisogno di qualche altra informazione associata alla
ditta scelta da visualizzare nella maschera, ti basta:
selezionare anche questo campo nella query (il terzo campo per esempio)
mettere a 3 il numero di colonne
mettere una casella di testo non legata nella maschera (indirizzo per
esempio)
sull'evento dopo aggiornamento della combo scriverai:
me!indirizzo = me!combo.column(2)
Antonio