把表达式 True=False 放到表的 ValidationRule 属性就能锁上。 HardLockTable?实现了该功能。

声明

Public MyDB As Database

Dim Dummy As Integer

函数

Function HardLockTable (ByVal whichAction As String,?ByVal aTable As String) As Integer

On Error GoTo HardLockTableError

HardLockTable = True

Select Case whichAction

Case "Lock"

MyDB.TableDefs(aTable).ValidationRule = "True=False"

MyDB.TableDefs(aTable).ValidationText =?"This table locked via " & ?"ValidationRule on " & Now

Case "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 If

End Select

HardLockTableErrorExit:

subFlushDBEngine

optional, see next suggestion

Exit Function

HardLockTableError:

HardLockTable = False

MsgBox Error$ & " error " & "in HardLockTable trying " & "to " & whichAction & " " & aTable

Resume HardLockTableErrorExit

End Function

使用例子

上锁

Dummy = HardLockTable("Lock", "TestTable")

开锁

Dummy = HardLockTable("UnLock", "TestTable")