[AccessD] How To Undo Disabled Shift Bypass

jwcolby jwcolby at colbyconsulting.com
Thu Feb 24 08:25:06 CST 2011


Good job Dan.

I have an access database that does that.  It allows you to navigate to and select an access 
database to set all of those properties on (and there a bunch of them).

John W. Colby
www.ColbyConsulting.com

On 2/24/2011 8:40 AM, Dan Waters wrote:
> Sure been quiet for a few days!  So this is something I finished yesterday.
>
> A few days ago, for about the hundredth time, I accidentally locked myself
> out of an Access file by mistakenly running code to change its properties,
> including setting the AllowShiftBypass property to False.  The normal way to
> fix this is to open a new Access file and import all the objects, then reset
> references, startup properties, and options.  It’s a pain.
>
> I recently did some work with OpenCurrentDatabase, and wondered if I could
> make a utility to reset an Access file’s properties where that file had its
> properties set to False.  And it worked!
>
> Below is code that you can copy into a standard module in a new Access
> file.  Name that new file AllowBypass.mdb, or something similar.  Run the
> first procedure – this will ask you to select an Access file, and it will
> then reset several properties to true so that you can open it normally
> again.
>
> Hope someone can use this!
> Dan
>
> ‘------------------------
> Private MappSource As Access.Application
>
> Private Sub UnlockMDB()
> 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 Sub
> 6         End If
> 7         DoEvents
>
>            '-- Set Source MDB 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 Sub
>
> 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 Sub
>
> 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"
>              '.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.
> 10            If .Show = True Then
> 11                For Each varFile In .SelectedItems
> 12                    SelectFile = varFile
> 13                Next varFile
> 14            Else
> 15                SelectFile = "File Not Selected"
> 16            End If
>
> 17        End With
>
> 18        Exit Function
>
> EH:
> 19        stgPrompt = "ERROR: SelectFile"&  vbNewLine&  vbNewLine _
>                &  "Line:            "&  Erl&  vbNewLine _
>                &  "Number:        "&  Err.Number&  vbNewLine _
>                &  "Description: "&  Err.Description
> 20        MsgBox stgPrompt, vbExclamation + vbOKOnly
> 21        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
>
>        '    For Each prp In dbs.Properties
>        '        If prp.Name = "AllowBypassKey" = True Then
>        '            Debug.Print prp.Name
>        '            Debug.Print prp.Type
>        '            Debug.Print prp.Value
>        '            Debug.Print
>        '        End If
>        '    Next prp
>
> 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
>
> ‘------------------------
>
>
>
>



More information about the AccessD mailing list