SQL Server是一定要装的
至少也要装个简化版的MSDEDSN less:
Connect = "Provider=SQLOLEDB;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User ID=myUsername;" & _
"Password=myPassword;"
oConn.Open "Driver={SQL Server};" & _
"Server=MyServerName;" & _
"Database=myDatabaseName;" & _
"Uid=myUsername;" & _
"Pwd=myPassword;"
至少也要装个简化版的MSDEDSN less:
Connect = "Provider=SQLOLEDB;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User ID=myUsername;" & _
"Password=myPassword;"
oConn.Open "Driver={SQL Server};" & _
"Server=MyServerName;" & _
"Database=myDatabaseName;" & _
"Uid=myUsername;" & _
"Pwd=myPassword;"
Public Const gconIniPath = "WuYePro.ini"
Private mcolINI As New Collection
Private mblngf_strReadINI As Boolean
'========*=========*=========*=========*=========*=========*=========*=========*
'== 功 能:提取数据库表路径
'== 参 数:strString
'== 返 回 值:strString
'== 过程性质:自定义过程
'== 作 者:郭东风/2001年11月27日
'== 修改记事:
'========*=========*=========*=========*=========*=========*=========*=========*
Public Sub gConnectDatabase()
'//单机版
Dim strsql As String
Dim strDbServer As String '//数据库服务器名
Dim strDB As String '//数据库名
Dim strUID As String '//登陆名
Dim strPwd As String '//密码
Dim RS_Open As New ADODB.Recordset
On Error GoTo errHandle
strDbServer = gf_strReadINI("DBSERVER")
strUID = gf_strReadINI("UID")
strPwd = gf_strReadINI("PWD")
strDB = gf_strReadINI("DB")
'//#
If gbolDeskTop Then
'//用ado连接数据库
gobjDatabase.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\WuYePro.mdb;Jet OLEDB:Database Password=" & CONPASSWORD
ElseIf gbolNet Then
'//直接连Sql server7.0数据库
gobjDatabase.Open "Provider=SQLOLEDB.1;Persist Security Info=False;UID=" & strUID & ";PWD=" & strPwd & ";Initial Catalog=" & strDB & ";Data Source=" & strDbServer & ""
End If
Exit Sub
errHandle:
Select Case Err.Number
Case -2147467259
MsgBox "连接数据库服务器错误,请确认数据库、网络工作状态!" & Chr(10) & Chr(13) & "用户要有登陆数据库服务器的权限", vbOKOnly + vbCritical, gCONSysTitle
Case -2147217843
MsgBox "用户名密码错误!请与管理员联系!", vbOKOnly + vbCritical, gCONSysTitle
Case Else
MsgBox "与数据库相关错误!请与管理员联系!", vbOKOnly + vbCritical, gCONSysTitle
End Select
'//错误日志 按月生成
Dim lngFreeFileOUt As Long
lngFreeFileOUt = FreeFile
Open App.Path & "\" & Format(Date, "yyyymm") & "err.log" For Append As lngFreeFileOUt
Print #lngFreeFileOUt, " err.number " & Err.Number & " err.desc: " & Err.Description & " time: " & Now
Close #lngFreeFileOUt
Err.Number = 0
End
End Sub
'================================================================================
'=== 函数功能:读Archive.ini中的数据库连接设置
'=== 参 数:strKey->键值
'=== 返 回 值:
'===
'=== 开 发 者:郭东风
'=== 修改纪录:孙乃峰2002-3-29
'===
'================================================================================
Public Function gf_strReadINI(ByVal strKey As String) As String
Dim strText As String
Dim strKeyInfo As String
Dim strDataInfo As String
Dim blnKey As Boolean
Dim lngFreefile As Long
On Error GoTo errHandle
If mblngf_strReadINI = False Then
blnKey = False
'INI
lngFreefile = FreeFile
Open App.Path & "\" & gconIniPath For Input As lngFreefile Do While Not EOF(1)
Line Input #lngFreefile, strText
strText = Trim(strText)
If Left(strText, 1) <> "'" Then
If Left(strText, 1) = "[" And Right(strText, 1) = "]" Then
strKeyInfo = Mid(strText, 2, Len(strText) - 2)
blnKey = True
Else
If blnKey = True Then
mcolINI.Add strText, UCase(strKeyInfo)
blnKey = False
End If
End If
End If
Loop Close lngFreefile
mblngf_strReadINI = True
End If
On Error Resume Next
gf_strReadINI = mcolINI.Item(UCase(strKey))
Exit Function
errHandle:
Select Case Err.Number
Case 52, 53, 75, 76
MsgBox gconIniPath & "文件不存在或损坏", vbOKOnly + vbInformation, gCONSysTitle
Case Else
MsgBox "程序运行出现" & Err.Description, vbOKOnly + vbInformation, gCONSysTitle
End Select
End
End Function'******WuYePro。ini 文件内容********************************************
'数据库服务器
[DB]
WuYePro'用户
[UID]
WuYe
'密码
[PWD]
WuYe
'数据库
[DBSERVER]
server
Conn.Open "Provider=SQLOLEDB;Data Source=serverName;
Initial Catalog=databaseName;
User ID=userName;Password=userPassword;"
....
Driver={SQL Server};Database=;Server=;uid=;pwd=;
当然,可以不用ODBC,只见用ADO读配置文件什么的,或者写死,都可以做到连接到数据库。具体的写法可以看看MSDN上的帮助。Dim Cn As New ADODB.ConnectionCn.Open "Provider=SQLOLEDB;Data Source=ServerName;
Initial Catalog=DatabaseName;
User ID=UserName;Password=Passwd;"其中
ServerName: 装有SQL Server服务器名称。
DatabaseName:不需要我写吧?
UserName:
Passwd:这样就连接上数据库了,接下来就是正常的操作了。
试试看巴。
你可以用ADO直接连接数据库的
给我连接字符串的请在一台没有装SQLSERVER的而且也没有用odbc配置此SQLSERVER数据库的别名的机子上(装有MDAC2.5)连接一下试试!
注意是没有装SQLSERVER的客户端或者服务端,简化版的MSDE也没有
ODBC没有配置过(配置过再删除也不行!配置过系统DSN后再手动在ODBC中删除是没有用的,仍然可以用以连接数据库。)
如果是这样,能不能解释一下。
是不是ado只是提供了连接sqlserver的接口,具体实现还是要调用odbc或是sqlserver的dll?
然后用ado控件试一下
如果不行,就没戏了
StrConnection = "Provider=SQLOLEDB;PWD=;UID=username;Database=dataname;Server=" & ServerIp
Set Cn = New ADODB.Connection
On Error GoTo lExit
Cn.Open StrConnection
GetRConn = True
Exit Function
lExit:
MsgBox "网 络 中 断 或 网 络 忙!请检查!!!", vbInformation, "网络故障!!"
GetRConn = False
End Function
记住,如果是 98 访问2000 那么要 在2000 上建user用户,如果是2000访问2000
那么要在运行里先访问2000。即是输入\\+Ip 即可