JWColby
jwcolby at colbyconsulting.com
Sat Apr 21 14:37:37 CDT 2007
Thanks for that. I just checked out this solution and while it does function, it appears to have some serious limitations, specifically that it can only monitor one directory, and apparently that it can pretty much do nothing else. The reason is that VBA is single threaded, and this code is a tight loop with a DoEvents to allow the appearance of normalcy. However it really doesn't allow anything else to function. I tried to make this a class so that I could then do two (or more) instances. The first instance starts up but the second instance is not allowed to instantiate, with a "the macro or validation rule prevents..." error thrown in the event of the text box that tries to set up the second instance. In essence it appears that this would work just fine in limited situations where you just want an application to monitor a directory, do something specific, then go right back to the monitor loop, however it may completely prevent a broader application from functioning after the loop is started. One of the things I am trying to do is to start slowly doing some VB.Net development. I have a handful of things that really don't "fit" Access as a development tool, e.g. running things as services. I am also doing a lot more stuff directly out in SQL Server 2005, and I want the ability to run a powerful programming language that more directly talks to SQL Server, and also does not require a copy of Access installed in order to operate. VB.Net will give me that if I can ever get it figured out (I just need the TIME!). The .Net code basically listens for EVENTS from a DotNet DiskWatcher object. I haven't gotten so far as to determine whether when wrapped as a COM object it can be used more than once from inside of Access. The Web Seminar left out the critical (written) instructions for compiling and registering the com object, though the instructions are in the video, so I am headed back to watch that portion of the video again. John W. Colby Colby Consulting www.ColbyConsulting.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of MartyConnelly Sent: Saturday, April 21, 2007 1:31 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Cool stuff - was RE: using a dtsx in .Net You could use these Visual Basic 6.0 File API Routines in VBA FindFirstChangeNotification: Randy Birch does a good job on error checking Might have to run in a hidden form Create a 'Watched' Folder http://vbnet.mvps.org/index.html?code/fileapi/watchedfolder.htm JWColby wrote: >ROTFL. Yea, I kinda thought so. > >I have so little patience with ... uh... Stupidity. > >On another more positive note, I watched a virtual lab tonight - part >of the Visual Studio 2005. This lab is "using worker threads in VB.Net >to make your application more responsive to the user". It is really >cool, but as it turns out, the demo they use is also exactly what I was >looking for - a directory watcher which is a com object that can be >used from VB6. Now to be honest, I don't do VB6 but it looks like this >might also be usable from VBA. It is a referencable object that >sources events, and may allow me to do directory watching from inside >of Access - WITHOUT having to use a timer on a form. How cool would that be? > >VB.Net is really a cool thing; Too bad I don't understand it better. I >have to say though that having done the class stuff I do in Access, I >absolutely do understand everything they are talking about in this >demo, I just don't understand all the syntax (couldn't write it >myself). It is so strange though, just today I was looking for code to "watch a directory for files" >and here it is. Even better, the lab counts towards getting the free >copy of Visual Studio 2005. > >So much to learn, so little time. > >John W. Colby >Colby Consulting >www.ColbyConsulting.com > > -- Marty Connelly Victoria, B.C. Canada -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com