Access如何禁止用戶使用Shift鍵跳過(guò)啟動(dòng)窗體_第1頁(yè)
Access如何禁止用戶使用Shift鍵跳過(guò)啟動(dòng)窗體_第2頁(yè)
Access如何禁止用戶使用Shift鍵跳過(guò)啟動(dòng)窗體_第3頁(yè)
Access如何禁止用戶使用Shift鍵跳過(guò)啟動(dòng)窗體_第4頁(yè)
Access如何禁止用戶使用Shift鍵跳過(guò)啟動(dòng)窗體_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、如何禁止用戶使用 Shift 鍵跳過(guò)啟動(dòng)窗體作者:- .&netboy (QQ165229)日期:2005 年 11 月適用版本:Access 97 、Access 2000、Access 2002、Access 2003難度系數(shù):* 問(wèn)題詳述如果程序設(shè)置了啟動(dòng)窗體,程序在打開(kāi)時(shí)都會(huì)自動(dòng)進(jìn)入啟動(dòng)窗體界面,而不會(huì)顯示 Access 的數(shù)據(jù)庫(kù)窗體,但有些好奇的用戶可能知道按住 Shift 鍵來(lái)打開(kāi)程序, 然后進(jìn)入到數(shù)據(jù)庫(kù)窗體,修改表或其他 Access 對(duì)象的內(nèi)容,從而導(dǎo)致程序出錯(cuò)或者數(shù)據(jù)丟失,有什么辦法禁止用戶使用 Shift 鍵跳過(guò)啟動(dòng)窗體呢?netboy 解答可以通過(guò)設(shè)置“AllowBypa

2、ssKey”屬性來(lái)達(dá)到禁止使用 Shift 鍵的目的,而在Access 數(shù)據(jù)庫(kù)和 Access 項(xiàng)目中禁止 Shift 鍵需要使用不同的方法。1在 Access 數(shù)據(jù)庫(kù)(MDB)中禁止 Shift 鍵的方法首先創(chuàng)建一個(gè)設(shè)置數(shù)據(jù)庫(kù)屬性的通用函數(shù)。Function ChangeProperty(strPropName As String, varPropType As Variant, varPropvalue As Variant) As IntegerDim dbs As Object, prp As VariantConst conPropNotFoundError = 3270 沒(méi)有找到屬

3、性的錯(cuò)誤常量Set dbs = CurrentDb 獲取當(dāng)前的數(shù)據(jù)庫(kù)對(duì)象On Error GoTo Change_Err 如果出錯(cuò)則轉(zhuǎn)到錯(cuò)誤處理dbs.Properties(strPropName) = varPropvalue 如果找到屬性,則設(shè)置屬性的值為新的值ChangeProperty = True 設(shè)置成功,設(shè)置函數(shù)值返回真Change_Bye:Exit Function Change_Err:If Err = conPropNotFoundError Then 如果錯(cuò)誤是數(shù)據(jù)庫(kù)沒(méi)有這個(gè)屬性Set prp = dbs.CreateProperty(strPropName, _ var

4、PropType, varPropvalue) 創(chuàng)建新的屬性,并設(shè)置它的默認(rèn)值dbs.Properties.Append prp 將新的屬性對(duì)象綁定到數(shù)據(jù)庫(kù)Resume Next 繼續(xù)執(zhí)行后面的代碼ElseChangeProperty = False 如果是其它錯(cuò)誤,則函數(shù)值返回假Resume Change_Bye 轉(zhuǎn)到函數(shù)退出處理End IfEnd Function然后調(diào)用這個(gè)通用函數(shù)來(lái)設(shè)置“AllowBypassKey”屬性值為 False,代碼如下。ChangeProperty AllowBypassKey, 1, FalseFalse 為禁止 Shift 鍵,True 為恢復(fù)如果想允許

