473,574 Members | 5,868 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Copy FE of DB when it is already open on the server

I just recently changed my database that I'm running from a monolithic
DB to a split FE/BE. The front end resides on the client machine and
the BE resides on a network drive. I'm experimenting with a utility
developed by Tony Toews to handle the distribution and subsequent
updates of the software. I'm having some trouble with the overall
upgrade process I've implemented, and I'm hoping one of you may have
an idea how to go about fixing it.

The application works great so long as the users follow the
instructions. They click a shortcut, which used to lead to the old
monolithic database, but has since been switched out with a simple
form that explains that the system has been upgraded. The form load
event dumps a shortcut to their desktop (a shortcut made by Tony's
utility) that they then click to get into the newly split (and
upgraded from A97 to A03) application.

The first problem I'm having is that I can't seem to get my upgrade db
to correctly dump the shortcut to the desktop 100% of the time. It
works 9/10 times, but it would appear that some users have a path to
their desktop which is non conforming to the standard. If it fails, it
pops them a message to contact me and I manually send them the
shortcut. I would like this to work 100% of the time, but to do that I
would need some sort of generic path that will always lead to the
current user's desktop rather than trying to infer it based on their
user id.

The second problem is far more serious. Some of the users are a little
more technically savvy, and decide that my shortcut is not good enough
for them. They manually locate the front end of the database on the
network (the master copy that Tony's program copies out to each user)
and use that one to get in. The instant they open that master copy of
the FE, nobody else can use the regular shortcut to open the
application. This is caused (I believe) by the fact that you cannot
copy a file while it is open (at least you can't using FileCopy). One
single person opening the application the wrong way can bring the
whole thing down.

Correcting the problem by educating the users is extremely difficult
as there are just under 700 of them. They get so many e-mails and
other forms of updates that some people wouldn't end up getting the
memo, and it only takes one person to foul it up. What's made it worse
is that once it is locked up like this, the only way to open it at all
(and for them to get their work done) is to open it incorrectly by
opening up the master FE database. They found that out quick and have
been shooting e-mails all over the place letting people in on 'the
secret'.

To correct this issue, I need some way to insure that they absolutely
cannot use the master FE database. However, I can't just make it auto
close, because it still needs to be copied to the client machine. If I
modify it so that it won't open on the network, then it won't open on
their client machine either.

I've been thinking on it, and have come up with a few possible
solutions, but I wonder if any of you might have some better ideas or
comments.

Idea 1) Create a new network folder for the master FE file to exist in
by itself (as apposed to putting it in the same folder with the
backend). Give everybody in the company read only access and give
myself read/write access.

Cons: Would take up to 2 weeks to get all the paper work filled out
and the changes approved (yes, I know that is asinine.) Furthermore,
I'm not sure that it would work as people would still be able to open
it (albeit, only exclusively) and maybe even make some table updates
(?) as the BE is in a folder they would have read/write access to.

Idea 2) write a module that runs on startup to determine if there is
an ldb file in the master FE folder. If there is, attempt to delete
the .ldb file(in case it didn't auto remove itself when the last user
logged in) then close the program. The idea here is that if you log in
properly, you won't create an .ldb file in the master FE folder, but
if you did log in improperly then you will inevitably create an .ldb
file in that directory which then prompts the application to close.

Cons) I'm not really good at writing functions. I know how to copy a
file and how to delete one, but not how to simply check if one exists.
Maybe I can tinker with it and get it to work in a round about way.

Thanks in advance for any advice any of you may provide.

Oct 24 '07 #1
25 2869
First, regarding autoclose, you can easily accomplish that as follows. When
the FE is opened, check its path, using the currentproject. Path property. If
all users are to have it installed on the C drive, then just do something
like,

If Left(CurrentPro ject.Path,2)<"C :" then
msgbox "This application must be installed on the C drive. Application
will now quit.", vbcritical
application.qui t
End If

There might be a more elegant solution than the above. But that would work.

Another approach would be to rename the extension to mydb.qde or something
like that. They wouldn't know what it was. Then, when you copy it to the C
drive, rename it to mydb.mdb. That would also work.

Neil

