Thom: The line
Application.VBE.ActiveProjects.VBComponents.Import ("path/name of module")
works in Excel, but appears to have a problem in BWS. The Microsoft knowledge
database points to a security issue if it doesn't work in Excel.
If this is a case of upgrading the security in BWS, perhaps this could be put
in the hopper for the next release. This would allow a straightforward use of
reusable code in a common repository. The Import and Remove methods could both
be used to access the most recent common code. The Remove at the end of the
script would be used to require a reload upon startup, thereby ensuring current
common code.
Neal Quinn
Montefiore Medical Center
----- Original Message -----
From: Thom C. Blackwell
To: [email protected]
Sent: Thursday, January 31, 2008 1:53 PM
Subject: RE: [Talk] LoadScript Routine
Greetings,
I was worried about that myself - just tried it by adding Shutdown=true to
the loadscript. It appears that when the import happens, it also "saves" the
project.
Regards,
Thom
Thom C. Blackwell
Product Manager
Boston Software Systems
(866) 653-5105 ex 807
www.bossoft.com
Visit us in Booth 2471 at HIMSS08 - February 25-28 in Orlando, FL
Sign up for my weekly webinar!
LEGAL NOTICE Unless expressly stated otherwise, this message is confidential
and may be privileged. It is intended for the addressee(s) only. Access to this
E-mail by anyone else is unauthorized. If you are not an addressee, any
disclosure or copying of the contents of this E-mail or any action taken (or
not taken) in reliance on it is unauthorized and may be unlawful. If you are
not an addressee, please inform the sender immediately, then delete this
message and empty from your trash.
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Lawrence,
Mitchell
Sent: Thursday, January 31, 2008 12:29 PM
To: [email protected]
Subject: RE: [Talk] LoadScript Routine
Ok. I think I might see a way to make it as painless as possible then.
I've got a default project that is in a central location. I could move the
base functions in that project from the main module into a "Common" module,
then also copy/paste everything in that module into a Common.bas file in the
same directory as the default project.
When I do my updates or new additions to the "Common" module, I could just do
them in the default project and the Common.bas file and then run the loadScript
(I'll likely rename it. heh.) to update the "Common" module in each region's
project from the Common.bas, right? Or am I misreading this. Does the Common
module get updated and the project saved??? If it doesn't then I don't really
see the whole point of the loadScript.
Thank you,
Mitch Lawrence
Lead Applications Analyst
Technical Support - NPR/Automation
CHRISTUS Information Management
T: [EMAIL PROTECTED]
Send a "thank you" to someone!
------------------------------------------------------------------------------
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Thom C.
Blackwell
Sent: Thursday, January 31, 2008 10:57 AM
To: [email protected]
Subject: RE: [Talk] LoadScript Routine
Greetings,
Mitch and I exchanged some further emails-figured I'd respond to the group
what is going on.
Here's the problem. When VB runs a sub routine, it does a quick syntax check
of that routine. Since the Common module has not been loaded, there is no such
sub routine as PopupScreen in the project, so VB will rightfully generate a
Sub or Function Not Found error.
There is not a way to do an "Include" in VB (well at least I don't know how
and I've asked folks who would know) - where you just say hey- I am going to
call a sub routine - yeah it's not here now, but I'm going to get it from here
so VB, it's ok chill out.
So this importing stuff is not <exactly> the answer you are looking for.
Here's my suggestion.
The importing is useful if you are going to be modifying the common module
and want those changes to "automatically" update across multiple projects (so a
common login routine for example and you need to change menu options etc.
But.
You will have to have import the module when you start development in the new
project (which you'd need to do anyhow for building /testing your script).
If every single script you are ever going to create will need this code(or
most will anyhow) you could create yourself a "shell project" that has the code
you want in it. Put the LoadScript routine in its own module, and have the
Common.bas in there as well. Then save this project as Default.BWS in c:\bss70.
Then rename it using windows explorer to Default.BWD and voila every new
project you build will have this code.
It will still be up to the script to call LoadScript.
Regards,
Thom
Thom C. Blackwell
Product Manager
Boston Software Systems
(866) 653-5105 ex 807
www.bossoft.com
Visit us in Booth 2471 at HIMSS08 - February 25-28 in Orlando, FL
Sign up for my weekly webinar!
LEGAL NOTICE Unless expressly stated otherwise, this message is confidential
and may be privileged. It is intended for the addressee(s) only. Access to this
E-mail by anyone else is unauthorized. If you are not an addressee, any
disclosure or copying of the contents of this E-mail or any action taken (or
not taken) in reliance on it is unauthorized and may be unlawful. If you are
not an addressee, please inform the sender immediately, then delete this
message and empty from your trash.
From: Lawrence, Mitchell [mailto:[EMAIL PROTECTED]
Sent: Thursday, January 31, 2008 11:42 AM
To: Thom C. Blackwell
Subject: RE: LoadScript Routine
Here is what I have right now. Common.bas is located in C:\
Thank you,
Mitch Lawrence
Lead Applications Analyst
Technical Support - NPR/Automation
CHRISTUS Information Management
T: [EMAIL PROTECTED]
Send a "thank you" to someone!
------------------------------------------------------------------------------
From: Thom C. Blackwell [mailto:[EMAIL PROTECTED]
Sent: Thursday, January 31, 2008 10:38 AM
To: Lawrence, Mitchell
Subject: LoadScript Routine
Greetings,
Does your project have this code in the scripts module? I'm going to lobby
for this to be a command btw. because now each project that needs to load the
common module also needs to have this code (which would not be in c:\
Common.bas).
Regards,
Thom
Sub loadScripts()
Dim p As Object
Set p = Share("VBProject").VBE.VBProjects(1)
'Remove old code
myimport = "Common"
For i = 1 To p.VBComponents.Count
If InStr(p.VBComponents.Item(i).Name, myimport) Then
p.VBComponents.Item(i).Name = "temp"
p.VBComponents.Remove p.VBComponents.Item(i)
Share("VBProject").VBE.CommandBars("Standard").Controls(3).Execute
End If
Next i
p.VBComponents.Import "c:\Common.bas"
Share("VBProject").VBE.CommandBars("Standard").Controls(3).Execute
End Sub
Thom C. Blackwell
Product Manager
Boston Software Systems
(866) 653-5105 ex 807
www.bossoft.com
Visit us in Booth 2471 at HIMSS08 - February 25-28 in Orlando, FL
Sign up for my weekly webinar!
LEGAL NOTICE Unless expressly stated otherwise, this message is confidential
and may be privileged. It is intended for the addressee(s) only. Access to this
E-mail by anyone else is unauthorized. If you are not an addressee, any
disclosure or copying of the contents of this E-mail or any action taken (or
not taken) in reliance on it is unauthorized and may be unlawful. If you are
not an addressee, please inform the sender immediately, then delete this
message and empty from your trash.
<<image001.jpg>>
