Call InitComm
m_Quit = False
Call DbConnect
Dim Rs As New ADODB.Recordset
Rs.Open "select * from User_Ctl", Cn, 3, 3
ReDim m_Users(Rs.RecordCount)
Dim i As Integer
i = 0
While Not (Rs.EOF)
m_Users(i).userID = Rs("ID")
m_Users(i).userName = Rs("用户名")
If Rs("用户等级").Value <> "" Then
m_Users(i).userGrade = Rs("用户等级")
Else
m_Users(i).userGrade = "1"
End If
If Rs("密码").Value <> "" Then
m_Users(i).userPass = Rs("密码")
Else
m_Users(i).userPass = ""
End If
m_Users(i).userFingers = Rs("Address")
CmbUser.AddItem m_Users(i).userName
Rs.MoveNext
i = i + 1
Wend
Rs.Close
DbClose
If CmbUser.ListCount > 0 Then
CmbUser.ListIndex = 0
iStep = 1
Timer1.Interval = 200
Timer1.Enabled = True
Else
Timer1.Enabled = False
CmbUser.AddItem "whfj"
CmbUser.ListIndex = 0
MsgBox "系统还没设置用户,请用超级用户登陆!", vbExclamation + vbYes, "提示"
End If
“m_Users(i).userFingers = Rs("Address")”---默认从ACCESS里面字段名Address的第一列数据,问题是在于,根据不同的FINGER其Address不同的。如何判断呢?
m_Quit = False
Call DbConnect
Dim Rs As New ADODB.Recordset
Rs.Open "select * from User_Ctl", Cn, 3, 3
ReDim m_Users(Rs.RecordCount)
Dim i As Integer
i = 0
While Not (Rs.EOF)
m_Users(i).userID = Rs("ID")
m_Users(i).userName = Rs("用户名")
If Rs("用户等级").Value <> "" Then
m_Users(i).userGrade = Rs("用户等级")
Else
m_Users(i).userGrade = "1"
End If
If Rs("密码").Value <> "" Then
m_Users(i).userPass = Rs("密码")
Else
m_Users(i).userPass = ""
End If
m_Users(i).userFingers = Rs("Address")
CmbUser.AddItem m_Users(i).userName
Rs.MoveNext
i = i + 1
Wend
Rs.Close
DbClose
If CmbUser.ListCount > 0 Then
CmbUser.ListIndex = 0
iStep = 1
Timer1.Interval = 200
Timer1.Enabled = True
Else
Timer1.Enabled = False
CmbUser.AddItem "whfj"
CmbUser.ListIndex = 0
MsgBox "系统还没设置用户,请用超级用户登陆!", vbExclamation + vbYes, "提示"
End If
“m_Users(i).userFingers = Rs("Address")”---默认从ACCESS里面字段名Address的第一列数据,问题是在于,根据不同的FINGER其Address不同的。如何判断呢?
****************************************
应该是第一行吧?循环也不应该只有第一行区分应该m_Users(i).userID 可以区分
fuser_id fentry_id finger faddress
user1 1 finger1 address1
user1 2 finger2 address2
userID As Integer
userName As String
userGrade As String
userPass As String
userFingers As String
userFinger() As Byte
End Type
Public m_Users() As Type_User
Public m_UsersId() As Type_User
在登陆窗体,有个登录名为combobox,tabindex为3.
现在的问题就是无论哪个手指登录(大拇指为1,其他手指就是2、3、4等等),其操作员均为1,不知道如何解决。
问题是,多个finger和address均以address字段第一行的身份登录到系统。
问题,是否可从CmdLevelSearch函数里面的Address参数取到Address的值呢,如果可以,那应该怎么写
用类和集合来解决,一个人定义几个手指就建立几个对象。
这样每个手指都有自己的 Address 了。PS:你的程序是不是还有外接设备?
先定义一个userFinger的类,
再定义一个userFingers的集合,
把你的用户Type_User类型改成class_user 类,
里面定义一个userFingers集合的对象。
这样你就可以每个用户多个userFinger了,想用几个就用几个,add 对象就是了。
试试吧。呵呵,因为用类嘛,所以比较累。但定义完成后,比较好用。
现在的想法是
matchs = CmdLevelSearch(CHAR_BUFFER_A, Address, userInfo)
有没有什么办法可以得到Address的值在VB里面。
matchs = CmdLevelSearch(CHAR_BUFFER_A, m_Users(j).userFingers, userInfo)
If (matchs = 0) Then
Picture1.AutoRedraw = True
Set Picture1.Picture = LoadPicture(App.path & "\img\succ.bmp")
PaintPicture Picture1, 0, 0
lblMess.Caption = "找到相同!"
m_CurrUser = m_Users(j)在Form_Load事件里面:
While Not (Rs.EOF)
m_Users(i).userID = Rs("ID")
m_Users(i).userAddress = Rs("Address")
m_Users(i).userName = Rs("用户名")
If Rs("用户等级").Value <> "" Then
m_Users(i).userGrade = Rs("用户等级")
Else
m_Users(i).userGrade = "1"
End If
If Rs("密码").Value <> "" Then
m_Users(i).userPass = Rs("密码")
Else
m_Users(i).userPass = ""
End If
m_Users(i).userFingers = Rs("Address")
CmbUser.AddItem m_Users(i).userName
Rs.MoveNext
i = i + 1
Wend
m_CurrUser = m_Users(j)怎么才能找到跟Form_Load取得联系?