Newsgroup: it.comp.lang.visual-basic
Titolo: per i GURU di VBA (multicasting degli eventi)

ho notato che in VB si possono creare delle procedure in un modulo di classe
che rispondano a degli
eventi e poi riutilizzarle in qualunque form, ho provato a fare la stessa
cosa con in Access con VBA ma l'evento non viene intercettato, qualcuno ha
un
suggerimento?
per chiarezza riporto una semplice prova (che non funziona)
premendo il pulsante, (non avendo impostato nessun evento su
di esso in maschera) dovrebbe comparire la message box, ma non succede
niente!
il codice:
_________________________________
'modulo di classe di nome "MyButton"
Option Compare Database
Option Explicit
Public WithEvents Pulsante As CommandButton
Private Sub Pulsante_Click()
    MsgBox "ciao"
End Sub
____________________________________
'in una form qualunque con un pulsante di nome "cmdProva":
Option Compare Database
Option Explicit
Private Pippo As MyButton
Private Sub Form_Load()
    Set Pippo = New MyButton
    Set Pippo.Pulsante= Me.cmdProva
End Sub
___________________________________________

 cosa con in Access con VBA ma l'evento non viene intercettato, qualcuno ha
Sicuro di aver inserito in Access un modulo di classe ?
Ho provato con Access 2000 nel pc dove opero , funziona !
giuseppeD
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Ho provato con Access 2000 nel pc dove opero , funziona !
assurdo, (veramente è assurdo che non funzioni sul mio) come hai fatto? hai
fatto dei cambiamenti? (io uso A2000 su W2000)
che ne diresti di spedirmi la prova per posta? (togli le lettere di
"NOSPAM") così mi rendo conto se dipende da qualche proprietà "esoterica"
impostata male nella configurazione che uso
grazie    ;)


> "bradipo" [...]:


     With Pippo
      Set .Pulsante = Me.cmdProva
      With .Pulsante
        .OnClick = "[Routine evento]"
      End With
     End With
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

funziona perfettamente, grazie!
mi domandavo se è possibile in qualche modo eliminare (o portare dentro il
modulo di classe) la riga:
....
.OnClick = "[Routine evento]"
.....
ma a prima vista non mi sembra fattibile... sono anche curioso del *perché*
in VBA non funzioni del codice che funziona invece in VB... ma il linguaggio
non è lo stesso?

....OnClick = "[Routine evento]"
suppongo non funzioni (non è una curiosità, c'è una certa probabilità che le
mie applicazioni possano venire usate con versioni di access in lingue
diverse dall'italiano)
esiste una costante "acQualcosa" che possa sostituire "[Routine evento]"?
grazie di nuovo    ;)

 linguaggio non è lo stesso?
    Il linguaggio si' che e' lo stesso. Sono invece i diversi oggetti che,
pur assolvendo alle stesse funzioni, vengono implementati in modi
differenti.


> "bradipo" [...]:

    Funziona anche:
    .OnClick = "[Event Procedure]"
e _credo_ che cosi' vada bene con qualsiasi lingua.


 differenti.
già... sarebbe bello se un giorno... ci fosse una maggiore uniformità tra i
due ambienti (ad esempio le "form" di Access e gli oggetti correlati
sembrano esporre proprietà e metodi completamente diverse da quelle dei
corrispondenti oggetti di VB)

 corrispondenti oggetti di VB)
    Guardando le cose come sono oggi io invece me ne starei zitto e buono
sperando che alla Microsoft non sentano i tuoi discorsi, anche se ormai e'
troppo tardi perche' stiamo parlando di tecnologie "vecchie".
    Lo sai, vero, che Access, Word e Excel sono nati con tre basic diversi?
Che lentamente si sono evoluti verso l'attuale VBA, in comune con VB?
Credimi, la situazione all'epoca di vb6/mso2k (che escluso .net e' poi
ancora quella attuale) poteva essere considerata una pacchia rispetto al
caos degli anni precedenti.


 caos degli anni precedenti.
già, chissà che impatto avrà 
VB.NET
 su office.... pare che ora 
VB.NET
compili solo in msil...