Newsgroup: it.comp.appl.access
Titolo: Problema Stupido su report

Salve a tutti,
 
vi spiego velocemente il mio problema:
ho una maschera dove e' inserito un sotto report.
Nella maschera principale c'e un campo per selezionare la data, e sugli eventi del campo alla voce modifica ho meso una macro per il  refresh.
 
Il sistema funziona bene, ad ogni cambio di data il sotto report si aggiorna.
 
Dopo questo ho aggiunto un campo al report con origine dati da dlookup.
 
A questo punto nasce il mio problema:
Il sistema continuare a funzionare correttamente,il sotto report si aggiorna...con un piccolo problema ,per far aggiornare la parte con il dlookup devo per forza cliccare su un qualsiasi punto della maschera ,non si aggiorna con l'aggiornarsi della data come fanno gli altri campi del report.
 
Ho provato a risolvere il problema in vari modi, anche con setfocus.....ma niente mi ritrovo con questo piccolo problema.Sembra come se la parte codice del dlookup venga eseguita solamente al click di un qualsiasi punto della maschera.Tenga a precisare che al cambio di data la parte del dlookup, se c'era un valore precedente, si cancella ma mette il nuovo valore solo al click sulla maschera
 
Qualcuno di voi puoi aiutarmi in questo mistero?
Grazie in anticipo a tutti

ho una maschera dove e' inserito un sotto report. 
.........
Nella maschera principale c'e un campo per selezionare la data, 
e sugli eventi del campo alla voce modifica 
ho meso una macro per il refresh. 
..........
con il dlookup devo per forza cliccare su un qualsiasi punto della maschera ,
.........
Qualcuno di voi puoi aiutarmi in questo mistero? Grazie in anticipo a tutti
 
Adesso non ho un Access per accertarmi,  pero noto che usi 
l'evento "su modifica"  perche ???
Se fosse un testo potrei capirlo,  ma si tratta di una data
è l'evento "su modifica" si scatena ad ogni digitazione 
pertanto avrai obbligatoriamente delle date INCONGRUE
 
 
altra domanda  il tuo DLookUp  fa per caso riferimento alla data 
che stai modificando ???????
 
Perche se fosse cosi allora devi sapere che la modifica determina
il "Text" del controllo,    mentre per il DLookUp  fa riferimento 
al "Value"  che si aggiorna proprio quando esci dal controllo 
facendo un clik in qualunque punto della maschera
 
 
 
Mi sono spiegato malissimo.....
Provo a spiegarmi diversamente
 
Dimentichiamo la data,  hai un controllo in una maschera
dove stai scrivendo "pappalardo"  ad ogni carattere 
digitato scateni l'evento "su modifica"  ma fintanto che 
sei nel controllo che scrivi il suo valore NON si aggiorna
pertanto un eventuale DLookUp che faccia riferimento
a quel controllo NON si aggiorna fintanto che non clikki
in un punto qualunque fuori dal "pappalardo"
 
.
 
 

Dimenticavo il pezzo piu importante  :-)
 
Prova ad usare non "su modifica" bensi  "Dopo Aggiornamento"  (After Update)
 
.


ciao mancini,
ho provato di tutto, ma senza nessun risultato.
ho notato anche che se uso un caption su un etichetta, l'aggiornamento si comporta nella stessa maniera.
 
Ho usato modifica coem evento, perche volevo che il cliente una volta cliccato sulla data, avesse la modifica nel report istantaneamente.
 
E per quanto riquarda il dlookup, fa riferimento ad una tabella con campo criterio da report.
 
cmq alla fine c'ho rinunciato, non era un problema era solo una mia pignoleria.
:-)
ti ringrazio ancora mancini e se ti viene in mente altro fammi sapere

Visto che ci siamo, se possibile volevo chiederti un'altra cosa,
 
ho un problema con il nascondere il riquadro di spostamento, nel senso....nel momento che lo nascondo sia da opzioni o da codice, mi si creano errori in runtime.
 
mi spiego meglio:
ho una maschera che in una sua parte si crea in runtime, se nascondo il riquadro mi va in errore dicendomi che il db e' a sola lettura e bla bla bla.
 
cosa ne pensi?

Googleando in giro ho trovato questo
 
Const SW_HIDE = 0
Const SW_NORMAL = 1
 
Private Declare Function ShowWindow Lib "user32" _
    (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
 
Nella routine Su Apertura della maschera principale:
 
Dim hWindow As Long
Dim nResult As Long
Dim nCmdShow As Long
hWindow = Application.hWndAccessApp
nCmdShow = SW_HIDE
nResult = ShowWindow(ByVal hWindow, ByVal nCmdShow)
Call ShowWindow(Me.hWnd, SW_NORMAL)
 
ma non ho potuto provarlo perche stavo lavorando con la versione a 64bit, e sembrerebbe che non digerisca questa parte di codice. cosi' sto mettendo la 32 bit
e ti faccio sapere
grazie ancora

Per tutti coloro che magari hanno le mie stesse necessita,
 
il codice sopra funziona benissimo.
Il suo scopo e' quello di nascondere totalmente access e visualizzare solo maschere.
Attenzione le maschere vanno impostate su pop up, altrimenti non sara' visibile nulla.
 
Questo codice con le opzioni di access di nascondere i menu, e la disabilitazione del tasto shift e' un ottimo inizio per proteggere  il nostro codice.
 
Grazie a tutti per l'aiuto e spero di essere stato allo stesso tempo utile
 
Attenzione il codice non funziona su office 64 bit.
 
saluti

 Attenzione il codice non funziona su office 64 bit.
 
Finché persino la MS sconsiglia l'uso delle versioni 64 bit di Office
non adotterò il codice sul sito. Dovrebbe bastare di cambiare le
dicchiarazioni come descritto qui:
http://msdn.microsoft.com/en-us/library/office/gg264421(v=office.15).aspx
 
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 
 


Grazie karl, avevo cercato per la soluzione a 64bit, ma molto velocemente.
e grazie per aver citato la fonte me ne ero completamente dimenticato ;-) e mi scuso con l'autore....Ti devo dire la verita che rispetto a quello che dice l'articolo alla fine, mi sono trovato meglio cosi.Nascondendo il riquadro degli spostamenti mi impediva alcune funzione runtime.
Grazie ancora e ciao
alla prossima