菜鸟问:我写了个与access连接的登陆界面,报错;请高手指点
Private Sub Form_Load()
Dim cn As New ADODB.Connection
Dim rs1 As New ADODB.Recordset
Dim sql As String
cn.Open "provider=microsoft.jet.oledb.4.0;data source=d:\gift\gift.mdb "
End Sub
Private Sub Command1_Click()
Dim username 'As Integer
Dim psw 'As Integer
username = Tusername.Text
psw = Tpsw.Text
sql = "select * from user where logincode=username and password=psw "
rs1.Open sql
If rs1.RecordCount > 0 Then
Unload Me
pgmain.Show
Else
MsgBox "用户名或密码错误 ", 36, "信息提示 "
End If
End Sub
Private Sub Command2_Click()
If MsgBox( "是否确定离开? ", 36, "信息提示 ") = vbNo Then
Exit Sub
Else
End
End If
End Sub
用了两个文本框:tusername,tpsw
两个按钮:command1,command2
[解决办法]
sql = "select * from [user] where logincode= ' "& username & " ' and [password]= ' "& psw & " ' "
[解决办法]
sql = "select * from user where logincode= ' " & replace(username, " ' ", " ' ' ") & " ' " and replace(password, " ' ", " ' ' ")= ' "& psw & " ' "
[解决办法]
1,user为关键字,要用[]括起来
2,字符型变量引用: ' "& 变量名 & " '
3,数值型变量引用: "& 变量名 & "
[解决办法]
sql = "select * from user where logincode= ' " & replace(username, " ' ", " ' ' ") & " ' " and replace(password, " ' ", " ' ' ")= ' "& psw & " ' "
Unload Me
pgmain.Show
顺序交换一下
你设置一下断点就知道错误在哪句话了
你在form_load里面定义的conn和rs在button click里面用当然不行了
你把定义放在buttn click里面
Private Sub Command1_Click()
Dim username 'As Integer
Dim psw 'As Integer
Dim cn As New ADODB.Connection
Dim rs1 As New ADODB.Recordset
Dim sql As String
cn.Open "provider=microsoft.jet.oledb.4.0;data source=d:\gift\gift.mdb "
username = Tusername.Text
psw = Tpsw.Text
sql = "select * from user where logincode=username and password=psw "
rs1.Open sql
If rs1.RecordCount > 0 Then
Unload Me
pgmain.Show
Else
MsgBox "用户名或密码错误 ", 36, "信息提示 "
End If
End Sub