[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 404
  • Last Modified:

Help in locking down database

Hi,

I'm trying to "lock" the db down so that the users cannot get into the db objects (forms, tables, modules, etc...).

I've created a new module and paste this code:

Sub SetStartupProperties()
    ChangeProperty "StartupForm", dbText, "YourFormHere"
    ChangeProperty "StartupShowDBWindow", dbBoolean, False
    ChangeProperty "StartupShowStatusBar", dbBoolean, False
    ChangeProperty "AllowBuiltinToolbars", dbBoolean, False
    ChangeProperty "AllowFullMenus", dbBoolean, False
    ChangeProperty "AllowBreakIntoCode", dbBoolean, False
    ChangeProperty "AllowSpecialKeys", dbBoolean, False
    ChangeProperty "AllowBypassKey", dbBoolean, False
    ChangeProperty "AppTitle", dbText, "Application Title Here vs1.2"
    Application.RefreshTitleBar
End Sub

Public Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
    Dim dbs As Database, prp As Property
    Const conPropNotFoundError = 3270

    Set dbs = CurrentDb
    On Error GoTo Change_Err
    dbs.Properties(strPropName) = varPropValue
    ChangeProperty = True

Change_Bye:
    Exit Function

Change_Err:
    If ERR = conPropNotFoundError Then  ' Property not found.
        Set prp = dbs.CreateProperty(strPropName, _
            varPropType, varPropValue)
        dbs.Properties.Append prp
        Resume Next
    Else
        ' Unknown error.
        ChangeProperty = False
        Resume Change_Bye
    End If
End Function

The key line of code here is this

    ChangeProperty "AllowBypassKey", dbBoolean, False
----------------------------------------------------------------------------------------------------------------

but it throws me a type mismatch error.
The error happens on this line:
dbs.Properties(strPropName) = varPropValue

and it throws the "type mismatch" on  
Set prp = dbs.CreateProperty(strPropName, _
            varPropType, varPropValue)

Just to retrace my steps. I created a module and copy paste the sub and the public function into it. I've insert ChangeProperty "AllowBypassKey", dbBoolean, False into the form_load() of the switchboard. Right? Where have i gone wrong?
0
xhenkaii
Asked:
xhenkaii
  • 7
  • 6
1 Solution
 
eternal_21Commented:
Try,

     ChangeProperty "AllowBypassKey", dbBoolean, 0
0
 
xhenkaiiAuthor Commented:
I still have the type mismatch error.
0
 
eternal_21Commented:
This code worked for me... What version of Access are you using?
0
Microsoft Certification Exam 74-409

VeeamĀ® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
xhenkaiiAuthor Commented:
well i'm using access 02 but my program is in access 2000 format.
0
 
xhenkaiiAuthor Commented:
it still throws me the type mismatch error even when i convert to access 02 format. help!
0
 
eternal_21Commented:
I'm pretty sure I solved it, and then I locked myself out of the database...
0
 
eternal_21Commented:
Change the,

  Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue)

to

  prp = dbs.CreateProperty(strPropName, varPropType, varPropValue)

And it should work.  And please make a backup of the database first.... :)
0
 
eternal_21Commented:
Or replace the next line with:

  dbs.Properties.Append dbs.CreateProperty(strPropName, varPropType, varPropValue)
0
 
eternal_21Commented:
And change the YourFormHere in,

  ChangeProperty "StartupForm", dbText, "YourFormHere"

To a form that actually exists in your project...  Oh yeah, did I mention making a backup copy first?
0
 
xhenkaiiAuthor Commented:
well i got it to work now. just shifted the piority of the DAO reference to the top.
(O___O)
i'm bugged about it.
Since i cant take back the points, i'll split it the nice people who tried to help me. =)

Xhenkaii
0
 
xhenkaiiAuthor Commented:
eternal_21,

 dbs.Properties.Append dbs.CreateProperty(strPropName, varPropType, varPropValue)
This dont work. Gave me an error with the Append dbs statement. End of statement expected.

ChangeProperty "StartupForm", dbText, "YourFormHere"
I've changed it already.

prp = dbs.CreateProperty(strPropName, varPropType, varPropValue)
nv tried this... hahaha

anyway, i place a "ChangeProperty "AllowBypassKey", dbBoolean, True" on a dbl_click() abel in a form. So i'm able to activite the SHIFT key to edit my database. heh. Thanks anyway. The pts are urs.
0
 
eternal_21Commented:
Thanks, xhenkaii.  But if you feel that you have solved the problem yourself, place a post in Community Support, and they will refund your points!
0
 
xhenkaiiAuthor Commented:
It's no prob for the points with me, eternal. My way of saying thanks for helping.
Cheers!
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 7
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now