Newsgroup: it.comp.appl.access
Titolo: DB Libri - per Roberto

La maschera "CitazioniLibri" si basa sulla tab "Libri" da cui desume i
controlli Titolo, Editore, Collocazione; essa contiene una sottomaschera
"Citazioni sottomaschera", basata sulla tab. "Citazioni", la quale permette
di inserire o consultare le citazioni relative al libro selezionato nella
maschera principale. In questa sottomaschera c'è un controllo (Casella di
testo) il cui nome elemento è "IDCitazione" e che riporta il numero di
citazioni di quel determinato libro; nella proprietà Origine controllo ho
posto la stringa:
=IIf(IsNull(DLookUp("[IDCitazione]";"Citazioni";"IDLibro=" &
[IDLibro]));"Nessuna";DCount("[IDCitazione]";"Citazioni";"IDLibro=" &
[IDLibro]))
Questo controllo funziona bene se il libro ha una o più citazioni;
altrimenti (ossia se il libro non ha citazioni) riporta la parola Errore.
Vorrei che comparisse invece la parola "Nessuna", come accade per un uguale
controllo presente nella maschera "Libri".  Dove sbaglio? Mi puoi dare
qualche indicazione?
Come fare (se possibile) per ottenere che tale controllo si aggiorni subito
quando si inserisce o si elimina una citazione, senza dover chiudere la
maschera principale e riaprirla?
Grazie. Vitt.

...
Prova con:
=IIf(DCount("[IDCitazione]";"Citazioni";"IDLibro=" &
[IDLibro]) = 0;"Nessuna";DCount("[IDCitazione]";"Citazioni";"IDLibro=" &
[IDLibro]))
BTW Per i regulars di questo NG:
Normalmente nel usenet è considerato scortese se uno chiede per/a
una persona particolare nel subject (spec. con una domanda generica)
- e non si risponde per questo motivo.
Ma non so se è anche una regola nel icaa perché qui vedo queste cose
qualche volta. Per questo ho risposto (e per chiamare:-). Mi schiarate p.f.
--
Karl
*********
Non meravigliarti del mio strano italiano. M'esercito qui.
Access-FAQ (tedesco): 
http://www.donkarl.com


Credo che questa regola valga anche qui; Roberto, però, è un riferimento per
molti di noi e viene spontaneo rivolgersi direttamente a lui, specie quando
vi è un discorso aperto. Grazie comunque per l'osservazione: ne terrò conto
in futuro.
Ciao. Vitt.


--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Scusami, ma non avevo letto bene il tuo messaggio e non avevo capito che il
il controllo era nella sottomaschera.
E allora nell'origine controllo di IDCitazione scrivi:
=IIf(DCount("[IDCitazione]";"Citazioni";"IDLibro=" &
[Forms]![CitazioniLibri]![IDLibro])=0;"Nessuna";DCount("[IDCitazione]";"Cita
zioni";"IDLibro=" & [Forms]![CitazioniLibri]![IDLibro]))
e a fronte dell'evento "Dopo aggiornamento" che a fronte dell'evento "Su
eliminazione" della sottomaschera "Citazioni sottomaschera" genera questa
riga di codice VBA:
Me.Refresh


 Forms!CitazioniLibri.Refresh
Fatto e funzionante.
Un'altra curiosità fastidiosa: nella sottomaschera ci sono i 4 pulsanti per
la spostamento tra i record: "Vai al primo record" e "Vai all'ultimo record"
funzionano bene; invece:
1) il pulsante "Vai al record successivo", quando muove dall'ultimo record,
apre prima un record vuoto e poi fa comparire il logico avviso "Impossibile
passare al record specificato"; poichè c'è anche un pulsante dedicato
all'inserimento di un nuovo record, sarebbe comodo e più pratico che il
pulsante facesse comparire subito l'avviso di impossibilità a passare al
record successivo (essendo quest'ultimo inesistente).
2) il pulsante "Vai al record precedente", immediatamente dopo l'inserimento
nella sottomaschera di un nuovo record, non riesce a funzionare perchè,
premendolo, la sottomaschera si aggiorna presentando la prima delle
citazioni, ed ovviamente il pulsante non riesce ad aprire un record
precedente al primo.
Sono piccolezze, ma garantisco che sono noiose; c'è un qualche rimedio?
L'amico tedesco mi ha fatto osservare che è maleducazione rivolgersi in un
NG ad una persona in particolare; per questa volta (dato che questo
messaggio è Re:) uso ancora lo stesso oggetto, ma in seguito forse è meglio
che tralasci il tuo nome; non so francamente cosa pensare dato che non
frequento molto i NG, però un pò mi dispiace perchè è evidente che tu sei
un riferimento importante e sicuro in questo NG.
Ciao,Vitt.

 Me.Refresh
 Ho da poco risposto al tuo messaggio precedente senza aver visto questo tuo
secondo messaggio.
Ora eseguo e domani ti dirň. Grazie. Ciao. Vitt

 Me.Refresh
Fatto. Grazie.
Altro...:
1) Nella maschera "GestionePrestiti" un pulsante apre la maschera
"LibriInPrestitoQuery" basata sull'omonima query che visualizza i libri
attualmente in prestito. L'aggiornamento di tale query avviene solo
chiudendo e riaprendo la maschera "GestionePrestiti". Come fare per
aggiornare questa query istantaneamente quando si inseriscono i dati nei
controlli "PrestatoIl" e "PrestatoA" della maschera "GestionePrestiti" o,
almeno, quando si clicca sul suo pulsante di apertura?
Ci sarebbe anche il problema dei pulsanti di spostamento tra i record nella
maschera "CitazioniLibri" e relativa sottomaschera che ho esposto nel
precedente messaggio....
Grazie. Ciao. Vitt


