1
此示例中出现了什么问题?即使在所提供的tbl名称是完美工作的链接表中的一个时,它也会在指定位置中断。打开qd.openrecordset时出错
Sub showLinked(tbl As String)
'tbl is the name of an existing local linked table (SQL Server)'
Dim db As DAO.Database, rs As DAO.Recordset
Dim qd As QueryDef
Set db = CurrentDb
With db.TableDefs(tbl)
Debug.Print .Name, .SourceTableName, .Connect
Set qd = db.CreateQueryDef("")
qd.Connect = .Connect
qd.SQL = "select 1 xxx from " & .SourceTableName
qd.ReturnsRecords = True
Set rs = qd.OpenRecordset() 'breaks here: error 3146 - "ODBC--call failed"
Debug.Print "test connection:", rs.Fields(0)
End With
End Sub
从“&.SourceTableName”中选择1 xxx会给你什么?这是SQL Server中有效的'SELECT'语句吗? – HansUp
是的,无效的SQL。使用''从'&.SourceTableName'中选择顶部1 * * – Gustav
@HansUp:它返回一个记录集,其中1个字段的值为1,它的值为1 - 在SSMS中工作。 @Gustav:试过你的建议,同样的错误。 –