VBA SQL, возвращающий нулевые значения - PullRequest
0 голосов
/ 23 ноября 2018

У меня проблема с запуском оператора SQL в vba excel, последние 3 столбца предназначены для хранения чисел, разделенных запятыми, но при выполнении в Excel vba эти значения не отображаются, а в других программах базы данных -

код следующий

Sub obtainColMachs()    
    Dim cnn1 As New ADODB.Connection
    Dim mrs As New ADODB.Recordset, sqry As String

    Set cnn1 = New ADODB.Connection
        cnn1.ConnectionString = "driver=SQL Server Native Client 11.0;" & _
        "server=server;uid=user;pwd=password;database=DB;"
        cnn1.ConnectionTimeout = 3
        cnn1.Open

    sqry = "select top 1 m.* from recipe r left join RecipeGroup rg on r.RecipeGroupID = rg.RecipeGroupID " & _
    "left join Matricula m on tonalidad_ID = ParentGroupID *100 + rg.RecipeGroupID where Substring(ColorNo,3,3) = 'ZG5'"

    mrs.Open sqry, cnn1
    Range("A26").CopyFromRecordset mrs

    mrs.Close
    cnn1.Close
End Sub

Должен возвращаться:

Data returned on Database program

Но возвращается только:

Data returned in VBA Excel

1 Ответ

0 голосов
/ 23 ноября 2018

Вы, похоже, только возвращаете поля из своей таблицы Matricula;возможно, SQL должен быть:

select top 1 m.*, r.*, rg.* from

Или, еще лучше, список полей, которые на самом деле являются обязательными и со ссылкой на таблицу, из которой они происходят, например:

select top 1 m.Tonalidad, m.Field2, r.Field3, rg.Field4 etc... from
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...