Non vorrei sbagliarmi, ma mi pare che Karl sia austriaco.
--
Silvio
il sito comune di it.comp.appl.access:
http://www.sitocomune.com

 Non vorrei sbagliarmi, ma mi pare che Karl sia austriaco.
Ciao Silvio,
Si, ma in in qualche situazione (particolarmente politico) non
mi disturba molto se in estero mi prendono per un tedesco.
--
;-)
Karl
*********
Access-FAQ (tedesco): 
http://www.donkarl.com

 Grazie. Ciao. Vitt



A tutto pensavo meno che alla nazionalità; scusami comunque se sono stato
irriverente :-)

 Me.Requery
Il pulsante non risolve: se prima non aggiorno la maschera
"GestionePrestiti", il pulsante non funziona (evidentemente la query non
rileva variazioni nella tab. "Libri"); e se la maschera "GestionePrestiti"
viene aggiornata, la maschera "LibriInPrestitoQuery" riporta i dati
corretti.Il problema, mi pare di capire, riguarda l'aggiornamento della
maschera "GestionePrestiti" e della query LibriInPrestitoQuery.
In entrambe le maschere vi sono tre controlli critici uguali: "PrestatoIl" ,
"PrestatoA" e la casella testo che conta i libri in prestito. Ma nella
maschera "GestionePrestiti" i tre controlli si basano sulla tab. "Libri",
mentre nella maschera "LibriInPrestitoQuery" coinvolgono la query omonima
(che filtra i dati della tab. "Libri"). Ad entrambe le maschere ho applicato
il VBA Me.Refresh nelle routine evento a fronte di "Dopo Aggiornamento" e
"Su eliminazione", ma non risolve.
Bisognerebbe ottenere che, cancellando la data dal controllo "PrestatoIl"
nella maschera "GestionePrestiti",  ci fosse un aggiornamento automatico di
tutti e tre i campi in entrambe le maschere  (senza dover riaggiornare, come
adesso, la maschera "GestionePrestiti" chiudendola e riaprendola oppure
scorrendo i record).
Per chiarezza, ricordo le impostazioni attuali dei controlli delle due
maschere:
1)"PrestatoIl" in entrambe le maschere ha, a fronte dell'evento
DopoAggiornamento, il VBA
    If IsNull(Me!PrestatoIl) Then
        Me!PrestatoA = Null
    End If
2) il controllo che riporta il num. dei libri in prestito, nella maschera
"GestionePrestiti", ha a fronte di OrigineControllo la stringa:
=IIf(DCount("[PrestatoIl]";"Libri")=0;"Nessuna";DCount("[PrestatoIl]";"Libri
"))
e, nella maschera "LibriInPrestitoQuery", la stringa:
=IIf(DCount("[PrestatoIl]";"LibriInPrestitoQuery")=0;"Nessuno";DCount("[Pres
tatoIl]";"LibriInPrestitoQuery"))
3) "PrestatoA" in entrambe le maschere non ha particolari impostazioni.
Vitt.

 ha scritto nel messaggio
news:9ls1le$m31$1...@serv1.albacom.net...
[CUT]

Caro Vitt
affinchè il contenuto della maschera LibriInPrestitoQuery venga aggiornato
con le variazioni da te operate nella maschera GestionePrestiti o nella
maschera LibriInPrestitoQuery è necessario che venga eseguita la seguente
riga di codice VBA:
[Forms]![LibriInPrestitoQuery].Requery
Solo così potrai avere quello che tu chiami "aggiornamento in tempo reale"
della query LibriInPrestitoQuery e quindi del contenuto della maschera su di
essa basata.
Dove devi generare tale riga di codice VBA?
A fronte di tutti quegli eventi che cambiano lo stato del libro (da non
prestato a prestato e viceversa); visto che il pulsante di comando non ti va
bene, decidi tu dove.
Naturalmente devi fare in modo che quando il codice VBA di cui sopra viene
eseguito, la maschera LibriInPrestitoQuery risulti aperta.
Comunque a mio avviso non è funzionale aprire la maschera
LibriInPrestitoQuery; io inserirei una casella di riepilogo
nell'intestazione della maschera GestionePrestiti; detta casella di
riepilogo avrebbe come origine riga la query LibriInPrestitoQuery;
naturalmente a questo punto il requery lo effettuerei della casella di
riepilogo.
