[AccessD] Locked down database

John W. Colby jwcolby at gmail.com
Mon Feb 2 22:12:45 CST 2015


LOL, well... I had this thing called C2DbProperties, written somewhere 
before the turn of the century.  Of course it doesn't work with 2007 so 
Doug had to fiddle with it a bit.  But I still like the thing, it can be 
plopped down and run to address just this issue.

-- 
John W. Colby


On 2/2/2015 10:20 PM, Dan Waters wrote:
> That John guy - he's my biggest competition!  ;-)
>
> Good to hear from you John!
>
> Dan
>
>
>
> Doug Steele <dbdoug at gmail.com> wrote:
>
> Thanks, Dan.  I was actually given code privately (by John Colby, no less!)
> that does a similar thing. Having unlocked the mystery db, I've discovered
> that it isn't an .accdb file, but a renamed .accde file.  So unless my
> client can find the original uncompiled file, he's going to be out of luck.
>
> On Mon, Feb 2, 2015 at 5:53 PM, Dan Waters <df.waters at outlook.com> wrote:
>
>> Hi Doug,
>>
>> A few years ago I wrote an Access mdb as a tool to clear the Shift Bypass
>> lockout.
>>
>> Create a new ACCDB file, and put this code into a module.  Add a new macro
>> named AutoExec to run the function UnlockAccessFile().  You will need to
>> hold down the shift key to get into the code in this file.  I wrote this to
>> work with the MDB files I work with, but it might also work on an ACCDB.
>>
>> Save the Access file and name it Allow Bypass (works for me).
>>
>> If you get an error send it to me and let me know what you were trying to
>> do.
>>
>> Now open the Allow Bypass access file, locate the Access file you want to
>> get opened, and see if it works.  Also - it might be that the Allow Bypass
>> tool is actually working, but something else in your file is still locking
>> you out - but I don't know what would do that.
>>
>> Good Luck!
>> Dan
>>
>> -----------------------------------
>> Option Compare Database
>> Option Explicit
>>
>> Private MappSource As Access.Application
>>
>> Public Function UnlockAccessFile()
>> 1     On Error GoTo EH
>>
>>            '-- Note:  Run this application from this procedure.
>>
>>            Dim stgSourceFilePath As String
>>            Dim stgPrompt As String
>>
>>            '-- Select Access File
>> 2         stgSourceFilePath = SelectFile
>> 3         If stgSourceFilePath = "File Not Selected" Or stgSourceFilePath =
>> "" Then
>> 4             MsgBox "Can't find file!", vbExclamation + vbOKOnly, "No
>> File"
>> 5             Exit Function
>> 6         End If
>> 7         DoEvents
>>
>>            '-- Set Source MDB or ACCDB as the CurrentDatabase
>> 8         Set MappSource = New Access.Application
>> 9         MappSource.Visible = False
>> 10        MappSource.OpenCurrentDatabase stgSourceFilePath
>> 11        DoEvents
>>
>> 12        ChangeProperty "AllowBypassKey", dbBoolean, True  '-- Allow shift
>> key bypass
>> 13        ChangeProperty "AllowSpecialKeys", dbBoolean, True  '-- Allow F11
>> key
>> 14        ChangeProperty "AllowBreakIntoCode", dbBoolean, True
>> 15        ChangeProperty "AllowFullMenus", dbBoolean, True
>> 16        ChangeProperty "StartupShowDBWindow", dbBoolean, True
>>
>> 17        MappSource.CloseCurrentDatabase
>> 18        Set MappSource = Nothing
>>
>> 19        MsgBox "Your file at " & stgSourceFilePath & " is now
>> available!",
>> vbInformation + vbOKOnly, "File Now Available"
>>
>> 20        Exit Function
>>
>> EH:
>> 21        stgPrompt = "ERROR: SelectFile" & vbNewLine & vbNewLine _
>>                & "Line:            " & Erl & vbNewLine _
>>                & "Number:        " & Err.Number & vbNewLine _
>>                & "Description: " & Err.Description
>> 22        MsgBox stgPrompt, vbExclamation + vbOKOnly
>> 23        Stop
>>
>> End Function
>>
>> Private Function SelectFile() As String
>> 1         On Error GoTo EH
>>
>>            Dim fDialog As Office.FileDialog
>>            Dim stgPrompt As String
>>            Dim varFile As Variant
>>
>> 2         Set fDialog = FileDialog(msoFileDialogFilePicker)
>>
>> 3         With fDialog
>>
>> 4             .AllowMultiSelect = False
>> 5             .InitialView = msoFileDialogViewList
>> 6             .InitialFileName = CurrentProject.Path
>> 7             .Title = "Select the Access file."
>>
>> 8             .Filters.Clear
>> 9             .Filters.Add "Access Databases", "*.MDB"
>> 10            .Filters.Add "Access Databases", "*.ACCDB"
>>                '.Filters.Add "Access Projects", "*.ADP"
>>
>>                '-- Show the dialog box. If the .Show method returns True,
>> the
>> _
>>                 user picked at least one file. If the .Show method returns _
>>                 False, the user clicked Cancel.
>> 11            If .Show = True Then
>> 12                For Each varFile In .SelectedItems
>> 13                    SelectFile = varFile
>> 14                Next varFile
>> 15            Else
>> 16                SelectFile = "File Not Selected"
>> 17            End If
>>
>> 18        End With
>>
>> 19        Exit Function
>>
>> EH:
>> 20        stgPrompt = "ERROR: SelectFile" & vbNewLine & vbNewLine _
>>                        & "Line:            " & Erl & vbNewLine _
>>                        & "Number:        " & Err.Number & vbNewLine _
>>                        & "Description: " & Err.Description
>> 21        MsgBox stgPrompt, vbExclamation + vbOKOnly
>> 22    Stop
>>
>> End Function
>>
>> Public Function ChangeProperty(stgPropName As String, varPropType As
>> Variant, varPropValue As Variant) As Boolean
>> 1     On Error GoTo EH
>>
>>            Dim prp As DAO.Property
>>            Dim stgPrompt As String
>>            Dim dbs As DAO.Database
>>
>> 2         Set dbs = MappSource.DBEngine(0)(0)
>>
>> 3         dbs.Properties(stgPropName) = varPropValue
>>
>> 4         ChangeProperty = True
>>
>> XH:
>> 5         Exit Function
>>
>> EH:
>> 6         Select Case Err.Number
>>
>>                Case 3270
>>                    '-- Add property if not already created
>> 7                 Set prp = DBEngine(0)(0).CreateProperty(stgPropName,
>> varPropType, varPropValue)
>> 8                 DBEngine(0)(0).Properties.Append prp
>> 9                 Set prp = Nothing
>> 10                Resume Next
>>
>> 11            Case Else
>> 12                stgPrompt = "ERROR: SelectFile" & vbNewLine & vbNewLine _
>>                        & "Line:            " & Erl & vbNewLine _
>>                        & "Number:        " & Err.Number & vbNewLine _
>>                        & "Description: " & Err.Description
>> 13                MsgBox stgPrompt, vbExclamation + vbOKOnly
>> 14                Stop
>>
>> 15        End Select
>>
>> End Function
>>
>> ---------------------------------
>>
>>
>>
>> -----Original Message-----
>> From: accessd-bounces at databaseadvisors.com
>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Doug Steele
>> Sent: Monday, February 02, 2015 16:35 PM
>> To: Access Developers discussion and problem solving
>> Subject: [AccessD] Locked down database
>>
>> I've just been asked by an old client to 'rescue' a database so it can be
>> developed again.  This db was left in a locked down state of some kind by
>> an
>> ex-employee of theirs. It wasn't an amicable parting :)
>>
>> The database is in Access 2007 format.  It's not password protected, and it
>> is in .accdb format, not accde. The 'hold down the shift key to open'
>> option has been bypassed.  There is no 'design view' option when you right
>> click on a form, and of course all menus have been hidden.  I tried
>> creating
>> an blank db and importing, but the forms list in the import window is
>> greyed
>> out.
>>
>> Does anyone have any suggestions?
>>
>> Thanks,
>> Doug
>> --
>> 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