我一直不懂这个程序为什么用这个复杂的结构,Implements ObjectControl是类里面还要用类吗?没看懂,而且Set oDb = oObjectContext.CreateInstance("ADODB.Connection") ’调用时保错“对象变量或with块变量没设置”?????????????类源代码为:
Private oObjectContext As ObjectContext
Private oDb As ADODB.Connection
Private oRs As ADODB.Recordset
Private vSql As Variant
Const vDBConn As Variant = "DSN=crm;UID=sa;PWD=;"
Implements ObjectControl
Private Function ObjectControl_CanBePooled() As Boolean
ObjectControl_CanBePooled = True
End Function
Private Sub ObjectControl_Deactivate()
Set oObjectContext = Nothing
End Sub
Private Sub ObjectControl_Activate()
Set oObjectContext = GetObjectContext()
End Sub
Public Function checkpassword(ByVal username As Variant, ByVal password As Variant) As Variant
'On Error GoTo checkpasswordError
Dim vAccount As New Collection
Dim vresponse As New Collection
Set oDb = oObjectContext.CreateInstance("ADODB.Connection") ’调用时保错“对象变量或with块变量没设置”?????????????
Set oRs = oObjectContext.CreateInstance("adodb.recordset")
Let vSql = "SELECT * FROM employee WHERE employeeid = '" & Trim(username) & "';"
oDb.Open vDBConnSet oRs = oDb.Execute(vSql)
If Not oRs.EOF Then
If Trim(oRs.Fields("Password")) = Trim(password) Then
vAccount.Add Trim(oRs.Fields("employeeid")), "login"
vAccount.Add Trim(oRs.Fields("popedom")), "popedom"
vAccount.Add Trim(oRs.Fields("name")), "name"
vAccount.Add Trim(oRs.Fields("datapopedom")), "datapopedom"
vAccount.Add Trim(oRs.Fields("depart")), "depart"
oObjectContext.SetComplete
oDb.Close
vresponse.Add vAccount, Key:="account"
vresponse.Add False, Key:="error"
Set checkpassword = vresponse ' error handling
Exit Function
Else
vresponse.Add True, Key:="error"
vresponse.Add "密码错!", Key:="reason"
Set checkpassword = vresponse
oDb.Close
oObjectContext.SetComplete
Exit Function
End If
Else
vresponse.Add True, Key:="error"
vresponse.Add "没找到用户名!", Key:="reason"
Set checkpassword = vresponse
oDb.Close
oObjectContext.SetComplete
Exit FunctionEnd If
checkpasswordError:
oObjectContext.SetAbort
vresponse.Add True, Key:="error"
vresponse.Add Err.Description, Key:="reason"
Set checkpassword = vresponse
End Function
Private oObjectContext As ObjectContext
Private oDb As ADODB.Connection
Private oRs As ADODB.Recordset
Private vSql As Variant
Const vDBConn As Variant = "DSN=crm;UID=sa;PWD=;"
Implements ObjectControl
Private Function ObjectControl_CanBePooled() As Boolean
ObjectControl_CanBePooled = True
End Function
Private Sub ObjectControl_Deactivate()
Set oObjectContext = Nothing
End Sub
Private Sub ObjectControl_Activate()
Set oObjectContext = GetObjectContext()
End Sub
Public Function checkpassword(ByVal username As Variant, ByVal password As Variant) As Variant
'On Error GoTo checkpasswordError
Dim vAccount As New Collection
Dim vresponse As New Collection
Set oDb = oObjectContext.CreateInstance("ADODB.Connection") ’调用时保错“对象变量或with块变量没设置”?????????????
Set oRs = oObjectContext.CreateInstance("adodb.recordset")
Let vSql = "SELECT * FROM employee WHERE employeeid = '" & Trim(username) & "';"
oDb.Open vDBConnSet oRs = oDb.Execute(vSql)
If Not oRs.EOF Then
If Trim(oRs.Fields("Password")) = Trim(password) Then
vAccount.Add Trim(oRs.Fields("employeeid")), "login"
vAccount.Add Trim(oRs.Fields("popedom")), "popedom"
vAccount.Add Trim(oRs.Fields("name")), "name"
vAccount.Add Trim(oRs.Fields("datapopedom")), "datapopedom"
vAccount.Add Trim(oRs.Fields("depart")), "depart"
oObjectContext.SetComplete
oDb.Close
vresponse.Add vAccount, Key:="account"
vresponse.Add False, Key:="error"
Set checkpassword = vresponse ' error handling
Exit Function
Else
vresponse.Add True, Key:="error"
vresponse.Add "密码错!", Key:="reason"
Set checkpassword = vresponse
oDb.Close
oObjectContext.SetComplete
Exit Function
End If
Else
vresponse.Add True, Key:="error"
vresponse.Add "没找到用户名!", Key:="reason"
Set checkpassword = vresponse
oDb.Close
oObjectContext.SetComplete
Exit FunctionEnd If
checkpasswordError:
oObjectContext.SetAbort
vresponse.Add True, Key:="error"
vresponse.Add Err.Description, Key:="reason"
Set checkpassword = vresponse
End Function
解决方案 »
- 关于使用SetParent后焦点控制的疑问。
- 询问__用VB提取EXCEL中的某几字段!
- 请教如何用VB代码实现从SQL数据库表中下载数据到本地TEXT中.
- 共享最新收集的一套数据库图标
- 散分100,现在在珠三角,想去苏州找工作,大家给点意见,来者有分!!!
- 大家帮忙看看 这句sql为什么查不到内容?
- 新手求教:自由文本的定义?
- VB6.0 怎么实现用户在客户端自己调整单据的打印格式
- 我用VB编制的程序可以改变EXCEL单元格的颜色,但只能改变一次,把EXCEL关掉后,再试图用VB改变颜色则不行,why?请教诸高手!
- VB中如何用HScroll和VScroll实现文本的滚动?
- 请问VB运行时出现ISAM未插入是什么意思?
- 请问 Validati 事件和LostFocus有什么区别,本人有点弄不明白,
Dim objCompany As ObjectSet objCompany = New crm.loginSet aa = objCompany.checkpassword("admin", "admin")
不知什么地方出了问题?
Microsoft Transaction Server Type Library (mtxas.dll).
[email protected]
MTS
Microsoft 事务服务器类型库
(MTXAS.DLL)
共享属性管理器类型库
(MTXSPM.DLL)
MTS 2.0 管理类型库
(MTXADMIN.DLL)
在win2000下变为
COM+ COM+ 服务类型库
(COMSVCS.DLL)
COM+ 服务类型库
(COMSVCS.DLL)
MTS 2.0 管理类型库
(MTSADMIN.TLB)MTS Admin DLL 引用已经转换为 MTS TLB 引用以获得向后兼容性。COM+ Admin 引用是单独的项目。但是,如果计划使用 COM+ Admin 对象,则需要仔细阅读文档,因为它们支持的集合、属性和方法已经改变。
选择mts即可win98光盘/add-ons目录