這是代碼:
Public Sub Opendb()
On Error GoTo Errmsg
If Rs.state = 0 Then Rs.CursorLocation = adUseClient Else If Rs.state = 1 Then Rs.Close
If Cn.state = 0 Then
Set Cn = Nothing
Cn.ConnectionString = "Provider=sqloledb;Connect timeout=1;Data Source=" & ServerName & ";Initial Catalog=" & Dbname & ";User Id=sa;Password=" & Sa & ";"
Debug.Print "Provider=sqloledb;Connect timeout=1;Data Source=" & ServerName & ";Initial Catalog=" & Dbname & ";User Id=sa;Password=" & Sa & ";"
Cn.Open
Else
Cn.Execute "select getdate()"
End If
Exit Sub
Errmsg:
MsgBox "資料庫訪問失敗,請檢查網路連接!", vbCritical, Err.Source
End Sub
這是debug出來的鏈接字串:
Provider=sqloledb;Connect timeout=1;Data Source=192.168.249.157;Initial Catalog=con2018;User Id=sa;Password=******;
uj5u.com熱心網友回復:
ErrorNo, Err.Description是什么?開發階段可以讓例外直接提示出來,不需要捕獲uj5u.com熱心網友回復:
SQL SERVER什么版本?第一、先確認一下是不是網路問題,能否訪問到192.168.249.157;
第二、確認是不是SQL SERVER的問題,你可以先打開你機器上的SQL Server Management Studio,服務器名稱那里用IP,試試能不能連接,如果不能連接,可能是沒有開啟IP地址網路訪問,在SQL Server配置管理器中將TCP/IP啟用。
uj5u.com熱心網友回復:
Set Cn = Nothing '還沒有連接資料庫,提前清除資料庫連接物件,合理嗎?
Cn.ConnectionString = "Provider=sqloledb;Connect timeout=1;Data Source=" & ServerName & ";Initial Catalog=" & Dbname & ";User Id=sa;Password=" & Sa & ";"
'這個陳述句中的幾個變數的值在哪里, ServerName 服務器名稱變數、 Dbname 資料庫名稱變數、 Sa 登錄密碼變數的值在哪里,如果沒有值,肯定連接不上資料庫。
Cn.Open
如果是本地連接,連接的是 ABCD 資料庫,登錄密碼是 1234,連接SQL Server 2008 資料庫陳述句應該是:
Cn.ConnectionString = "Provider=SQLOlEDB.1;persist security info=false;data source=.;user id=sa;Password=ABCD;initial catalog =1234"
uj5u.com熱心網友回復:
先在控制面板中做個odbc連接資料庫試試通不通uj5u.com熱心網友回復:
服務器上是不是裝了兩個或兩個以上SQL server 實體?uj5u.com熱心網友回復:
Connect timeout=1改成Connect timeout=0 試試轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/33368.html
