在做機房的時候,發現自己把登陸窗體的部分給丟掉了,於是查了一下有關的登入知識
1、登陸**的實現
首先,登陸就需要有username,需要先在模組裡用乙個api函式,getuser。
public declare function getusername lib "advapi32.dll" alias "getusernamea" (byval lpbuffer as string, nsize as long) as long
public username as string '先定義乙個username
public ok as boolean '定義乙個ok的boolean 變數,用於username的使用
dim micount as integer '定義乙個輸入次數
在formload 中寫:
private sub form_load()
dim sbuffer as string '定義乙個快取資料
dim lsize as long
sbuffer = space$(255)
lsize = len(sbuffer) '把sbuffer的快取裡的內容賦值給lsize
call getusername(sbuffer, lsize) 'api中的字串做引數,但需要提前確定大小
if lsize > 0 then
text1.text = ""
else
text1.text = vbnullstring '沒有字串
end if
ok = false
micount = 0
end sub
在cmdok 中寫:
private sub cmdok_click()
username = "" '先讓使用者名為空
if trim(text1.text = "") then '判斷使用者名稱的輸入是否為空
msgbox "請重新輸入使用者名稱!", vbokonly + vbexclamation, "提示"
text1.setfocus
else '如果不為空的話,就可以調出資料庫了,找出與輸入的使用者名稱相對應的那一行
txtsql = "select * from user_info where userid= '" & text1.text & "'" '先調出資料庫的那一行
set mrc = executesql(txtsql, msgtext) '然後再用execute 執行sql語句
if mrc.eof then '如果到了資料庫的最後一行,那麼,就是沒有這個資料
msgbox "沒有這個使用者,請重新輸入使用者名稱!", vbokonly + vbexclamation, "警告"
text1.text = ""
text1.setfocus
else '如果使用者名稱輸對了,那麼就需要驗證密碼是否正確了
if trim(mrc.fields(1)) = trim(text2.text) then
ok = true '如果使用者名稱對了的話,那麼ok就賦值與true
mrc.close '全對了,就關閉資料庫
me.hide '隱藏窗體
username = trim(text1.text) '把username指定值為當前使用者輸入的值
else '如果密碼不正確的話,在msgbox
msgbox "輸入密碼吧正確,請重新輸入!", vbokonly + vbexclamation, "警告"
text2.text = ""
text2.setfocus
end if
end if
end if
micount = micount + 1 '最後在每次輸入不正確的時候,都記錄下乙個值,即micount
if micount = 3 then
msgbox "您已輸入3次錯誤!"
me.hide
end if
exit sub
end sub
在cmdcancel裡面寫:
private sub cmdcancel_click()
ok = false '當取消登入時,它會讓ok等於false
me.hide
end sub
好了,**部分實現了登陸,可是你會發現登陸介面不能再主窗體前面出現,所以,以下**可以實現:
在模組裡寫下如下**:
public fmainform as frmmain
sub main()
dim flogin as new frmlogin
flogin.show vbmodal '顯示登入窗體
if not flogin.ok then
endend if
unload flogin
' set fmainform = new frmmain '顯示主窗體
' fmainform.show
frmmain.show
end sub
這樣乙個登陸窗體就完美的顯示了~
機房收費之登陸窗體
總結是在機房結束以後寫的,總結的不及時之前的進度慢了,中間趕了一段時間沒有去及時總結部落格,隨時總結確實有很大的作用,不過只要寫了就不晚,結束之後讓我有了更深刻的了解,乙個簡單的登陸窗體其實也不能想的太過片面,我剛開始做的很多不完善的地方,在做的過程中也回頭不斷地完善。首先我沒做乙個窗體應該先去思考...
機房收費系統登陸問題
在安裝和登入一開始就遇到了好幾個問題 問題一 配置檔案dsn 關於伺服器 local 是本地伺服器,使用 local 連線不上的時候,選擇本機的 如rxs 計算機名 sqlexpress 就可以連線上。問題二 登入機房客戶端 出現了這樣的錯誤 ole db產生錯誤一般是資料型別中數值超出了設定範圍,...
第一次機房收費系統 登陸窗體
前言 不管是學生還是機房,敲的第乙個窗體都是登入,這兩個學習專案有很大的相同點,學生有原始碼,機房卻沒有,需要搞清楚裡邊的邏輯,問題也就迎刃而解了。下面是我畫的機房的流程圖 如下 option explicit private declare function getusername lib adv...