Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 数据源名称太长错误_Vba_Excel - Fatal编程技术网

Vba 数据源名称太长错误

Vba 数据源名称太长错误,vba,excel,Vba,Excel,我是VBA环境的新手,我正在尝试从表“表1”中复制一个特定列,如“Column1\u name”、“Column\u name”。 当我执行下面的代码时,我收到的错误是“数据源名称太长”。 另外,我不确定下面输入的Sql代码是否正确地显示了从oracle到excel的列 需要手动调试此错误和查询。 提前谢谢 代码- Sub data_audit() Dim cn As ADODB.Connection Set cn = New ADODB.Connection

我是VBA环境的新手,我正在尝试从表“表1”中复制一个特定列,如“Column1\u name”、“Column\u name”。 当我执行下面的代码时,我收到的错误是“数据源名称太长”。 另外,我不确定下面输入的Sql代码是否正确地显示了从oracle到excel的列

需要手动调试此错误和查询。 提前谢谢

代码-

    Sub data_audit()

    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    Dim rs As New ADODB.Connection
    Dim strConn As String
    Dim sqlStr As String


strConn = "Driver={Oracle in OraClient11g_home1}; Dbq=; Uid=; Pwd=;"
cn.Open strConn
sqlStr = "SELECT distinct" & Chr(10)
sqlStr = sqlStr & "SAM_ID," & Chr(10)
sqlStr = sqlStr & "DP_QV_Name," & Chr(10)
sqlStr = sqlStr & "From CMS.CMS_SAM_ALL_DATA"
rs.Open sqlStr, strConn <<<<<< error" Missing Expression"
    Sheets("Working").Range("J2:g1047856").ClearContents
    Sheets("Working").Cells(2, 1).CopyFromRecordset rs
    rs.Close
    cn.Close
    Set cn = Nothing
    MsgBox " LOADED!"

    End Sub
Sub data_audit()
Dim cn作为ADODB.Connection
Set cn=New ADODB.Connection
将rs调暗为新ADODB.连接
作为字符串的Dim strConn
作为字符串的Dim sqlStr
strConn=“Driver={OraClient11g_home1中的Oracle};Dbq=;Uid=;Pwd=;”
cn.开放式结构
sqlStr=“SELECT distinct”&Chr(10)
sqlStr=sqlStr&“SAM_ID”和Chr(10)
sqlStr=sqlStr和“DP_QV_Name”和Chr(10)
sqlStr=sqlStr&“来自CMS.CMS\u SAM\u ALL\u数据”

我对Oracle不太熟悉,但是您可以通过在连接字符串中使用双引号来打开和关闭连接字符串。用单引号替换内部引号。另外,在SELECT语句之前还有一个额外的空格。拆下它,看看会发生什么。谢谢乔伊!内部引号仅在代码中用作示例。无法检查,但请仔细检查是否有正确的连接字符串。您可以检查连接字符串。我现在已经更改了上面的代码。我得到的错误是缺少表达式。为什么需要进行换行?你还有一个额外的逗号。为什么不直接使用
sqlStr=“从CMS.CMS\u SAM\u ALL\u数据中选择不同的SAM\u ID、DP\u QV\u名称”