Newsgroup: it.comp.appl.access
Titolo: funzione che non va in sottomaschera

Utilizzo la seguente funzioncina per far scorrere i records di una form 
continua con i tasti freccia.
Function TastiFrecce(KeyCode As Integer)
On Error Resume Next
If KeyCode = 40 Then
DoCmd.GoToRecord acDataForm, 
Screen.ActiveForm.name
, acNext
ElseIf KeyCode = 38 Then
DoCmd.GoToRecord acDataForm, 
Screen.ActiveForm.name
, acPrevious
End If
End Function
La funzione č richiamata su evento tasto giů, e funziona correttamente nella 
form.
Nel caso perň che la form fosse inserita come sottomaschera di un'altra 
maschera passa al record successivo della maschera principale e non della 
sottomaschera.
suggestions?
-- 
ciroteo
MC
il mio primo aforisma ...
"Se la conoscenza puň creare dei problemi, non č con l'ignoranza che
possiamo risolverli"
Isaac Asimov 


AZZ ... alex stavo proprio rileggendo il post che mi avevi mandato!
mi hai beccato!
ora ho capito xè non funzia.
sto provando con questo codice ma non gira ancora, adesso provo a riferirmi 
al bookmark
Dim rst As Recordset
    Set rst = Me.RecordsetClone
If KeyCode = 40 Then
rst.MoveNext
ElseIf KeyCode = 38 Then
rst.MovePrevious
End If

 ha scritto nel messaggio
news:d843hi$k8o$1...@hulme.interac.it...>

Fai una Funzione alla quale passi l'oggetto Form e il KeyCode.
Public Function NomeFunzione(frm as Access.Form, Code as Integer)
    With frm.RecordsetClone
    Select Case Code
        Case AVANTI
           .MoveNext
        Case INDIETRO
            .MovePrevious
        ecc.....!
    End Select
    frm.Bookmark=frm.recordsetclone.Bookmark
    Ecit Function
Err_Spostamento:
    'quì intercetta l'errore di dine Recordset
    'quindi metti un ResumeNext
End Function
Scusa se l'ho buttata li un pò in fretta ma il concetto è quello...!
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

 suggestions?
Sicuramente considera solo la form principale come attiva.
Prova con questo:
  DoCmd.GoToRecord , , acPrevious
..e se ancora non va fatti un paio di fettone di bbabbbà, vedrai il mondo
da un'altra prospettiva!
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 MC
VEdi Ciroteo questo accade a non leggere bene i POST.
Se non ricordo male la gestione di questo problema è stata
affrontata qualche settimana fà.
3D del 01/06/2005 "da Routine a funzione" ricordi.......?
Alla fine delle proposte, io ti consigliai di riflettere su questo metodo
di gestione esterna alla Form, ed il motivo era proprio questo.
Evidentemente non hai letto il mio POST, ti suggerisco di farlo.
Riassumendo però ti dicevo che questa tecnica non va bene, ma
per generalizzarla e renderla Public in un MODULO la cosa
più corretta è quella di SFRUTTARE il RecordsetClone della
Form passata come Oggetto e l'aggiornamento del BookMark del
Recordset con il BookMark della Form.
Risultato funzionante e generalizzato.
Ciao
-- 


 Namor
per il momento è quella giusta ... funziona. 

 Risultato funzionante e generalizzato.
;-) 


Ciao Matteo,
non entro nel merito della funzione ma il parametro da passare è Me.Name... 


Public Function tastifreccia(frm As Access.Form, Code As Integer)
    With frm.RecordsetClone
    Select Case Code
        Case 40
           .MoveNext
        Case 38
            .MovePrevious
    End Select
    frm.Bookmark = frm.RecordsetClone.Bookmark
    End With
    Exit Function
Err_Spostamento:


 Me.Name...
me.name
 non me lo da ... io vorrei una funzione da richiamare sempre sia che 
si tratti di form, sia che si tratti di sub form. 

 Call tastifreccia(Screen.Active.Form, KeyCode)
Se è in una SubForm non credo possa andare senza che
sposti il Focus su essa o tramite GotoControl SubFormControl
Forms!NomeForm!NomeSubForm
oppure con il SetFocus, ma sempre dalla Form...!
Fai una prova printa un MSGBOX dopo aver spostato il Focus su un Controllo
della SubForm:
Msgbox "Nome Form Attiva " & 
screen.ActiveForm.Name
MsgBox "Nome Form Controllo Attivo" & 
Screen.ActiveControl.Parent.Name
 dopo
aver


 ha scritto nel messaggio 
news:d845eq$kea$1...@hulme.interac.it...

Ciao Matteo,
non entro nel merito della funzione ma il parametro da passare è Me.Name... 

 non entro nel merito della funzione ma il parametro da passare è
Me.Name...
No, Me.Name è variabile stringa, io ho indicato Access.Form variabile
Oggetto di tipo Form, pertanto è Me e basta.


 ha scritto nel messaggio 
news:d846hq$kha$1...@hulme.interac.it...

Ciao,
 mi dici cosa a quale tasto corrisponde il 40 ed il 38 ? sinceramente non 
ricordo... 


Giusto! Ecchecavolo! ;-) 


freccia giù freccia su come se fossi in foglio tabellare che con la freccia
giù ti sposti al record successivo e con quella su al record precedente.

[CUT]
Ciao Matteo,
mi posti per favore il codice e l'evento all'interno del quale lo esegui? 
tutto quanto insomma...