[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问
用vb开发了一个小程序,在A机器(2000系统上运行正常). 在B机器上(XP系统),主登录介界下的组合框下的值取数据库中的数正常,可是,在点确定按钮时就出现[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问,然后本程序死掉.
请问这是怎么回事?为什么Win2000好使?
主要源码:
Option Explicit
Dim sql As String
Dim str As String
Dim sql1 As String
Dim i As Integer
Dim Cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Private Sub Form_Load()
Cn.ConnectionString = "Provider=SQLOLEDB.1;Password=83152003;Persist Security Info=True;User ID=sa;Initial Catalog=Mroom;Data Source=10.65.128.156"
sql = "select name from Muser "
Rs.CursorLocation = adUseClient
Rs.Open sql, Cn, adOpenDynamic, adLockPessimistic
Rs.MoveFirst
For i = 0 To Rs.RecordCount - 1
Cb1.AddItem (Rs.Fields("name"))
Rs.MoveNext
Next
Rs.MovePrevious
Cb1.Text = Rs.Fields("name")
End Sub
Private Sub Command1_Click()
main.StatusBar1.Panels(4).Text = Cb1.Text
Dim Cn1 As New ADODB.Connection
Dim Rs1 As New ADODB.Recordset
Cn1.ConnectionString = "Provider=SQLOLEDB.1;Password=83152003;Persist Security Info=True;User ID=sa;Initial Catalog=Mroom;Data Source=10.65.128.156"
Cn1.Open
sql1 = "select * from muser where name='" & Trim(Cb1.Text) & "'"
Rs1.CursorLocation = adUseClient
Rs1.Open sql1, Cn1, adOpenDynamic, adLockPessimistic
If Rs1.RecordCount = 0 Then
MsgBox "无此用户,请重新选择!", vbOKOnly
Else
If Trim(Text2.Text) = Trim(Rs1.Fields("password")) Then
If Rs1.Fields("authority") = 1 Then
Load backmanager
backmanager.Show
Unload Me
Else
Load main
main.Show
Unload Me
End If
Else
MsgBox "用户名或密码不对,请重新输入!", vbOKOnly, "警告"
Cb1.SetFocus
End If
End If
End Sub