excel mac 2016,在vba函数中调用时listobject不工作

lqfhib0f  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(338)

我正在将外部数据库中的数据调用到listobject表中。脚本在sub()中运行时创建listobject表没有问题,但在函数中调用时,脚本仅在listobject行中停止 Application-defined or object-defined error . 脚本如下:

Function get_value(input_id As String, input_date As String)

On Error GoTo xerr

Dim sqlstring As String
Dim connstring As String
Dim sLogin As String

sLogin = "DATABASE=DB;UID=UID;PWD=PWD"
sqlstring = "SELECT data_date, data_value FROM tb_data_values WHERE series_id='" & input_id & "' AND data_date<='" & input_date & _
                "' ORDER BY data_date DESC"
connstring = "ODBC;DSN=myodbc;" & sLogin

Dim qtTable As QueryTable

Set qtTable = Worksheets("hs").ListObjects.Add(SourceType:=xlSrcExternal, Source:=connstring, Destination:=Worksheets("hs").Range("A1")).QueryTable

With qtTable

    .ListObject.ShowHeaders = False
    .ListObject.ShowTableStyleRowStripes = False
    .ListObject.ShowTableStyleColumnStripes = False
    .ListObject.ShowTableStyleFirstColumn = False
    .CommandText = sqlstring
    .CommandType = xlCmdSql
    .RefreshStyle = xlOverwriteCells
    .BackgroundQuery = False
    .Refresh

End With

get_value=Worksheets("hs").ListObjects(1).Cells(1,2)

Exit Function

xerr:

Debug.Print err.Description

End Function
cld4siwp

cld4siwp1#

当我将记录放入excel表时,我使用 Connections 举个例子:

'Query the database

    Sheets("FullRecordFromSS").Select
   ActiveSheet.Unprotect
    DoEvents
    Range("Table_ExternalData_1[ID]").Select
    Let stSQL1 = "SELECT * FROM libInfo.dbo.tblMain where LibUserID = " & "'" & SelectedLibUserID & "'" & ";"
    Range("A2").Select

   With ActiveWorkbook.Connections("GetRecordToUpdate").ODBCConnection
       .BackgroundQuery = True
       .CommandText = stSQL1
       .CommandType = xlCmdSql
        .Connection = _
        "ODBC;DRIVER=SQL Server;SERVER=db1d.acsu.buffalo.edu,14360;UID=libinfo;PWD=inf014lib;APP=Microsoft Office 2016;WSID=LIBJBG6281"
        .RefreshOnFileOpen = False
       .SavePassword = True
       .SourceConnectionFile = ""
        .SourceDataFile = ""
        .ServerCredentialsMethod = xlCredentialsMethodIntegrated
        .AlwaysUseConnectionFile = False

    End With

相关问题