vb中调用sql数据库数据的登陆界面(1)
vb中调用sql数据库数据的登陆界面
悬赏分:100 - 解决时间:2009-11-17 20:27
我的通用模块代码:
Public conn As New ADODB.Connection Public rs As New ADODB.Recordset Public addflag As Boolean
Public Sub clocn()
On Error Resume Next
If conn.State <> adStateClosed Then conn.Close Set conn = Nothing
End Sub
Public fMainForm As frmMain
Public UserName As String
Public Function ConnectString() As String 'returns a DB ConnectString
ConnectString = "Provider=Microsoft.jet.oledb.4.0;data source=" & App.Path & "\jlb.mdb"
End Function
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
'executes SQL and returns Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
On Error GoTo ExecuteSQL_Error
sTokens = Split(SQL)
Set cnn = New ADODB.Connection
cnn.Open ConnectString '连接数据库
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then '如果在输入的sql语句中出现insert delete update 那么执行sql代码
cnn.Execute SQL
MsgString = sTokens(0) & " query successful"
Else
Set rst = New ADODB.Recordset
rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic '执行查询代码(和上面的功能差不多,区别就是,上面的是执行数据库的更新,包括删除 增加 更新,而这里是查询)
'rst.MoveLast记录集移动到下一条记录 'get RecordCount得到数据库条目总数
Set ExecuteSQL = rst执行数据库查询
MsgString = "查询到" & rst.RecordCount & " 条记录 " '显示查询到的记录数
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
'以上为关闭记录集和数据库连接对象
Exit Function
ExecuteSQL_Error:
MsgString = "查询错误: " & Err.Description
Resume ExecuteSQL_Exit
End Function
Public Function Testtxt(txt As String) As Boolean
If Trim(txt) = "" Then
Testtxt = False
Else
Testtxt = True
End If
End Function
'判断txt是否为空,并且将testtxt设置为真或者假 Public Sub clors() On Error Resume Next
If rs.State <> adStateClosed Then rs.Clone Set rs = Nothing
End Sub
登陆界面的确定按钮代码:
Private Sub Command1_Click()
Dim dl As New ADODB.Recordset
Dim strmsg As String
Dim txtSQL As String
txtSQL = "select uid from dl where UID='" & Trim(yhm.Text) & "'"
Set dl = ExecuteSQL(txtSQL, strmsg)
If dl.BOF = True Then
MsgBox " 用户名错误~", vbExclamation + vbOKOnly, "警告"
yhm.SetFocus
yhm.SelStart = 0
yhm.SelLength = Len(yhm.Text)
Exit Sub
End If
UserName = dl.Fields(0)
txtSQL = "select UID from dl where PWD='" & Trim(mm.Text) & "'"
Set dl = ExecuteSQL(txtSQL, strmsg)
If dl.EOF = True Then
MsgBox " 密码错误~", vbExclamation + vbOKOnly, "警告"
mm.SetFocus
mm.SelStart = 0
mm.SelLength = Len(mm.Text)
Exit Sub
End If
OK = True
zjm.Show
Unload Me
End Sub
现在运行起来的错误是代码“3704”,麻烦说明错误,能帮忙注释最好„
希望可以留下QQ方便我请教„„
提问者: RZ雪儿 - 三级最佳
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
dl是nothing还是有值,
错误代码“3704”是
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示“对象已关闭,不允许操作”。
你的ExecuteSQL函数中有ExecuteSQL_Error:、ExecuteSQL_Exit: 当你查询成功后你并没有主动退出函数,所以ExecuteSQL_Exit:总是会被执行(对象被关闭)。
在
MsgString = "查询到" & rst.RecordCount & " 条记录 " '显示查询到的记录数 后加一句:Exit Function