|
security
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
problem with a batch file wkgrp parameterI have posted several times trying to get help with attaching a database to a mdw file. I have read the microsoft information and I seem to be doing everything correctly. I have tried both a batch file and the easy updater. I can attach the security file through a shortcut using the following code "C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" "D:\Program Files\PC\PCtrlA.mdb" /WRKGRP "K:\PositionControl\ReadOnly\Sec\pcsec.mdw" But I use the same configuration in a batch file and it does not work. It goes all the way through the procedure, but then it tells me I do not have permission to use the database. The same security file works in the shortcut above. What's wrong? Any ideas? Below is the batch file, and I have used it taking out all of the variables which you see in the bottom version, as well as as this version: REM A batch file to update a MS Access database then run it under a secure workgroup REM by Keith Harvey 09/2000 - har***@hunterlink.net.au REM **** USER ACCEPTS ALL RISKS WHEN USING THIS BATCH FILE **** REM **** STOP MESSAGES, CLEAR SCREEN, KEEP USER INFORMED **** ECHO off CLS ECHO. ECHO Starting Your Front End. Should only take a few seconds ECHO. REM Note that the variables and the batch file name MUST be customised for each database REM ***** ABOUT THE VARIABLES ******. REM PGRM is the variable for the file name of your current Front_End.mdb. REM When updating the version of the Front End simply change PGRM and resave the batch file REM (Note: PGRM must also fit the LOCDEL naming pattern below so old versions delete OK.) REM LOCDIR is the directory on the Client PC that will hold the working version of PGRM REM LOCDEL is the pattern of files to delete in LOCDIR if the latest version REM of PGRM can't be found (Note that the value of LOCDEL is case sensitive) REM (Vital Note: TRIPLE CHECK the items you assign to LOCDIR and LOCDEL. Delete is REM VERY unforgiving. NEVER EVER set LOCDIR to just C: or LOCDEL to *.*) REM MSACC is the dos path to MS Access on the local PC. REM SRVDIR is the directory on the Server to get the latest version of PGRM from. REM WKGRP is the location of the access secure workgroup to use. (Note. Leave WKGRP blank REM if you are using the standard MSAccess work group) REM ***** THE VARIABLES ***** set PGRM=PCtrlA.mdb set LOCDIR="D:\Program Files\PC" set LOCDEL=PCtrl*.mdb set MSACC="C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.exe" set SRVDIR="K:\PositionControl\ReadOnly\PC" set WKGRP=/wrkgrp "K:\PositionControl\ReadOnly\Sec\pcsec.mdw" REM ***** COPY YOUR CURRENT FRONT END TO THE PC CLIENT ***** REM Check if the local directory LOCDIR exist's, if not then create it REM If current version of PGRM does not exist in LOCDIR then: REM 1. Keep the customers happy! REM 2. Delete any old versions of PGRM from LOCDIR, REM 3. Copy the new version of PGRM to LOCDIR if not exist %LOCDIR% md %LOCDIR% pause if not exist %LOCDIR%\%PGRM% echo Updating to the latest version of %PGRM% pause REM if not exist %LOCDIR%\%PGRM% del %LOCDIR%\%LOCDEL% if not exist %LOCDIR%\%PGRM% copy %SRVDIR%\%PGRM% %LOCDIR%\%PGRM% REM **** FINALLY, START THE LATEST VERSION OF THE FRONT END ON THE PC ****** START /MAX %MSACC% %LOCDIR%\%PGRM% %WKGRP% REM **** CLOSE THE MSDOS WINDOW **** cls ________________________________________________________________________________________ OR ______________________________________________________________________________________ if not exist "D:\Program Files\PC" md "D:\Program Files\PC" pause if not exist "D:\Program Files\PC\PCtrlA.mdb" echo Updating to the latest version of PCtrlA.mdb pause if not exist "D:\Program Files\PC\PCtrlA.mdb" copy "K:\PositionControl\ReadOnly\PC\PCtrlA.mdb" "D:\Program Files\PC\PCtrlA.mdb" REM **** FINALLY, START THE LATEST VERSION OF THE FRONT END ON THE PC ****** START /MAX "C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.exe" "D:\Program Files\PC\PCtrlA.mdb" /wrkgrp "K:\PositionControl\ReadOnly\Sec\pcsec.mdw" REM **** CLOSE THE MSDOS WINDOW **** cls azpat wrote:
> I have posted several times trying to get help with attaching a database to Hon, you should have posted your question in the Microsoft Access newsgroups,> a mdw file. not the private Access forums you find on the web. The majority of Access experts answer questions in the newsgroups, not those private web forums. Most questions are answered here correctly within a few hours of posting, so you could've saved yourself a week of wild goose chases if you'd come here first. > What's wrong? The short answer is you're using the wrong syntax in your batch file. Youdid an excellent job on the code. It just needs two lines fixed, and then it should work perfectly for you (unless you have to deal with Macro Security, but that's a whole 'nuther barrel of monkeys). The "START /MAX" command in the batch file tells the operating system, "Use the default action, no matter what it is, on the file that follows the executable." So the operating system finds that D:\Program Files\PC\PCtrlA. mdb follows, and then checks the Registry, which happens to have C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.exe registered to open this type of file. The default action for this executable on your operating system (and almost everyone else's) is to open the file without any command line arguments. Since you're currently joined to a workgroup information file that isn't the secured workgroup information file used to secure the database, the file is being opened with the default Admin user, who doesn't have permission to open this secured database. The good news is that if you can't open the database with the default Admin user, it was probably secured properly (which isn't all that common of an occurrence). You need to remove the "START /MAX" command, but even then it won't work correctly, because the LOCDIR variable contains double quotation marks and this variable is being concatenated with a backslash and another variable containing the file name to get the full path and file name with %LOCDIR%\% PGRM%. Like this: "D:\Program Files\PC"\PCtrlA.mdb And you can't remove those double quotes, because that won't work correctly, either. (Access will complain that Access doesn't recognize the command line option, and it can't find D:\Program.mdb would be my guess, because a space in the list of command line arguments means "the next string of characters is going to be the next parameter.") Does that mean you can't use a batch file for this task? No. It just means you have to do extra work, hon, because you're stuck with a bad directory name. To fix this batch file, create a new variable and assign the full path and file name to it, like this: SET LOCFIL="D:\Program Files\PC\PCtrlA.mdb" And then change this line: START /MAX %MSACC% %LOCDIR%\%PGRM% %WKGRP% To this: %MSACC% %LOCFIL% %WKGRP% Save it and run your batch file. Just wanted to say Thank you! I learned so much! It's nice to have someone
who really knows there stuff. Just want you to know I appreciate your time and efforts!! Pat Granny Spitz wrote: Show quoteHide quote >> I have posted several times trying to get help with attaching a database to >> a mdw file. > >Hon, you should have posted your question in the Microsoft Access newsgroups, >not the private Access forums you find on the web. The majority of Access >experts answer questions in the newsgroups, not those private web forums. >Most questions are answered here correctly within a few hours of posting, so >you could've saved yourself a week of wild goose chases if you'd come here >first. > >> What's wrong? > >The short answer is you're using the wrong syntax in your batch file. You >did an excellent job on the code. It just needs two lines fixed, and then it >should work perfectly for you (unless you have to deal with Macro Security, >but that's a whole 'nuther barrel of monkeys). > >The "START /MAX" command in the batch file tells the operating system, "Use >the default action, no matter what it is, on the file that follows the >executable." So the operating system finds that D:\Program Files\PC\PCtrlA. >mdb follows, and then checks the Registry, which happens to have C:\Program >Files\Microsoft Office\OFFICE11\MSACCESS.exe registered to open this type of >file. The default action for this executable on your operating system (and >almost everyone else's) is to open the file without any command line >arguments. Since you're currently joined to a workgroup information file >that isn't the secured workgroup information file used to secure the database, >the file is being opened with the default Admin user, who doesn't have >permission to open this secured database. > >The good news is that if you can't open the database with the default Admin >user, it was probably secured properly (which isn't all that common of an >occurrence). > >You need to remove the "START /MAX" command, but even then it won't work >correctly, because the LOCDIR variable contains double quotation marks and >this variable is being concatenated with a backslash and another variable >containing the file name to get the full path and file name with %LOCDIR%\% >PGRM%. Like this: > >"D:\Program Files\PC"\PCtrlA.mdb > >And you can't remove those double quotes, because that won't work correctly, >either. (Access will complain that Access doesn't recognize the command line >option, and it can't find D:\Program.mdb would be my guess, because a space >in the list of command line arguments means "the next string of characters is >going to be the next parameter.") > >Does that mean you can't use a batch file for this task? No. It just means >you have to do extra work, hon, because you're stuck with a bad directory >name. To fix this batch file, create a new variable and assign the full path >and file name to it, like this: > >SET LOCFIL="D:\Program Files\PC\PCtrlA.mdb" > >And then change this line: > >START /MAX %MSACC% %LOCDIR%\%PGRM% %WKGRP% > >To this: > >%MSACC% %LOCFIL% %WKGRP% > >Save it and run your batch file. azpat wrote:
> Just wanted to say Thank you! I learned so much! It's nice to have someone Oh, dear! I hadn't realized that my reply to this message hadn't posted the> who really knows there stuff. Just want you to know I appreciate your time > and efforts!! other day. My apologies for my tardiness. You're very welcome, and thank you for the feedback. I really appreciate it! Just wanted to say Thank you! I learned so much! It's nice to have someone
who really knows there stuff. Just want you to know I appreciate your time and efforts!! Pat Granny Spitz wrote: Show quoteHide quote >> I have posted several times trying to get help with attaching a database to >> a mdw file. > >Hon, you should have posted your question in the Microsoft Access newsgroups, >not the private Access forums you find on the web. The majority of Access >experts answer questions in the newsgroups, not those private web forums. >Most questions are answered here correctly within a few hours of posting, so >you could've saved yourself a week of wild goose chases if you'd come here >first. > >> What's wrong? > >The short answer is you're using the wrong syntax in your batch file. You >did an excellent job on the code. It just needs two lines fixed, and then it >should work perfectly for you (unless you have to deal with Macro Security, >but that's a whole 'nuther barrel of monkeys). > >The "START /MAX" command in the batch file tells the operating system, "Use >the default action, no matter what it is, on the file that follows the >executable." So the operating system finds that D:\Program Files\PC\PCtrlA. >mdb follows, and then checks the Registry, which happens to have C:\Program >Files\Microsoft Office\OFFICE11\MSACCESS.exe registered to open this type of >file. The default action for this executable on your operating system (and >almost everyone else's) is to open the file without any command line >arguments. Since you're currently joined to a workgroup information file >that isn't the secured workgroup information file used to secure the database, >the file is being opened with the default Admin user, who doesn't have >permission to open this secured database. > >The good news is that if you can't open the database with the default Admin >user, it was probably secured properly (which isn't all that common of an >occurrence). > >You need to remove the "START /MAX" command, but even then it won't work >correctly, because the LOCDIR variable contains double quotation marks and >this variable is being concatenated with a backslash and another variable >containing the file name to get the full path and file name with %LOCDIR%\% >PGRM%. Like this: > >"D:\Program Files\PC"\PCtrlA.mdb > >And you can't remove those double quotes, because that won't work correctly, >either. (Access will complain that Access doesn't recognize the command line >option, and it can't find D:\Program.mdb would be my guess, because a space >in the list of command line arguments means "the next string of characters is >going to be the next parameter.") > >Does that mean you can't use a batch file for this task? No. It just means >you have to do extra work, hon, because you're stuck with a bad directory >name. To fix this batch file, create a new variable and assign the full path >and file name to it, like this: > >SET LOCFIL="D:\Program Files\PC\PCtrlA.mdb" > >And then change this line: > >START /MAX %MSACC% %LOCDIR%\%PGRM% %WKGRP% > >To this: > >%MSACC% %LOCFIL% %WKGRP% > >Save it and run your batch file. Just wanted to say Thank you! I learned so much! It's nice to have someone
who really knows there stuff. Just want you to know I appreciate your time and efforts!! Pat Granny Spitz wrote: Show quoteHide quote >> I have posted several times trying to get help with attaching a database to >> a mdw file. > >Hon, you should have posted your question in the Microsoft Access newsgroups, >not the private Access forums you find on the web. The majority of Access >experts answer questions in the newsgroups, not those private web forums. >Most questions are answered here correctly within a few hours of posting, so >you could've saved yourself a week of wild goose chases if you'd come here >first. > >> What's wrong? > >The short answer is you're using the wrong syntax in your batch file. You >did an excellent job on the code. It just needs two lines fixed, and then it >should work perfectly for you (unless you have to deal with Macro Security, >but that's a whole 'nuther barrel of monkeys). > >The "START /MAX" command in the batch file tells the operating system, "Use >the default action, no matter what it is, on the file that follows the >executable." So the operating system finds that D:\Program Files\PC\PCtrlA. >mdb follows, and then checks the Registry, which happens to have C:\Program >Files\Microsoft Office\OFFICE11\MSACCESS.exe registered to open this type of >file. The default action for this executable on your operating system (and >almost everyone else's) is to open the file without any command line >arguments. Since you're currently joined to a workgroup information file >that isn't the secured workgroup information file used to secure the database, >the file is being opened with the default Admin user, who doesn't have >permission to open this secured database. > >The good news is that if you can't open the database with the default Admin >user, it was probably secured properly (which isn't all that common of an >occurrence). > >You need to remove the "START /MAX" command, but even then it won't work >correctly, because the LOCDIR variable contains double quotation marks and >this variable is being concatenated with a backslash and another variable >containing the file name to get the full path and file name with %LOCDIR%\% >PGRM%. Like this: > >"D:\Program Files\PC"\PCtrlA.mdb > >And you can't remove those double quotes, because that won't work correctly, >either. (Access will complain that Access doesn't recognize the command line >option, and it can't find D:\Program.mdb would be my guess, because a space >in the list of command line arguments means "the next string of characters is >going to be the next parameter.") > >Does that mean you can't use a batch file for this task? No. It just means >you have to do extra work, hon, because you're stuck with a bad directory >name. To fix this batch file, create a new variable and assign the full path >and file name to it, like this: > >SET LOCFIL="D:\Program Files\PC\PCtrlA.mdb" > >And then change this line: > >START /MAX %MSACC% %LOCDIR%\%PGRM% %WKGRP% > >To this: > >%MSACC% %LOCFIL% %WKGRP% > >Save it and run your batch file. |
|||||||||||||||||||||||