access資料庫的鎖定
⑴ 如何鎖定ACCESS資料庫的窗體,不讓其它人修改
一般有三種方法保護ACCESS窗體
1)使用啟動窗體或自定義宏菜單(在ACCESS選項——啟動中設置),菜單——視圖——工具欄——取消對"資料庫"的勾選,——自定義, 取消勾選工具欄的勾選(自定義宏菜單除外,如果有的話),目的就是讓用戶看不到所有能更改資料庫對象設計方案的菜單、工具欄、命令圖標。但是這種方案很容易被破解,特別是對ACCESS資料庫有一定研究的用戶來說,盡管可以使用代碼禁止shift鍵,但是破解方案是可以在網上查到的;
2)設置工作組安全機制
菜單——工具——安全——設置工作組安全機制向導,跟隨向導指引設置,再設置不同用戶的許可權保護相關的資料庫對象。這個方案保護性能比較高,類似大型資料庫系統的用戶級保護機制,但是設置復雜而且分發使用也比較麻煩,另外2007以後版本不支持該手段;
3)生成編譯後的資料庫文件(.mde 2003版本、.accde 2007及以後版本)生成方法略...
這種方法保護最徹底,幾乎不存在破解的可能,但是一旦編譯後就不再可以被修改,源資料庫要小心保護好。
⑵ access資料庫的記錄如何鎖定
當年我在這里也走了不少彎路,查了很多資料才發現問題很簡單,下面就輕松實現鎖定與解鎖.
在窗體頁眉中新建一個復選框或單選框,這里我用的是復選框(我取的名叫ChkLock),下面是這個復選框的單擊事件
PrivateSubChkLock_Click()
DimctlAsControl
ForEachctlInMe.Section(0).Controls'Section(0)是主體的意思
Ifctl.ControlType=acTextBoxOrctl.ControlType=acComboBoxOrctl.ControlType=acCheckBoxThen
'或用類似下面這句
'Ifctl.Name<>"ChkLock"Andctl.Name<>"TxtFind"Andctl.ControlType<>acLabelThen
ctl.Locked=Me.ChkLock'這里就是實現鎖定或解鎖
EndIf
Next
EndSub
上面實現鎖定的代碼,下面實現自動鎖定,不管你有沒有忘記.利用窗體的Current事件(成為當前事件),如果要新建記錄要自動解鎖
PrivateSubForm_Current()
'檢查是否要鎖定
IfMe.NewRecordThen'如果是新建狀態就可以編輯(將勾取消)
Me.ChkLock=False
Else
Me.ChkLock=True
EndIf
CallChkLock_Click'調用復選框的單擊事件,在這里變成子程序
EndSub
最好把這個控制鎖定的復選框放在窗體頁眉上,不然連它都鎖定了就沒法解鎖了.
附:
'Section(0)是主體的意思,這里就是指循環主體上的控制項,頁腳頁眉上的控制項就影響不到了,如你要,Section(1)表示是窗體頁眉Section(2)表示是窗體頁腳
ControlType屬性是用於指定控制項類型的固有常量。
常量控制項
acBoundObjectFrame綁定對象框
acCheckBox復選框
acComboBox組合框
acCommandButton命令按鈕
acCustomControlActiveX(自定義)控制項
acImage圖像
acLabel標簽
acLine線條
acListBox列表框
acObjectFrame未綁定對象框或圖表
acOptionButton選項按鈕
acOptionGroup選項組
acPage頁
acPageBreak分頁符
acRectangle矩形
acSubform子窗體/子報表
acTabCtl選項卡
acTextBox文本框
acToggleButton切換按鈕
⑶ ACCESS資料庫鎖定問題
如果是ACCESS資料庫,應該是並發訪問造成的問題。因為ACCESS沒有行鎖。所以你有個一個用戶在網上改一條數據,另外一個用戶再上來訪問相同一條數據時就給鎖了。重啟動後所有的連接全斷開了,所以就沒問題了。如果有可能最好不用ACCESS做後台資料庫
⑷ Access資料庫連接關閉與.ldb文件鎖定解決方法
常用的資料庫連接方式:
Dim connstr
dim dbpath
dbpath="#123$asd31.mdb"
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open connstr
關閉語句不僅是.
(斷開記錄)
Rs.close
Set Rs=Nothing
還有:(斷開連接)
Conn.Close
Set Conn=Nothing
排除上面的原因之後.
用ACCESS打開你的資料庫,選擇菜單中的[工具]->[選項]->[高級]
更改[默認打開模式]為[共享],更改[默認記錄鎖定]為[不鎖定].
如仍然不行將下面的選項[使用記錄級鎖定]也取消.
確定後保存,然後打開,修復/壓縮資料庫.
刪除目錄中的LDB文件(如無法刪除,先結束相關進程或重新啟動計算機刪除即可)
⑸ 要連接ACCESS資料庫這時正在被使用使資料庫被鎖定,導致無法訪問。解決方法
出現上述現像是因為你的資料庫已經打開了.
解決方法很簡單,重啟一次計算機,然後再連接資料庫.問題必定可以解決了.
⑹ 網站上的access資料庫總是被鎖死!
你asp裡面的資料庫連接打開之後沒有及時關閉,到一定量的時候就會自動鎖死。主要原因就在這里。你可以檢查一下,及時釋放recordset對象和connection對象一般就可以解決這個問題。
ldb文件是在打開資料庫連接的時候就出現的,和訪問者多少沒有關系。
另外有時間的時候壓縮一下資料庫也可以提高一些性能。
⑺ asp訪問access資料庫出現鎖定錯誤怎麼處理
當某個用戶以獨占方式打開一個ACCESS資料庫時(如對資料庫某個數據表的欄位進行增刪改操作時),其他用戶訪問這個資料庫就會出現鎖定錯誤了;或者當某個用戶正在以Update方法更新數據表中的某條記錄時,其他用戶也會出現短暫的鎖定錯誤。
這種情況是必要的,因為不這樣做就很有可能出現數據不同步甚至破壞整個資料庫的情況。只有等造成鎖定狀態的用戶退出連接或結束更新操作時,其他用戶才能繼續訪問。如果對這種狀況很介意,請改用真正的SQL網路資料庫,ACCESS本身就是個單機文件型資料庫,用作網路資料庫並不是它的專長。
還有一種情況就是ACCESS資料庫因為某個用戶的錯誤操作(比如因異常關機造成資料庫沒有正確退出)而造成永久性的鎖定狀態,這時候就要通過ACCESS對其進行修復才行。
⑻ 如何解決ACCESS資料庫鎖定的問題
你在後面的代碼一定要有conn.close,用語關閉資料庫連接,否則只打開連接不關閉的話時間長了所有的連接就會都被佔用.而程序無法申請到新的連接就會這樣.
還有一種情況就是你使用XP做伺服器,其中的系統連接數被限制到10個,這也會影響資料庫的連接數量.