vb连接SQL数据库后制作一个登陆界面。
要求就是在form1登录不同的帐号登录后出现那个帐号人的信息在form2出现。比如我form1中输入帐号(是一串数字)和密码的的文本框分别是text1和text2。“确认...
要求就是在form1登录不同的帐号登录后出现那个帐号人的信息在form2出现。比如
我form1中输入帐号(是一串数字)和密码的的文本框分别是text1和text2。“确认键”按钮是commar1,密码和帐号对的时候跳转到form2,在form2的的文本框text1中出现text1的帐号。在线等,急。 展开
我form1中输入帐号(是一串数字)和密码的的文本框分别是text1和text2。“确认键”按钮是commar1,密码和帐号对的时候跳转到form2,在form2的的文本框text1中出现text1的帐号。在线等,急。 展开
2个回答
展开全部
Option Explicit
Private Function Selectsql(SQL As String) As ADODB.Recordset '返回ADODB.Recordset对象
Dim ConnStr As String
Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Set Conn = New ADODB.Connection
'On Error GoTo MyErr:
ConnStr = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=登录数据库用户名(默认为sa);Password=登录数据库密码;Initial Catalog=数据库名;Data Source=服务器名(默认为:MERRYCHINA)" '这是连接SQL数据库的语句
Conn.Open ConnStr
rs.CursorLocation = adUseClient
rs.Open Trim$(SQL), Conn, adOpenDynamic, adLockOptimistic
Set Selectsql = rs
'Exit Function
'MyErr:
'Set rs = Nothing
'Set Conn = Nothing '释放相关的系统资源
'MsgBox Err.Description, vbInformation, "系统提示" '显示出错信息
End Function
Private Sub Form_Load()
Dim SQL As String
Dim rs As ADODB.Recordset
Dim X As Long
On Error GoTo Err_box
SQL = " select * from 用户表"
Set rs = Selectsql(SQL)
If rs.RecordCount > 0 Then
rs.MoveFirst
For X = 1 To rs.RecordCount
Combo1.AddItem rs.Fields("用户名").Value
rs.MoveNext
Next X
Combo1.ListIndex = 0
End If
rs.Close
Exit Sub
Err_box:
End Sub
Private Sub Command1_Click()
Dim SQL As String
Dim rs As ADODB.Recordset
If Text1.Text = "" Then
MsgBox "请输入口令!", 16
Text1.SetFocus
Exit Sub
End If
If Combo1.Text = "" Then
MsgBox "请选择登录用户!", 16
Combo1.SetFocus
Exit Sub
End If
SQL = "SELECT * FROM 用户表 WHERE 用户名='" & Combo1.Text & "' AND 密码='" & Text1.Text & "' "
Set rs = Selectsql(SQL)
If rs.RecordCount > 0 Then
Form1.Show '想要打开的主窗体
MsgBox "恭喜兄弟,登录成功!", 64, "提示"
Unload Me
Else
MsgBox "口令不对,请重新输入!", 16, "提示"
Text1.SetFocus
End If
End Sub
'**********************************************************************
'说明:1) 在工程中引用Microsoft ActiveX Data Objects 2.8 Library ,其它版本也行如:2.0
' 2) 在窗体中加Texe1.text(文本框控件),Combo1.text(组合框控件),Command1(命令按钮)各一个
' 3) 在SQL Server2000中创建数据库,新建表"用户表",表中包含"ID,姓名,密码"等字段,然后将以上代码复制,OK搞定
4) 以上方式无需加载ADO控件,方便!
>密码和帐号对的时候跳转到form2,在form2的的文本框text1中出现text1的帐号。
这个你只要设置一个全局变量,然后对的时候把帐号放到全局变量里,然后在打开form2时显示这个全局变量到text1里就行了。
Private Function Selectsql(SQL As String) As ADODB.Recordset '返回ADODB.Recordset对象
Dim ConnStr As String
Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Set Conn = New ADODB.Connection
'On Error GoTo MyErr:
ConnStr = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=登录数据库用户名(默认为sa);Password=登录数据库密码;Initial Catalog=数据库名;Data Source=服务器名(默认为:MERRYCHINA)" '这是连接SQL数据库的语句
Conn.Open ConnStr
rs.CursorLocation = adUseClient
rs.Open Trim$(SQL), Conn, adOpenDynamic, adLockOptimistic
Set Selectsql = rs
'Exit Function
'MyErr:
'Set rs = Nothing
'Set Conn = Nothing '释放相关的系统资源
'MsgBox Err.Description, vbInformation, "系统提示" '显示出错信息
End Function
Private Sub Form_Load()
Dim SQL As String
Dim rs As ADODB.Recordset
Dim X As Long
On Error GoTo Err_box
SQL = " select * from 用户表"
Set rs = Selectsql(SQL)
If rs.RecordCount > 0 Then
rs.MoveFirst
For X = 1 To rs.RecordCount
Combo1.AddItem rs.Fields("用户名").Value
rs.MoveNext
Next X
Combo1.ListIndex = 0
End If
rs.Close
Exit Sub
Err_box:
End Sub
Private Sub Command1_Click()
Dim SQL As String
Dim rs As ADODB.Recordset
If Text1.Text = "" Then
MsgBox "请输入口令!", 16
Text1.SetFocus
Exit Sub
End If
If Combo1.Text = "" Then
MsgBox "请选择登录用户!", 16
Combo1.SetFocus
Exit Sub
End If
SQL = "SELECT * FROM 用户表 WHERE 用户名='" & Combo1.Text & "' AND 密码='" & Text1.Text & "' "
Set rs = Selectsql(SQL)
If rs.RecordCount > 0 Then
Form1.Show '想要打开的主窗体
MsgBox "恭喜兄弟,登录成功!", 64, "提示"
Unload Me
Else
MsgBox "口令不对,请重新输入!", 16, "提示"
Text1.SetFocus
End If
End Sub
'**********************************************************************
'说明:1) 在工程中引用Microsoft ActiveX Data Objects 2.8 Library ,其它版本也行如:2.0
' 2) 在窗体中加Texe1.text(文本框控件),Combo1.text(组合框控件),Command1(命令按钮)各一个
' 3) 在SQL Server2000中创建数据库,新建表"用户表",表中包含"ID,姓名,密码"等字段,然后将以上代码复制,OK搞定
4) 以上方式无需加载ADO控件,方便!
>密码和帐号对的时候跳转到form2,在form2的的文本框text1中出现text1的帐号。
这个你只要设置一个全局变量,然后对的时候把帐号放到全局变量里,然后在打开form2时显示这个全局变量到text1里就行了。
追问
大神,这些代码是复制在哪里?不是放在command1中吗?有command1是不是要添加ADO控件?我是用ADO控件来做的,做图书管理系统但是只要不管哪个读者的用自己的帐号(一串数字)和密码登录了之后看到的form2都是一样的,这样一点这让我很抓狂。
追答
上面的用了一个Combo1控件放用户名,TEXT1控件放密码,COMMAND1控件 用于确认。
你如果要让我修改你的代码,你的代码总要有的吧。
展开全部
创建一个窗体,然后方式三个输入控件,下面函数中的变量就是要输入,其中sDBName可以不需输入,默认为master:
SQL Server服务器名
用户名
密码
Public Function MSSQLServer(ByVal sDBName As String) As String
MSSQLServer = "Driver={SQL Server};" & _
"Server=" & Trim(sServerName) & ";" & _
"Database=" & Trim(sDBName) & ";" & _
"Uid=" & Trim(sUserName) & ";" & _
"Pwd=" & Trim(sPassWord) & ";"
End Function根据上面输入的值,构造谅解字符串
点击按钮链接后执行:
Private Cn As ADODB.Connection
Cn.ConnectionString = MSSQLServer(sDatabase)
如果输入正确就能链接数据库
之后就可以进行其他数据库操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询