Excel VBA store SQL Выбор содержимого в буфер обмена - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь написать код VBA в Excel (когда кнопка пользователя нажата в пользовательской форме), чтобы выполнить запрос SQL и сохранить результаты в буфере обмена Windows.Данные будут одним столбцом с несколькими записями.

Вот код, который я пробовал, но получаю ошибку: Ошибка времени выполнения '13': Несоответствие типов

Private Sub CommandButton4_Click()

    Dim cn      As Object   'Connection
    Dim rs      As Object   'Recordset
    Dim vAry    As Variant  'Variant Array

    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")

    cn.Open "Driver={MySQL ODBC 5.3 Unicode Driver};server=10.0.0.2;" & _
            "database=db uid=user; pwd=password;Port=3306"
    rs.Open "Select Device_ID From returns Where Status = 'A';", cn
    vAry = rs.GetRows

    rs.Close
    cn.Close

    Set rs = Nothing
    Set cn = Nothing

    Set myData = New DataObject
    myData.SetText vAry
    myData.PutInClipboard
    MsgBox ("data has been copied to clipboard")

End Sub

1 Ответ

0 голосов
/ 06 июня 2018

Я исправил ошибку, добавив / изменив код для преобразования варианта массива в строку:

Dim strData As String
For i = 0 To UBound(vAry, 2) - LBound(vAry, 2)
    strData = strData & vAry(0, i) & vbCrLf
Next

Set myData = New DataObject
myData.SetText strData
myData.PutInClipboard
MsgBox ("data has been copied to clipboard")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...