5、使用 Shift 鍵,則同樣設(shè)置 ChangeProperty AllowBypassKey, 1, True 就可以了。2在 Access 項(xiàng)目(ADP)中禁止 Shift 鍵的方法首先創(chuàng)建一個(gè)檢測(cè)項(xiàng)目的屬性是否存在的函數(shù),如果函數(shù)值返回真,則表示屬性已經(jīng)存在。Private Function PropertyIsExist(MyPropName As String) As Boolean PropertyIsExist = False 首先初始化返回值為假Dim i As IntegerWith CurrentProject.Properties 循環(huán)當(dāng)前工程項(xiàng)目的所有屬性For i =

6、0 To .Count - 1 如果項(xiàng)目屬性已經(jīng)存在,則返回真,否則返回假If .Item(i).Name = MyPropName ThenPropertyIsExist = True Exit ForEnd If Next i End WithEnd Function然后創(chuàng)建一個(gè)設(shè)置項(xiàng)目屬性的通用函數(shù),根據(jù)屬性值是否存在而進(jìn)行不同的處理。Function SetMyProperty(MyPropName As String, MyPropvalue As Variant) As BooleanOn Error GoTo SetMyProperty_In_Err 如果出錯(cuò)則轉(zhuǎn)到錯(cuò)誤處理程序D

7、im i As IntegerWith CurrentProject.Properties 循環(huán)當(dāng)前工程項(xiàng)目的所有屬性If PropertyIsExist(MyPropName) Then 調(diào)用 PropertyIsExist 函數(shù)檢查要設(shè)置的屬性是否已經(jīng)存在For i = 0 To .Count - 1If .Item(i).Name = MyPropName Then.Item(i).Value = MyPropvalue 如果存在這個(gè)屬性,則設(shè)置屬性的值為新值End IfNext i Else.Add MyPropName, MyPropvalue 如果屬性不存在,則創(chuàng)建這個(gè)屬性并設(shè)置它

8、的默認(rèn)值End If End WithSetMyProperty = True 設(shè)置函數(shù)的返回值為真SetMyProperty_Exit:Exit FunctionSetMyProperty_In_Err: 如果出錯(cuò)則提示錯(cuò)誤信息MsgBox 設(shè)置屬性出錯(cuò):, Err, Error$ SetMyProperty = FalseResume SetMyProperty_Exit End Function與 MDB 一樣,最后在程序中調(diào)用這個(gè)設(shè)置函數(shù)來(lái)禁止使用 Shift 鍵。SetMyProperty AllowBypassKey, False False 為禁止 Shift 鍵,True 為恢

9、復(fù)同樣,也可以設(shè)置 ChangeProperty AllowBypassKey, 1, True 來(lái)允許使用 Shift 鍵。上述兩種方法在設(shè)置AllowBypassKey屬性為“False” 之后,如果自己沒(méi)有保留程序備份或沒(méi)有留下后門,則自己也無(wú)法再使用 Shift 打開(kāi)程序進(jìn)入數(shù)據(jù)庫(kù)窗口了。所以,修改這個(gè)屬性之前請(qǐng)做好程序備份。專家點(diǎn)評(píng)所謂“道高一尺,魔高一丈”,其實(shí)上面的方法還不能保證絕對(duì)的安全,通過(guò)在另一個(gè)數(shù)據(jù)庫(kù)文件中運(yùn)行代碼來(lái)打開(kāi)這個(gè)數(shù)據(jù)庫(kù)并設(shè)置“AllowBypassKey”屬性為真,就能破解 Shift 鍵。代碼如下。Public Function EnablePassKey(

10、ByVal strFileName As String) As BooleanOn Error Resume NextDim accApp As Object 存儲(chǔ) Application 對(duì)象Set accApp = CreateObject(Access.Application) 創(chuàng)的 Application建一個(gè)新的 AccessaccApp.OpenCurrentDatabase strFileName 使用新的Application 打開(kāi)要設(shè)置的文件accApp.CurrentProject.Properties.Add AllowByPassKey, True 將AllowByPassKey 屬性值設(shè)置為真accApp.Quit 關(guān)閉新的 ApplicationIf Err.Number = 0 Then EnablePassKey = True End Function其中參數(shù) StrFileNa

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論