Newsgroup: it.comp.appl.access
Titolo: Aggiornamento automatico di un controllo

Mentre digito la singola cifra in lire, dovrei avere un controllo che si
aggiorna automaticamente con il valore in Euro.
Come si fa? L'evento Su modifica non basta.

 Se i controlli si chiamano Lire ed Euro
Su OrigineControllo di Euro metti =Lire/1936.27
...problemi di arrotondamento e di formattazione a parte :-)
Paolo

 ...problemi di arrotondamento e di formattazione a parte :-)
Il problema è che, mentre io compilo il valore in lire, contemporaneamente
si deve ricalcolare il valore nel controllo dell'euro.
Come dici tu, prima do il valore completo delle lire, poi faccio perdere il
focus al controllo delle lire e da questo momento si ricalcola in automatico
l'euro.


Devi scrivere del codice che intercetti i tasti premuti quando quel
controllo č attivo e faccia la divisione.
Non l'ho mai fatto, ma ci sono parecchi post precedenti su come intercettare
i tasti e gestire il tutto.
mmmh.... ma č una cosa che ti serve o solo della serie "vediamo se riesco a
farlo cosě?": che lo aggiorni dopo aver perso il fuoco o durante la
digitazione cosa cambia? :-)
Paolo

 Paolo
L'evento Su pressione non serve, purtroppo.
Il fatto che si aggiorni durante la digitazione, mi serve per poter vedere
immediatamente il corrispondente in Euro senza dovermi spostare dal
controllo.



non si parlava dell'evento su pressione ma dell'intercettazione dei
tasti prima degli eventi... vedi nei post precedenti ....
è impossibile che non faccia quello che vuoi tu con il relativo
codice.....
vedi vbkeycod
esempio da sistemare...
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
        Case vbKeyF4
            DoCmd.OpenForm "elencoditte"
        Case vbKeyF5
            Set db = CurrentDb()
            db.Execute ("INSERT INTO ordineandrighetti SELECT
RIG_LIST.* FROM RIG_LIST WHERE ((([RIG_LIST].[BARCODE])=""" &
Me.BARCODE & """))")
            Set db = Nothing
            DoCmd.OpenForm "Ordineandrighetti", , , "BARCODE=""" &
Me.BARCODE & """"
            Forms![Ordineandrighetti].FilterOn = True
        Case vbKeyF6
            DoCmd.OpenForm "Ordineandrighetti"
        Case vbKeyF9
            DoCmd.OpenForm "Ordineandrighetti"
            Forms![Ordineandrighetti].AllowAdditions = True
            DoCmd.GoToRecord acDataForm, "Ordineandrighetti", acNewRec
            Forms![Ordineandrighetti].[BARCODE] = "  "
            Forms![Ordineandrighetti].AllowAdditions = False
            Forms![Ordineandrighetti].[DESCR_ARTI].SetFocus
        Case 96 To 105 ' tastierino numerico
            strtrova = strtrova & Chr(KeyCode - 48)
        Case 48 To 57 ' numeri tastiera
            strtrova = strtrova & Chr(KeyCode)
        Case 8, 46 ' cancella
            If Len(Me![testoricerca].Caption) > 0 Then
                Me![testoricerca].Caption =
Left(Me![testoricerca].Caption, Len(Me![testoricerca].Caption) - 1)
            Else
                If Not (Len(strtrova) < 1) Then
                    strtrova = Left(strtrova, Len(strtrova) - 1)
                End If
            End If
        Case 65 To 90 ' tasti alfabetici
        'Me![testoricerca].ControlSource =
Left(Me![testoricerca].ControlSource,
Len(Me![testoricerca].ControlSource) - 1) & Chr(KeyCode) & """"
        Me![testoricerca].Caption = Me![testoricerca].Caption &
Chr(KeyCode) & ""
        Case vbKeyF10
        DoCmd.Quit
        Case 27 ' ESC
            strtrova = ""
            Me![testoricerca].Caption = ""
            Me.FilterOn = False
            Forms![base]![sconto]![filtroattivo].Caption = ""
            'Me.BARCODE.SetFocus
        Case vbKeyReturn
            Me.Filter = "((DESCR_ARTI Like ""*" &
Me![testoricerca].Caption & "*""))"
            If Not IsNull(Me.Filter) Then Me.FilterOn = True
            Forms![base]![sconto]![filtroattivo].Caption = "Filtro
attivo per: " & Me![testoricerca].Caption
            Me![testoricerca].Caption = ""
        Case Else
        'MsgBox KeyCode
    End Select
    On Error Resume Next
    Me.BARCODE.SetFocus
    If Len(strtrova) > 0 Then
        DoCmd.FindRecord strtrova, acStart, , acSearchAll, , , True
        If Left(Me.BARCODE, Len(strtrova)) <> strtrova Then
            Dim RetVal, i
            RetVal = Shell("C:\Programmi\Lettore
multimediale\MPLAYER2.EXE D:\Audio\_Alan Parsons project\10 - Gaudi\01
- La Sagrada Familia.mp3", vbNormalNoFocus) ' Run lettore
            i = 0
            For i = 1 To 50000
            Next i
            MsgBox " sre", vbYesNo
            AppActivate RetVal
            strtrova = Left(strtrova, Len(strtrova) - 1)
        End If
    End If
    If Len(strtrova) = 6 Then strtrova = ""
    Me.Ricercato.Caption = strtrova
End Sub
Saluti.
Emanuele.

 ha scritto nel messaggio
news:a1gv6l$6d1s$1...@stargate1.inet.it...

Ora non ho tempo per provarlo, quindi non sono sicuro: però in altri casi
simili ho risolto con l'evento 'Su modifica'...
Ciao
--
Alberto