Newsgroup: it.comp.appl.access
Titolo: routine su sito comune

la routine sul sito comune di Lorenzo fa la seguente cosa?
ho una maschera con 5 pulsanti ai quali sono associati 5 eventi diversi
tramite codice. Tramite una selezione multipla li seleziono tutti e 5 poi
premo CTRL+C, apro una seconda maschera premo CTRL+V e vengono incollati con
le stesse associazioni di eventi? Se é così, é sufficiente copiare il codice
su un modulo, ma poi come faccio ad associarlo al tasto CTRL+C. Grazie
Matteo


Mi rispondo da solo perché rileggendo il quesito non capisco niente di ciò
che ho postato, scusate pertanto riformulo la domanda.
Come faccio ad associare il modulo di Coronati sul sito comune ai tasti
CTRL+C e CTRL+V? Ho creato una macro ed ho messo associato il modulo, ma
quando vado nella maschera per copiare premendo CTRL+C il tasto é associato
alla vecchia istruzione di default. Grazie

alla vecchia istruzione di default. Grazie
La macro deve essere autokeys, non una qualsiasi, e nella
colonna nome devi metterci ^C
Vedi l'help su autokeys per i dettagli.
--
Lorenzo Coronati
--
<<Si perché forse Ilbo (ed altri come lui) sono 
convinti che noi poveri principianti (nel senso 
ironico) scrivano le domande senza pensare.>>
(Ivan Lelli, 25/08/2000)
--


non riesco a far funzionare la routine per copiare i controlli di una
maschera. Ho fatto la seguente operazione: ho creato un modulo chiamato
"copiaincolla"
Option Compare Database
Option Explicit
Public ControlToIntelliCopy As Control
Public CodeToIntelliCopy As String
Public Function IntelliCopy()
   'questa routine copia un controllo da una form con tutto il codice
'associato, per incollare il tutto in un'altra form con IntelliPaste
   On Error GoTo annulla
   Set ControlToIntelliCopy = Screen.ActiveControl
   CodeToIntelliCopy = ""
   Dim n As String
   n = "Sub " & ControlToIntelliCopy.Name & "_"
   Dim f As Form
   Set f = Screen.ActiveForm
   Dim m As Module
   Set m = f.Module
   Dim ir As Long, ic As Long, fr As Long, fc As Long, rigai As Long, rigaf
As Long
   Do While m.Find(n, ir, ic, fr, fc)
       rigai = ir: fr = 0: fc = 0
       If m.Find("End Sub", ir, ic, fr, fc) Then rigaf = fr
       CodeToIntelliCopy = CodeToIntelliCopy & m.Lines(rigai, Abs(rigaf -
rigai) + 1) & vbCrLf
       fr = 0: fc = 0
   Loop
   Exit Function
annulla:
   MsgBox "Si e' verificato un problema." & vbCrLf & "Codice di errore " &
Err.Number, vbCritical + vbOKOnly, "IntelliCopy"
End Function
Public Function IntelliPaste()
   'questa routine incolla nella form attiva un controllo copiato 'con
IntelliCopy, con tutto il codice associato On Error Resume Next
   On Error Resume Next
   Dim f As Form
   Set f = Screen.ActiveForm
   Dim c As Control
   Set c = CreateControl(f.Name, ControlToIntelliCopy.ControlType)
   Dim p As Long
   For p = 0 To ControlToIntelliCopy.Properties.Count - 1
       c.Properties(p) = ControlToIntelliCopy.Properties(p)
   Next p
   Dim m As Module
   Set m = f.Module
   m.InsertLines m.CountOfLines + 1, CodeToIntelliCopy
End Function
quindi ho creato due macro chiamate "copia controlli" - nome macro ^C -
azione EseguiCodice - nome funzione IntelliCopy()
e l'altra "incolla controlli" - nome macro ^P - azione EseguiCodice - nome
funzione IntelliPaste()
NON FUNZIONA!
se clicco sulla macro Copia controlli mi viene il seguente messaggio:Si é
verificato un problema. Codice di errore 2474.
Cosa devo fare?
grazie

Cosa devo fare?
Devi fare come ti ho detto.
La funzione deve essere attivata quando selezioni il ctl che
vuoi copiare, tramite combinazione di tasti.
