一、重點
這個窗體增加了判斷使用者的類別(操作員、一般使用者、管理員)。
二、控制項優化
label為空白:label1.backstyle = 0
command新增:(1)將command控制項的style設定為1 - graphical (2)在command控制項的picture中,點瀏覽,選擇一張。
三、優化區域
不能輸入特殊符號
select case keyascii
1. case -20319 to -3652
2. case 48 to 57
3. case 65 to 90
4. case 97 to 122
5. case 8
6. case else
7. keyascii = 0
8. end select
四、**
private sub cmdok_click()
'用來存放sql語句
dim txtsql as string
dim txtsql1 as string
dim txtsql2 as string
' 用來存放記錄集物件
dim mrc as adodb.recordset
dim mrc1 as adodb.recordset
dim mrc2 as adodb.recordset
'用來存放返回資訊
dim msgtext as string
dim msgtext1 as string
dim msgtext2 as string
dim ctrl as control
'todo: create test for correct password
'check for correct password
username = ""
'判斷輸入使用者名稱是否為空
if trim(txtusername.text = " ") then
msgbox "沒有這個使用者,請重新輸入使用者名稱!", vbokonly + vbexclamation, "警告"
txtusername.setfocus
txtusername.text = ""
txtpassword.text = ""
exit sub
else
if trim(txtpassword.text = "") then
msgbox "請輸入密碼!", vbokonly + vbexclamation, "提示"
txtusername.setfocus
txtpassword.text = ""
exit sub
else
txtsql = "select * from user_info where userid='" & txtusername.text & "'"
set mrc = executesql(txtsql, msgtext) '執行查詢語句
txtsql2 = "select * from worklog_info where userid='" & txtusername.text & "'"
set mrc2 = executesql(txtsql2, msgtext2)
txtsql1 = "select * from onwork_info where userid='" & txtusername.text & "'"
set mrc1 = executesql(txtsql1, msgtext1)
if mrc.eof then
msgbox "無此使用者,請重新輸入!", vbokonly + vbexclamation, "提示"
txtusername.text = ""
txtusername.setfocus
exit sub
else
if mrc.fields(0) = txtusername.text and mrc.fields(1) = txtpassword.text then
end if
ok = true
username = trim(txtusername.text)
if trim(mrc.fields(2)) = "管理員" then
else
if trim(mrc.fields(2)) = "操作員" then
frmmain.cmucz.enabled = false
else
frmmain.manger.enabled = false
frmmain.cmucz.enabled = false
end if
end if
end if
if mrc1.eof = false then
msgbox "此使用者二次登陸", vbokcancel + vbexclamation, "提示"
mrc1.delete
mrc1.update
mrc1.close
else
mrc1.addnew
mrc1.fields(0) = trim(txtusername)
mrc1.fields(1) = trim(mrc.fields(2))
mrc1.fields(2) = trim(date)
mrc1.fields(3) = time
mrc1.update
mrc1.close
mrc2.addnew '新增記錄到worklog_info表
mrc2.fields(1) = trim(txtusername)
mrc2.fields(2) = trim(mrc.fields(2))
mrc2.fields(3) = trim(date)
mrc2.fields(4) = trim(time)
mrc2.fields(7) = vba.environ("computername")
mrc2.fields(8) = true
mrc2.update
mrc2.close
me.hide
frmmain.show
'記載輸入密碼次數
micount = micount + 1
if micount = 3 then
me.hide
end' exit sub
' for each ctrl in me.controls
' if typeof ctrl is textbox then '是否為文字框textbox
' ctrl.text = ""
' end if
' next
end if
end if
end if
end if
end sub
``
第一次 機房收費系統 登入窗體
邏輯很重要,慢慢縷。流程圖與 如下 private sub cmdok click 用來存放sql語句 連線user表 dim txtsql as string 用來存放記錄集物件 dim mrc as adodb.recordset 用來存放返回資訊 dim msgtext as string 連...
第一次機房收費系統 「登入」
前言 說到登入我為啥,會寫登入呢,按說不就個登入嗎,怎麼簡單的東西有必要寫一篇部落格總結嗎,有必要!非常有必要 因為就在剛開始的時候這個非常簡單的東西讓我,整整的卡了三天為啥就乙個登入就能卡我三天 我自己都感覺有點意外 為啥會卡我三天那,因為我一開始只是盲目的點兩下原版系統。沒有仔細的點和發現他們之...
第一次機房收費系統 登陸窗體
前言 不管是學生還是機房,敲的第乙個窗體都是登入,這兩個學習專案有很大的相同點,學生有原始碼,機房卻沒有,需要搞清楚裡邊的邏輯,問題也就迎刃而解了。下面是我畫的機房的流程圖 如下 option explicit private declare function getusername lib adv...