Excel Mac 2016, ListObject не работает при вызове внутри функции VBA

0

Я вызываю данные из внешней базы данных в таблицу ListObject. Сценарий создает таблицу ListObject без проблем при запуске внутри Sub(), но сценарий просто останавливается в строке 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
Теги:
excel
macos
listobject

1 ответ

0

Когда я добавляю записи в таблицу 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню