[AccessD] Off the wall Events question...

Patricio Galleguillos pgalleguillos at plus.cl
Thu Feb 13 07:48:00 CST 2003


Hi Shamil and Group

>But SysCmd(acSysCmdAccessVer) can't help to answer the subject's
question...

No, it does not, it is just to avoid using the scissors in design time
when you change versions. Apologize for not staying focused... or more
cryptic:

Me.LostFocus = True

Saludos cordiales,
Patricio Galleguillos




-----Mensaje original-----
De: accessd-admin at databaseadvisors.com
[mailto:accessd-admin at databaseadvisors.com] En nombre de Shamil
Salakhetdinov
Enviado el: jueves, 13 de febrero de 2003 9:49
Para: accessd at databaseadvisors.com
Asunto: Re: [AccessD] Off the wall Events question...

> You can know at runtime your access version with..
Sure you can, Patricio,


Shamil

----- Original Message -----
From: "Patricio Galleguillos" <pgalleguillos at plus.cl>
To: <accessd at databaseadvisors.com>
Sent: Thursday, February 13, 2003 2:28 PM
Subject: RE: [AccessD] Off the wall Events question...


> Hi Shamil and group
>
> You can know at runtime your access version with
>
>     VersionDelAccess = SysCmd(acSysCmdAccessVer)
>
> (Don't know if syscmd works in access97)
>
> Saludos cordiales,
> Patricio Galleguillos
>
>
> -----Mensaje original-----
> De: accessd-admin at databaseadvisors.com
> [mailto:accessd-admin at databaseadvisors.com] En nombre de Shamil
> Salakhetdinov
> Enviado el: jueves, 13 de febrero de 2003 7:40
> Para: accessd at databaseadvisors.com
> Asunto: Re: [AccessD] Off the wall Events question...
>
> > So, does anyone know how to accomplish the same thing in Access 97.
> Drew,
>
> It looks a little bit ugly but it can be done in Acc97 and ported to
> A2K/AXP/A11 with just a few edits of the source code - here is one of
> the
> ways to do it:
>
> '================  cut here ==================
> '+ CMyClassWithEvents (custom class module)
> #Const Acc97 = 1 ' change to 0 in A2K/AXP/A11
> #If Acc97 Then
> Private mobjCallBackClient As Object
>
> Public Sub Init(ByRef robjCallBackClient As Object)
>     Set mobjCallBackClient = robjCallBackClient
> End Sub
> Public Sub Terminate()
>     Set mobjCallBackClient = Nothing
> End Sub
> #Else
> 'Event MyEvent() ' uncomment in A2K/AXP/A11
> #End If
>
> Public Sub CallBackTest()
> #If Acc97 Then
>     mobjCallBackClient.MyEvent
> #Else
>     'RaiseEvent MyEvent  ' uncomment in A2K/AXP/A11
> #End If
> End Sub
> '- CMyClassWithEvents
>
> '================  cut here ==================
> '+ CMyCustomsEventsClient (custom class module)
> #Const Acc97 = 1 ' change to 0 in A2K/AXP/A11
>
> #If Acc97 Then
> Private mobjMyClassWithEvents As CMyClassWithEvents
> #Else
> Private WithEvents mobjMyClassWithEvents As CMyClassWithEvents
> #End If
>
> Public Sub Test()
>    Set mobjMyClassWithEvents = New CMyClassWithEvents
>    With mobjMyClassWithEvents
>      #If Acc97 Then
>       .Init Me
>       .CallBackTest
>       .Terminate
>      #Else
>       .CallBackTest
>      #End If
>    End With
> End Sub
>
> Private Sub mobjMyClassWithEvents_MyEvent()
>     MsgBox "MyEvent fired!", vbOKOnly + vbInformation
> End Sub
>
> #If Acc97 Then
> Public Sub MyEvent()
>     mobjMyClassWithEvents_MyEvent
> End Sub
> #Else
> #End If
> '- CMyCustomsEventsClient
>
> '================  cut here ==================
> '+ basTest (standard module)
> Public Sub a_test()
>     Dim o As CMyCustomsEventsClient
>     Set o = New CMyCustomsEventsClient
>     o.Test
> End Sub
> '- basTest
> '================  cut here ==================
>
> - Of course you can set project level conditional compilation constant
> Acc97
> to have less work during your port to A2k/Axp/A11;
> - Unfortunately Event and RaiseEvent are reserved words in Acc97 and
> even
> conditional compilation doesn't allow to use them without comments -
so
> during port to A2k/Axp/A11 additional work of uncommenting code lines
> with
> RaiseEvent and Event will be needed...;
> - I did use very simple custom event without any arguments to show the
> principle - in the case of the usage of event arguments callback
methods
> can
> be specific for every custom event or this technique can use more
> general
> callback method with EventName as the first paramater and ParamArray
> following it and Select Case inside it to call specific private custom
> event
> sinks ...;
> - Init method is what MS Access does "behind the curtains" when you
use
> WithEvents;
> - Terminate method is a MUST HAVE for this custom events Acc97
> simulation -
> without it object instances will not be released because of cross-refs
> and
> you'll get memory leak....
>
> HTH,
> Shamil
>
>
> ----- Original Message -----
> From: "Drew Wutka" <DWUTKA at marlow.com>
> To: <AccessD at databaseadvisors.com>
> Sent: Thursday, February 13, 2003 7:49 AM
> Subject: [AccessD] Off the wall Events question...
>
>
> > With all of the posts about events recently, something just dawned
on
> me.
> > Actually, it came crashing down on me.
> >
> > I have been rewriting my MiniCalendar form lately.  My original
works,
> but
> > is far from elegant, or even slick.  I had visualized a lot of
changes
> I
> > wanted to incorporate, and just starting wacking at them all.
> >
> > So far I have gotten some neat 'features', such as a rounded form,
> extended
> > dropdown capability, etc.  However, one of the new features that I
had
> > planned on, I now know I can't do directly.  The old form accepted a
> form
> > name and control name, and would return a date to that control.
What
> I
> > wanted to use in this version was raiseevent, to fire an event on
the
> > calling form.  Thinking in VB 6 mode, I didn't even realize this
would
> be
> a
> > problem with Access 97, since I can do this easily in VB 6.  But
with
> all
> of
> > the recent posts, I realized that event and raiseevent are reserved
> keywords
> > in Access 97 (VBA 5.0), but do nothing.
> >
> > ARG!!!!
> >
> > So, does anyone know how to accomplish the same thing in Access 97.
I
> will
> > be making a 2000 version of my calendar, so obviously I can use
event
> and
> > raiseevent there, but I am developing the new version in 97 first,
so
> I
> need
> > a work around.  I am thinking about using one of the form's current
> events,
> > and triggering it.  (Probably AfterUpdate).  I wanted my own event,
> but
> that
> > doesn't look possible.  I even tried hunting through the VBA .dll's,
> to
> see
> > if I could fudge an API or two, but no luck there.
> >
> > Any thoughts?
> >
> > Drew
> > _______________________________________________
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
>
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
>
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com

_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com





More information about the AccessD mailing list