呵呵。我有兩種電常用的方法,我給你貼一種我最常用的出來哈(我以前兩天做的一個超市進銷存管理系統(tǒng)為列):
1.在“超市數(shù)據(jù)庫”數(shù)據(jù)庫中建立數(shù)據(jù)表“用戶表”,設(shè)置如下圖:

用戶名設(shè)為主索引。如果你要使用用戶權(quán)限,則可以保留用戶類型字段,如果不用那就去掉不要就是了。
2.登陸界面:
建立一個新表單
表單Unload代碼:USE
表單數(shù)據(jù)環(huán)境用添加“用戶表”數(shù)據(jù)表,并且將插入的表屬性中的:Exclusive值改為“真”值。如下圖

將數(shù)據(jù)表中的兩個字段拖入表單中并建立確認及取消兩個按鈕

將txtUserPwd文本框的Password屬性改為“*”。(引號不要)。這樣輸入的密碼就以*顯示了
編寫確定按鈕的Click代碼:
IF ALLTRIM(thisform.txtUserName.Value) == ''
MessageBox("請輸入用戶名")
RETURN
ENDIF
IF ALLTRIM(thisform.txtUserPwd.Value) == ''
MessageBox("請輸入密碼")
RETURN
ENDIF
SELECT 用戶表
&&查找指定用戶名為的記錄
public UserName, UserType &&定義全局變量,最好是在主程序中進行定義
Locate For Allt(用戶名)=Allt(thisform.txtUserName.Value)
If Found() == .T. &&如果找到
If Allt(密碼) == Allt(thisform.txtUserPwd.Value) &&比較密碼,成功則進入
MessageBox("歡迎光臨", 64, "提示信息")
UserName = 用戶名
UserType = 用戶類型
&&這里添加你要運行語句
release thisform
Else &&比較密碼不成功
MessageBox("密碼不正確", 16, "錯誤提示")
Endif
Else &&沒有找到指定用戶
MessageBox("用戶名不存在", 16, "錯誤提示")
Endif
編寫取消按鈕的Click代碼:
RELEASE thisform
ON SHUTDOWN Do OnQuit
quit
這就是登陸表單哈。
注意。登陸表單最好和主程序交互編寫為最好。
主程序:
SET TALK OFF &&關(guān)閉對話
SET ESCAPE OFF &&關(guān)閉ESCAPE鍵
SET EXACT ON &&打開完全匹配
SET EXCLUSIVE ON &&打開獨占
SET CONSOLE ON &&將輸出結(jié)果到發(fā)送到Visual FoxPro主窗口或當前的活動窗口
SET DATE TO SHORT &&設(shè)置長日期
SET SCORE OFF &&關(guān)閉分值欄
SET SAFETY OFF &&關(guān)閉安全提示
SET STATUS BAR OFF &&關(guān)閉系統(tǒng)提示欄
SET CENTURY ON &&打開世紀開關(guān)
SET DELETED ON &&屏閉刪除項
SET SYSMENU OFF &&關(guān)閉系統(tǒng)菜單
SET NOTIFY OFF &&關(guān)閉提示
&&設(shè)置系統(tǒng)窗口屬性
_SCREEN.MaxButton = .F. &&取消最大化按鈕
_SCREEN.MaxWidth = 780 &&設(shè)置最大寬度
_SCREEN.MaxHeight = 600 &&設(shè)置最大高度
_SCREEN.Caption = "超市進銷存管理系統(tǒng)" &&設(shè)置窗口標題
_SCREEN.Picture = 'img\hr.bmp' &&設(shè)置窗口背景圖片
_SCREEN.AutoCenter = .T. &&指定表單初次顯示時,自動位于主窗口中央
&&定義全局變量
public UserName, UserType
SET PATH TO DATA
&&打開菜單
Do mymenu.mpr
Do Form Form\登陸.scx
READ EVENTS
Procedure OnQuit
CLEAR EVENTS
CLOSE ALL
QUIT
Endproc
如果使用了這樣的主程序,那么在登陸表單的確定中就不用再定義全局變量以及運行的語句了,都放主程序中進行跳轉(zhuǎn)。
最后效果是:如果用戶名不正確,會提示用戶名不正確,如果用戶名正確,密碼不正確,則會提示密碼錯誤。用戶名及密碼都正確則執(zhí)行定義的語句。