devxlogo

Hard-Lock a Table

Hard-Lock a Table

In many applications, I want to make absolutely sure that the data in a Jet table doesn’t get modified under any circumstances. I hard-lock the table in addition to using any system-level security to protect it. Also, this hard lock stays with the MDB if it is issued with an application.Place the expression True=False into the ValidationRule property of the table to lock it. The Jet evaluates this expression to False and blocks updates to the table:

 'DeclarationsPublic MyDB As DatabaseDim Dummy As Integer'Sample callsDummy = HardLockTable("UnLock", "TestTable")Dummy = HardLockTable("Lock", "TestTable")Function HardLockTable_	(ByVal whichAction As String, _	ByVal aTable As String) As IntegerOn Error GoTo HardLockTableError'Default returnHardLockTable = TrueSelect Case whichActionCase "Lock"	MyDB.TableDefs(aTable).ValidationRule = "True=False"	MyDB.TableDefs(aTable).ValidationText = _		"This table locked via " & _		"ValidationRule on " & NowCase "UnLock"	MyDB.TableDefs(aTable).ValidationRule = ""	MyDB.TableDefs(aTable).ValidationText = ""Case "TestThenUnLock"	If MyDB.TableDefs(aTable)._		ValidationRule = "True=False" Then			MyDB.TableDefs(aTable).ValidationRule = ""			MyDB.TableDefs(aTable).ValidationText = ""	End IfEnd SelectHardLockTableErrorExit:		'subFlushDBEngine		'optional, see next suggestionExit FunctionHardLockTableError:		HardLockTable = False		MsgBox Error$ & " error " & _			"in HardLockTable trying " & _			"to " & whichAction & " " & _			aTable		Resume HardLockTableErrorExitEnd Function

devx-admin

Share the Post: