首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

xb登进界面,角色判断,多if判断,可以用吗?求帮忙

2012-06-21 
xb登入界面,角色判断,多if判断,可以用吗?求帮忙Public conn As ADODB.ConnectionPrivate Sub Form_Load()S

xb登入界面,角色判断,多if判断,可以用吗?求帮忙
Public conn As ADODB.Connection
Private Sub Form_Load()
  Set conn = New ADODB.Connection
  conn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=修;Data Source=HP049"
  conn.Open

End Sub

Private Sub Command1_Click()
  If id.Text = "" Then
  MsgBox "用户名不能为空!", vbOKOnly + vbInformation, "友情提示"
  id.SetFocus
  Exit Sub
  End If
  If password.Text = "" Then
  MsgBox "密码不能为空!", vbOKOnly + vbInformation, "友情提示"
  password.SetFocus
  Exit Sub
  End If
  Dim strSQl As String
   
  Dim s As String
  strSQl = "select * from xx where name='" & Trim$(id.Text) & "' and password='" & Trim$(password.Text) & "' "
  s="select roletype from xx where name='" & Trim$(id.Text) & "' and password='" & Trim$(password.Text) & "' "

   
  Dim str As New ADODB.Recordset
  Set str = New ADODB.Recordset
  str.CursorLocation = adUseClient
  str.Open strSQl, conn, adOpenStatic, adLockReadOnly
   
  With str
  If .State = adStateOpen Then .Close
  .Open strSQl
  If .EOF Then
  Try_times = Try_times + 1
  If Try_times >= 3 Then
  MsgBox "您已经三次尝试进入本系统,均不成功,系统将自动关闭", vbOKOnly + vbCritical, "警告"
  Unload Me
  Else
  MsgBox "对不起,用户名不存在或密码错误 !", vbOKOnly + vbQuestion, "警告"
  id.SetFocus
  id.Text = ""
  password.Text = ""
  End If
  Else
   
  Unload Me
   
   
  If (s = "管理员") Then 管理员界面.Show
   
  If (s = "采购员") Then 采购员界面.Show
   
  If (s = "销售员") Then 销售员界面.Show
   
  If (s = "boss") Then Form2.Show
   
  End If
   
  End With
End Sub



就是在最后几句  
  If (s = "管理员") Then 管理员界面.Show

If (s = "采购员") Then 采购员界面.Show

If (s = "销售员") Then 销售员界面.Show

If (s = "boss") Then Form2.Show
 

我想做个效果。不同的roletype跳到不同的界面,好像没用,请大家看看怎么个错法??



我的数据库xx表有三列
name|password|roletype

 

[解决办法]
select case s
case "管理员"
管理员界面.Show
case "采购员"
采购员界面.Show
case "销售员"
销售员界面.Show
case "boss"
Form2.Show
case else
msgbox("no from")
end select
[解决办法]
这边的跳转最好弄个数据表配一下,不然以后如果有新的角色或者跳转新的页面就需要修改代码了。
[解决办法]
VB 的 case 没有 break 吗?

你打个断点跟踪一下 s的值。基本的调试技巧还是要学一点。要不然,一点点简单的问题都搞不定,很浪费时间也很影响自己的士气和别人对你的看法。
[解决办法]
你这是sql语句~你给了s一句语句~目的是要判断该用户是否存在且用户名和密码相匹配然后才准许其进行界面,那这里我就要问你了,你连查都不查,你怎么知道你要登陆的是哪个用户?你要先查询,哎~vb~vb~vb~哎~用ADO查询数据后把这个用户的roletype给一个变量,比如:


dim roletype as string
Dim str As New ADODB.Recordset
Set str = New ADODB.Recordset
str.CursorLocation = adUseClient
str.Open strSQl, conn, adOpenStatic, adLockReadOnly

With str
If .State = adStateOpen Then .Close
.Open strSQl
If .EOF Then
.close
Try_times = Try_times + 1
If Try_times >= 3 Then
MsgBox "您已经三次尝试进入本系统,均不成功,系统将自动关闭", vbOKOnly + vbCritical, "警告"
Unload Me
Else
MsgBox "对不起,用户名不存在或密码错误 !", vbOKOnly + vbQuestion, "警告"
id.SetFocus
id.Text = ""
password.Text = ""
End If
else '这里你要把用户的roletype给roletype这个变量
roletype=str("roletype")
select case roletype
case "管理员"
管理员界面.Show
case "采购员"
采购员界面.Show
case "销售员"
销售员界面.Show
case "boss"
Form2.Show
case else
msgbox("no from")
end select
end if
.close
end with

你上面的代码就只判断了用户名和密码都存在的时候是否有数据,有数据就算是用户名和密码正确~这样可不行~那单引号很好用的~
所以你还是要判断用户名和密码存不存在,再考根据他的roletype来判断他应该显示什么窗体

热点排行