DB trusted_connection无法正常工作

Sub INTL() Dim conn As ADODB.Connection Dim rec1 As ADODB.Recordset Dim thisSql As String Set conn = New ADODB.Connection Dim sConn As String sConn = "Provider=SQLOLEDB;Trusted_Connection=Yes;Server=mydb;trusted_connection=yes" conn.Open sConn 'Set and Excecute SQL Command' thisSql = "select top 5 * from useraccount"  'Open Rcordset' Set rec1 = New ADODB.Recordset rec1.Open thisSql, conn  'Copy Data to Excel' ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset) End Sub 

该代码不在Excel中编译,错误:Sub或函数未定义

如果这是在你的IDE完全是这样的:

 Dim sConn As String sConn = "Provider=SQLOLEDB;Trusted_Connection=Yes;Server=mydb;trusted_connection=yes" conn.Open sConn 

那么你错过了指令分隔符,或者更好的,单独的行:

 Dim sConn As String sConn = "Provider=SQLOLEDB;Trusted_Connection=Yes;Server=mydb;trusted_connection=yes" conn.Open sConn 

另外,在这一行上:

 ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset) 

这些括号是强制传递objMyRecordset值(即对象指针的副本)到CopyFromRecordset方法。 这将是一个更典型的呼吁:

 ActiveSheet.Range("A1").CopyFromRecordset objMyRecordset 

如果CopyFromRecordset正在使用logging集ByVal ,那么它是按值传递的。 如果它采用ByRef ,那么它通过引用传递。 通常不需要强制ByVal