DAO问题求解
Public ConnectStr As String
Global MainWs As Workspace
Global MasterDB As Database
ConnectStr = "Provider=MSDASQL;" + "Driver={SQL Server};" + "SERVER=211.57.33.28;DATABASE=DBName;DSN=;UID=sa;" + "PWD=password;" + "Persist Security Info=False"
Set MainWs = DBEngine.Workspaces(0)
Set MasterDB = MainWs.OpenDatabase("", False, False, ConnectStr)
SQLStr = "Select SupplyName FROM B_Supply"
Set TempRs = MasterDB.OpenRecordset(SQLStr, dbOpenSnapshot)
Do While Not TempRs.EOF
Debug.print TempRs!SupplyName
TempRs.MoveNext
Loop
TempRs.Close
Set TempRs = Nothing
在Win7 32系统下运行没有问题,在Win7 64位系统下报错:
“运行时错误 3151,ODBC连接到211.57.33.28失败!”
Set TempRs = MasterDB.OpenRecordset(SQLStr, dbOpenSnapshot)
这条语句执行时在Win7 64位下报错,在32位下执行没有问题。
Set TempRs = MasterDB.OpenRecordset(SQLStr, dbOpenSnapshot, dbSQLPassThrough)
加上"dbSQLPassThrough"这个参数在Win7 32位和64位下执行都没有问题。
但是增加"dbSQLPassThrough"这个参数后,执行.Execute后就会报错。
SQLstr="Update Table_ABC Set FieldBCD=2 Where ID=1"
MasterDB.Execute SQLStr, dbSQLPassThrough
求解,