Ⅰ 怎樣用VB編寫一個登陸系統,可以注冊賬號的那種
VB編寫一個可以注冊帳號的登錄系統步驟:
1)1)首先需要用資料庫軟體(如ACCESS軟體)建立一個資料庫,新建幾個表,用以記錄帳號密碼的表、登錄日誌表和其他與此有關的所需要的表等。
2)VB新建數據工程,此時VB6集成調試環境左邊工具箱內已載入了有關資料庫編程必須的控制項。
3)然後在FORM1窗體中添加ADO數據控制項,右鍵-ADODC1控制項屬性頁-使用連接字元串,選生成,在提供者選項中選合適的OLE DB連接資料庫等。在ADODC1控制項屬性頁使用連接字元串空白文本窗口中就有一長串字元串,注意該字元串可復制到程序代碼用於編程。
ADODC1控制項屬性頁的數據源內有命令文本(SQL)編寫窗口可編寫SQL查詢語言。該窗口的SQL語句可復制到程序代碼用於編程。
4)可以將SQL查詢語句賦值給ADO數據控制項的RecordSource屬性實現。
5)數據的輸入、修改等可靈活應用文本框或數據表格控制項與ADO數據控制項通過代碼綁定。
6)想使用ADO數據對象,也可將ADO數據控制項所寫的代碼較方便的移植給ADO數據對象。
以下是用ADO數據對象編寫的登錄和注冊的代碼:
1)標准模塊代碼:
OptionExplicit
PublicloginnameAsString
PubliccnAsNewADODB.Connection'定義資料庫的連接存放數據和代碼
PublicrsAsNewADODB.Recordset
PublicsqlAsString
PublicNewnameAsString
2)注冊窗體代碼:
OptionExplicit
DimPasswordAsString
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13AndText1<>""Then
sql="select*from用戶管理where用戶名='"&Text1.Text&"'"'and密碼='"&Text2.Text&"'"
cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"datadata.mdb;PersistSecurityInfo=False"
cn.Open
rs.CursorLocation=adUseClient
rs.Opensql,cn,adOpenDynamic,adLockOptimistic
Ifrs.EOF=TrueThen'沒有該用戶名可以注冊
MsgBox"用戶名可以注冊!"
rs.Close
cn.Close
Newname=Text1.Text
Text4=Newname
Text2.SetFocus
Else
MsgBox"該用戶名已經存在,換名注冊!"
Text1.Text=""
Text1.SetFocus
EndIf
EndIf
ExitSub
finish:
MsgBoxErr.Description
EndSub
PrivateSubText2_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13AndText2<>""Then
Password=Text2.Text
Text5=Password
Text3.SetFocus
EndIf
EndSub
PrivateSubText3_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13AndText3.Text=Text2.TextThen
Command3.Enabled=True
Command3.SetFocus
ElseIfKeyAscii=13AndText3.Text<>Text2.TextThen
Text3=""
Text3.SetFocus
EndIf
EndSub
PrivateSubCommand1_Click()
UnloadMe
EndSub
PrivateSubCommand3_Click()
sql="select*from用戶管理"
cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"datadata.mdb;PersistSecurityInfo=False"
cn.Open
rs.CursorLocation=adUseClient
rs.Opensql,cn,adOpenDynamic,adLockOptimistic
rs.AddNew
rs.Fields(0)=Newname
rs.Fields(1)=Password
rs.Update
rs.Close
cn.Close
Command3.Enabled=False
EndSub
3)登錄窗體代碼:
OptionExplicit
DimpnumAsInteger
PrivateSubCommand1_Click()
OnErrorGoTofinish'防錯代碼,防止意外而導致的退出
sql="select*from用戶管理where用戶名='"&Text1.Text&"'and密碼='"&Text2.Text&"'"
cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"datadata.mdb;PersistSecurityInfo=False"
cn.Open
rs.CursorLocation=adUseClient
rs.Opensql,cn,adOpenDynamic,adLockOptimistic
'以上使用最通用的方法來查詢資料庫中是否有匹配的記錄
Ifrs.EOF=TrueThen'如果沒有記錄則說明用戶或密碼為錯誤的
Ifpnum<2Then'pnum就是密碼驗證次數,當次數超過3次,系統會自動保護退出
pnum=pnum+1
MsgBox"用戶名或密碼錯誤!",vbInformation,"錯誤次數:"&pnum
rs.Close
cn.Close
Text1.Text=""
Text2.Text=""
Text1.SetFocus
ExitSub
Else
MsgBox"用戶名或密碼錯誤超過三次,系統會自動退出",vbInformation,"提示"
End
EndIf
Else
loginname=rs.Fields(0)
Form1.Show
rs.Close
cn.Close
EndIf
ExitSub
finish:
MsgBoxErr.Description
rs.Close
cn.Close
EndSub
PrivateSubText2_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then'獲取按鍵,如果是回車就運行image_click按鈕的內容
CallCommand1_Click
EndIf
EndSub
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
Text2.SetFocus
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubCommand3_Click()
frmZhuce.Show
EndSub