前言:說到登入我為啥,會寫登入呢,按說不就個登入嗎,怎麼簡單的東西有必要寫一篇部落格總結嗎,有必要! 非常有必要 因為就在剛開始的時候這個非常簡單的東西讓我,整整的卡了三天為啥就乙個登入就能卡我三天 。我自己都感覺有點意外 為啥會卡我三天那,因為我一開始只是盲目的點兩下原版系統。 沒有仔細的點和發現他們之間的聯絡和「畫一下流程圖」 把需要實現的功能先先寫出來再去實現,所以導致我邏輯非常混亂。
就怎麼簡單的流程圖一開始我就是懶得畫,為自己的懶得也付出了三天的代價。
public username as
string
'獲取當前登入使用者名稱 在後面的充值和退卡 一些其他 的窗體都需要呼叫這個變數
public ok as
boolean
'ok為fmainform類的成員
dim micount as
integer
'記錄登入次數
public cash as
integer
'獲取基本資料最低金額
public
declare
function getcomputername lib
"kernel32"
alias
"getcomputernamea" (byval lpbuffer as
string, nsize as
long) as
long 『用來獲得當前計算機的名』
dim flogin as
new forlogin '定義窗體物件
forlogin.show vbmodal '顯示登入窗體例項
'ok為fmainform類的成員
ifnot forlogin.ok then
'條件選的好
endend
if unload forlogin
'set fmainform = new formmain '顯示主窗體例項
' formmain.show
dim txtsql as
string
'連線資料庫
dim mrc as adodb.recordset '驗證使用者和使用者級別
dim msgtext as
string
'連線資料
dim txtsql1, msgtext1 as
string
dim mrc1 as adodb.recordset'用來將登入使用者的資訊更新到正在上機表中
username = ""
if trim(txtname.text = "") then
'判斷使用者是否為空
msgbox "沒有這個使用者,請重新輸入使用者名稱!", vbokonly + vbexclamation, "警告"
txtname.setfocus
else
txtsql = "select * from user_info where userid = '" & txtname.text & "'"
'連線資料庫並且判斷使用者是否存在
set mrc = executesql(txtsql, msgtext)
if mrc.eof then
'判斷使用者是否存在
msgbox "沒有這個使用者,請重新輸入使用者名稱!", vbokonly + vbexclamation, "警告"
txtname.setfocus
else
'判斷使用者級別
if trim(mrc.fields(2)) = trim("一般使用者") then
'一般使用者的許可權
if trim(mrc.fields(1)) = trim(txtpwd.text) then
'判斷密碼是否正確
txtsql1 = "select * from onwork_info"
'獲取到正在上機表
set mrc1 = executesql(txtsql1, msgtext1)
me.hide
username = trim(txtname.text) '將使用者名稱給username
formmain.show
formmain.generaluser.enabled = true
formmain.operator.enabled = false
formmain.adminsitrator.enabled = false
mrc1.addnew '新增更新到正在上機表裡
mrc1.fields(0) = trim(username)
mrc1.fields(1) = trim(mrc.fields(2))
mrc1.fields(2) = trim(date)
mrc1.fields(3) = trim(time)
mrc1.fields(4) = trim(computername)
mrc1.update
mrc.close '關閉資料連線
else
msgbox "輸入密碼不正確,請重新輸入!", vbokonly + vbexclamation, "警告"
txtpwd.setfocus
txtpwd.text = ""
endif
elseif trim(mrc.fields(2)) = trim("操作員") then
'操作員的許可權
if trim(mrc.fields(1)) = trim(txtpwd.text) then
'判斷密碼是否正確
txtsql1 = "select * from onwork_info"
'獲取正在上機表
set mrc1 = executesql(txtsql1, msgtext1)
me.hide
username = trim(txtname.text) '將使用者名稱給username
formmain.show
formmain.generaluser.enabled = true
formmain.operator.enabled = true
formmain.adminsitrator.enabled = false
mrc1.addnew '新增更新到正在上機表離去
mrc1.fields(0) = trim(username)
mrc1.fields(1) = trim(mrc.fields(2))
mrc1.fields(2) = trim(date)
mrc1.fields(3) = trim(time)
mrc1.fields(4) = trim(computername)
mrc1.update
mrc1.close '關閉資料連線
else
msgbox "輸入密碼不正確,請重新輸入!", vbokonly + vbexclamation, "警告"
txtpwd.setfocus
txtpwd.text = ""
endif
elseif trim(mrc.fields(2)) = trim("管理員") then
'管理員的許可權
if trim(mrc.fields(1)) = trim(txtpwd.text) then
'判斷密碼是否正確
txtsql1 = "select * from onwork_info"
'獲取到正在上機表
set mrc1 = executesql(txtsql1, msgtext1)
me.hide
username = trim(txtname.text) '將使用者名稱給username
formmain.show
formmain.generaluser.enabled = true
formmain.operator.enabled = true
formmain.adminsitrator.enabled = true
mrc1.addnew '新增更新到正在上機的表裡
mrc1.fields(0) = trim(username)
mrc1.fields(1) = trim(mrc.fields(2))
mrc1.fields(2) = trim(date)
mrc1.fields(3) = trim(time)
mrc1.fields(4) = trim(computername)
mrc1.update
else
msgbox "輸入密碼不正確,請重新輸入!", vbokonly + vbexclamation, "警告"
txtpwd.setfocus
txtpwd.text = ""
endif
else
end'三者都不是直接退出
endif
ok = true
endif
endif
micount = micount + 1
'登入限制
if micount > 3
then
msgbox "超過登入限制!", vbokonly + vbexclamation, "警告"
end'退出
endif
exit
sub
未完。。。。 第一次 機房收費系統 登入窗體
邏輯很重要,慢慢縷。流程圖與 如下 private sub cmdok click 用來存放sql語句 連線user表 dim txtsql as string 用來存放記錄集物件 dim mrc as adodb.recordset 用來存放返回資訊 dim msgtext as string 連...
第一次機房收費系統優化 登入窗體
一 重點 這個窗體增加了判斷使用者的類別 操作員 一般使用者 管理員 二 控制項優化 label為空白 label1.backstyle 0 command新增 1 將command控制項的style設定為1 graphical 2 在command控制項的picture中,點瀏覽,選擇一張。三 優...
第一次機房收費系統 幽夢
經過了分析需求 基本配置。終於開始敲機房了。第一步就是敲模組,我只能按照學生資訊管理系統的模組照葫蘆畫瓢。稍微改改,雖然當時整學生時把模組的 一句一句的查了一遍,但到現在還是不懂。不管怎樣,接著進行吧。於是,正式開始了!0.0 登入 在敲登入窗體時,還是要參考學生資訊管理系統。這第一句 就讓我一頭霧...