各位高手,请帮帮我吧!

becky1289 2005-05-06 06:03:15
我在作一个以VB作前台,以SQL作后台的数据库系统,在我的机器上运行很好用,但我将它放到同学机器上后,总是出现实时错误,先是实时错误91,然后又是实时错误3704,错误总是出现在这条语句If mrc.EOF = True Then
,我不知道究竟我的程序哪里错了,请帮我看看吧!
这是我的模块代码;
Sub main()
Dim fLogin As New frmlogin
fLogin.Show vbModal
If Not fLogin.OK Then
'Login Failed so exit app
End
End If
Unload fLogin

Dim fLpassage As New frmpassage
fLpassage.Show vbModal
If Not fLpassage.OK Then

End
End If
Unload fLpassage


Set fMainForm = New frmmain
fMainForm.Show
End Sub
Public Function ConnectString() _
As String
'returns a DB ConnectString
ConnectString = "FileDSN=kaoshi.dsn;UID=sa;PWD="

'ConnectString = "driver={SQL Server};server=zxh;uid=;pwd=;database=text"
'此为IP地址访问

End Function
Public Function ExecuteSQL(ByVal SQL _
As String, MsgString As String) _
As ADODB.Recordset
'执行SQL语句,并返回记录集对象
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
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
这是我的登陆代码:
Option Explicit
Public OK As Boolean
Dim micount As Integer

Private Sub cmdCancel_Click()


OK = False
Me.Hide
End Sub

Private Sub cmdOK_Click()
Dim txtSQL As String
Dim mrc As ADODB.Recordset
Dim MsgText As String




'txtusername = ""
If Trim(txtusername.Text = "") Then
MsgBox "用户名不能空缺,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtusername.SetFocus
Else
txtSQL = "select * from user_Info where user_ID = '" & txtusername.Text & " '"


Set mrc = ExecuteSQL(txtSQL, MsgText)

If mrc.EOF = True Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtusername.SetFocus
Else

If Trim(mrc.Fields(1)) = Trim(txtpassword.Text) Then
OK = True
User_ID = Trim(txtusername)
keguan = 0
mrc.Close

Me.Hide
frmpassage.Show


Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtpassword.SetFocus
txtpassword.Text = ""
End If
End If
End If

micount = micount + 1
If micount = 3 Then
Me.Hide
End If
Exit Sub

End Sub

Private Sub Form_Load()

cmdok.Default = True
cmdcancel.Cancel = True

OK = False
micount = 0


End Sub

...全文
119 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
becky1289 2005-05-07
  • 打赏
  • 举报
回复
非常感谢各位大侠的帮助,我的系统已经能正常运行了!谢谢!!!!!
但我还有一个问题:我要在局域网中调用此数据库怎办?
我将ConnectString = "FileDSN=kaoshi.dsn;UID=sa;PWD="
改为ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=用户;password=密码;Initial Catalog=数据库;Data Source=服务器"时,无法调用数据库。是哪儿用错了?
请多指教!
becky1289 2005-05-06
  • 打赏
  • 举报
回复
先说一声谢谢了,但if mrc.state then
'判斷mrc是否打開((((((((((这里不用写语句吗?))))))))))))))))
end if
加到哪儿呀?
MaDaHai 2005-05-06
  • 打赏
  • 举报
回复
前面加一句
if mrc.state then
'判斷mrc是否打開
end if
benjamin8064 2005-05-06
  • 打赏
  • 举报
回复
ConnectString = "driver={SQL Server};server=zxh;uid=;pwd=;database=text"
用这种方式访问数据库试试看
vbman2003 2005-05-06
  • 打赏
  • 举报
回复
多半是没有连接上数据库
你检查一下数据源设置有没有问题
在ExecuteSQL函数中不要用ConnectString连接数据库
改 cnn.Open ConnectString
为 cnn.open "kaoshi","sa",""
试试吧

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