<An***********@ bcbsmn.comwrote in message
news:11******** **************@ k35g2000prh.goo glegroups.com.. .
>I just recently changed my database that I'm running from a monolithic
DB to a split FE/BE. The front end resides on the client machine and
the BE resides on a network drive. I'm experimenting with a utility
developed by Tony Toews to handle the distribution and subsequent
updates of the software. I'm having some trouble with the overall
upgrade process I've implemented, and I'm hoping one of you may have
an idea how to go about fixing it.

The application works great so long as the users follow the
instructions. They click a shortcut, which used to lead to the old
monolithic database, but has since been switched out with a simple
form that explains that the system has been upgraded. The form load
event dumps a shortcut to their desktop (a shortcut made by Tony's
utility) that they then click to get into the newly split (and
upgraded from A97 to A03) application.

The first problem I'm having is that I can't seem to get my upgrade db
to correctly dump the shortcut to the desktop 100% of the time. It
works 9/10 times, but it would appear that some users have a path to
their desktop which is non conforming to the standard. If it fails, it
pops them a message to contact me and I manually send them the
shortcut. I would like this to work 100% of the time, but to do that I
would need some sort of generic path that will always lead to the
current user's desktop rather than trying to infer it based on their
user id.

The second problem is far more serious. Some of the users are a little
more technically savvy, and decide that my shortcut is not good enough
for them. They manually locate the front end of the database on the
network (the master copy that Tony's program copies out to each user)
and use that one to get in. The instant they open that master copy of
the FE, nobody else can use the regular shortcut to open the
application. This is caused (I believe) by the fact that you cannot
copy a file while it is open (at least you can't using FileCopy). One
single person opening the application the wrong way can bring the
whole thing down.

Correcting the problem by educating the users is extremely difficult
as there are just under 700 of them. They get so many e-mails and
other forms of updates that some people wouldn't end up getting the
memo, and it only takes one person to foul it up. What's made it worse
is that once it is locked up like this, the only way to open it at all
(and for them to get their work done) is to open it incorrectly by
opening up the master FE database. They found that out quick and have
been shooting e-mails all over the place letting people in on 'the
secret'.

To correct this issue, I need some way to insure that they absolutely
cannot use the master FE database. However, I can't just make it auto
close, because it still needs to be copied to the client machine. If I
modify it so that it won't open on the network, then it won't open on
their client machine either.

I've been thinking on it, and have come up with a few possible
solutions, but I wonder if any of you might have some better ideas or
comments.

Idea 1) Create a new network folder for the master FE file to exist in
by itself (as apposed to putting it in the same folder with the
backend). Give everybody in the company read only access and give
myself read/write access.

Cons: Would take up to 2 weeks to get all the paper work filled out
and the changes approved (yes, I know that is asinine.) Furthermore,
I'm not sure that it would work as people would still be able to open
it (albeit, only exclusively) and maybe even make some table updates
(?) as the BE is in a folder they would have read/write access to.

Idea 2) write a module that runs on startup to determine if there is
an ldb file in the master FE folder. If there is, attempt to delete
the .ldb file(in case it didn't auto remove itself when the last user
logged in) then close the program. The idea here is that if you log in
properly, you won't create an .ldb file in the master FE folder, but
if you did log in improperly then you will inevitably create an .ldb
file in that directory which then prompts the application to close.

Cons) I'm not really good at writing functions. I know how to copy a
file and how to delete one, but not how to simply check if one exists.
Maybe I can tinker with it and get it to work in a round about way.

Thanks in advance for any advice any of you may provide.

Oct 24 '07 #2
"Neil" <no****@nospam. netwrote:
>There might be a more elegant solution than the above. But that would work.
Agreed. That was going to be my suggestions. Although that wouldn't necessarily
work in a Terminal Server environment where the FE is kept on a file server. However
there could be a work around there.
>Another approach would be to rename the extension to mydb.qde or something
like that. They wouldn't know what it was. Then, when you copy it to the C
drive, rename it to mydb.mdb. That would also work.
I dunno. His users are some sneaky SOBs.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
Oct 24 '07 #3
An***********@b cbsmn.com wrote:
>The first problem I'm having is that I can't seem to get my upgrade db
to correctly dump the shortcut to the desktop 100% of the time. It
works 9/10 times, but it would appear that some users have a path to
their desktop which is non conforming to the standard.
You really want to use the API call to get this information. Which is what I use.un
the Auto FE Updater. http://vbnet.mvps.org/code/shell/desktoplink.htm

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
Oct 24 '07 #4
"Neil" <no****@nospam. netwrote:
>First, regarding autoclose, you can easily accomplish that as follows. When
the FE is opened, check its path, using the currentproject. Path property. If
all users are to have it installed on the C drive, then just do something
like,

If Left(CurrentPro ject.Path,2)<"C :" then
msgbox "This application must be installed on the C drive. Application
will now quit.", vbcritical
application.qui t
End If

There might be a more elegant solution than the above. But that would work.
Actually I'd be real tempted to launch the Auto FE Updater with the appropriate INI
file specifed using the VBA Shell function.

IOW scr*w you you SOB user the app is going to do things the correct way despite your
best means of getting around it. Hehehehe. I like that approach.

Darn, I wrote my arm I patted myself on the back so hard.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
Oct 24 '07 #5
An***********@b cbsmn.com wrote:
>The second problem is far more serious. Some of the users are a little
more technically savvy, and decide that my shortcut is not good enough
for them. They manually locate the front end of the database on the
network (the master copy that Tony's program copies out to each user)
and use that one to get in. The instant they open that master copy of
the FE, nobody else can use the regular shortcut to open the
application. This is caused (I believe) by the fact that you cannot
copy a file while it is open (at least you can't using FileCopy). One
single person opening the application the wrong way can bring the
whole thing down.
Furthermore, as soon as you open an MDB/MDE the date/time of the file changes. So
even users who are legitimately wanting to run your app a minute later get to attempt
to copy down the FE. Which of course fails. Arrrrgghhh. I can see a lot of
frustration on your part.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
Oct 24 '07 #6
"Tony Toews [MVP]" <tt****@teluspl anet.netwrote:
>>The second problem is far more serious. Some of the users are a little
more technically savvy, and decide that my shortcut is not good enough
for them. They manually locate the front end of the database on the
network (the master copy that Tony's program copies out to each user)
and use that one to get in. The instant they open that master copy of
the FE, nobody else can use the regular shortcut to open the
application . This is caused (I believe) by the fact that you cannot
copy a file while it is open (at least you can't using FileCopy). One
single person opening the application the wrong way can bring the
whole thing down.

Furthermore, as soon as you open an MDB/MDE the date/time of the file changes. So
even users who are legitimately wanting to run your app a minute later get to attempt
to copy down the FE. Which of course fails. Arrrrgghhh. I can see a lot of
frustration on your part.
Neil's suggestion might help solve this problem as the MDB file date/time might not
get changed until you actually open a form or query. Thus helping to avoid recopying
down the file using the AutoFEUpdater every time that changes.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
Oct 24 '07 #7
"Tony Toews [MVP]" <tt****@teluspl anet.netwrote:
>Actually I'd be real tempted to launch the Auto FE Updater with the appropriate INI
file specifed using the VBA Shell function.
Just to make that clear. If you look at the properties >Target of a shortcut
created by the Auto FE Updater you will see a line similar to

Q:\1_vb\StartMD B\StartMDB.exe /cmd /inifile:"Q:\1_v b\StartMDB\Driv e Letter
example.ini"

Please your equivalent in the Shell function line.
>Darn, I wrote my arm I patted myself on the back so hard.
Hurt not wrote.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
Oct 24 '07 #8
<An***********@ bcbsmn.comwrote in message
news:11******** **************@ k35g2000prh.goo glegroups.com.. .
>
The second problem is far more serious. Some of the users are a little
more technically savvy, and decide that my shortcut is not good enough
for them. They manually locate the front end of the database on the
network (the master copy that Tony's program copies out to each user)
and use that one to get in. The instant they open that master copy of
the FE, nobody else can use the regular shortcut to open the
application.
Have you considered implementing user-level security? Unless your users are
*very* Access savvy and have some lock picking tools then it will keep them
from doing this.
>
Correcting the problem by educating the users is extremely difficult
as there are just under 700 of them.
Getting users to use an app *your* way is nigh on impossible I'd say.
>
Idea 1) Create a new network folder for the master FE file to exist in
by itself (as apposed to putting it in the same folder with the
backend). Give everybody in the company read only access and give
myself read/write access.
This, coupled with ULS is what I use and it's been flawless for as long as I
can remember. Why do you need any paperwork to change file permissions? If
your IT provider has removed the security table from file properties, you
might still be able to control permissions from a DOS prompt using Access
Control Lists. Type "cacls" at a DOS prompt for more information.

Regards,
Keith.
www.keithwilby.com

Oct 24 '07 #9
On Oct 23, 9:02 pm, Andy_Khosr...@b cbsmn.com wrote:
Correcting the problem by educating the users is extremely difficult
as there are just under 700 of them.
I'm not really good at writing functions.
When I deliver an application I deliver it to the IT department. Its
members install it. I have no authority or permissions to install
anything, and would probably not get any more contracts if I tried.

Perhaps, your organization should consider giving you more help. IMO,
if "your" database is helping 700 users, and you're "not really good
at writing functions" some paid-for training sound like a good idea to
me. And surely it would be worthwhile to have someone, or multiple
someones to deal with those network and associated problems you
describe, that go beyond db development.

When I make an application available to a group of friends in a more-
or-less informal manner, I generally put it on the net as a self-
extracting zip file and send them the link. (There are free
utilities , eg IZArc, that create self-extracting zips; the utility is
not required for the extracting part.) I may change the extension
to"dat" to help with security, but I'm not sure that helps anymore.


Oct 24 '07 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
2387
by: Rachel Suddeth | last post by:
This may not be the right forum, but it's a problem I chiefly come across when trying to post here. When I do a copy/paste from VS, the text always looks really weird (and even if I'm in an editor that's supposed to be doing plain text, it looks like it's in a different font -- and of course you can't change the font in a plain text...
3
1150
by: Selden McCabe | last post by:
I have a new web server, somewhere on the Internet. I have remote desktop sharing set so I can fully access the machine via Netmeeting. The server has IIS and is already hosting a few web sites and FTP sites. I've created a folder on the local hard drive, and created a new virtual directory in IIS pointing to this folder. When I do a Copy...
3
2179
by: Johnny | last post by:
Hi, I have created an ASP.NET application (let's call it FooBar) with VS.NET on my local machine, residing in http://localhost/FooBar. Deploying it to another folder on my machine works well with FrontPage Server Extensions, but I don't manage to deploy the application to my web provider http root folder. When I run Copy Project, I get...
2
1969
by: camp | last post by:
I use VS.Net 2003 on Win XP Pro SP2. I created an ASP.Net app on local IIS. Now I just wanted to "Copy Project" to remote server, but I get this error: "An error occured while copying the project 'http://localhost/MyApp/MyApp.csproj'. The web sever reported the following error when attemptimg to create or open the web project located at...
7
11608
by: lgbjr | last post by:
Hello All, I¡¯m using a context menu associated with some pictureboxes to provide copy/paste functionality. Copying the image to the clipboard was easy. But pasting an image from the clipboard is proving to be more difficult. These pictureboxes are bound to an AccessDB. If the user wants to add an image, they select an image using an...
9
2405
by: CGW | last post by:
I asked the question yesterday, but know better how to ask it, today: I'm trying to use the File.Copy method to copy a file from a client to server (.Net web app under IIS ). It looks to me that when I give a path like @"C:\holdfiles\myfile.txt" it looks on the server C drive. How do I pull from the client? Do I need a different class and/or...
0
2593
by: Paul Brady | last post by:
I volunteer at a youth ministry agency and help them with their student database. They have two computers, both running Windows XP. Both have Office 2002 installed without Access, except that Computer A had A97. They wanted both computers to be able to use the database, stored on Computer A. I can't get them to do that, and it seems to be...
9
15119
by: fniles | last post by:
I would like to copy a table(s) from SQL Server 2005 to a CVS file and vice versa. I was thinking to use the BCP command line utility, but I have a few questions: 1. The machine where I am going to run BCP utility does not have SQL Server installed, so BCP.exe and its underlying DLLs are not there. I copied BCP.EXE, then it tells me that...
10
6950
by: happyse27 | last post by:
Hi All, I got this apache errors(see section A1 and A2 below) when I used a html(see section b below) to activate acctman.pl(see section c below). Section D below is part of the configuration of section c. Not sure where went wrong as the web page displayed internal server error. Also, what is the error 543? and error 2114....
0
7826
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
0
8085
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
0
8259
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
1
7838
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
6491
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then...
0
3781
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2257
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1362
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
1090
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.