Загрузка SFTP с помощью VBA - PullRequest
       17

Загрузка SFTP с помощью VBA

9 голосов
/ 20 сентября 2010

Мне нужно иметь возможность SFTP через VBA.У меня есть программа Access, которая извлекает данные, манипулирует ими, и теперь мне нужно найти способ загрузить файл Excel 07 через SFTP.

Я искал в сети несколько дней и ничего не могу найти,Я видел похожую тему здесь Как использовать sftp из модуля базы данных MS Access? , и я хотел бы найти Мата Надрофски, потому что казалось, что у него есть решение, я просто не могу понять ни одногоэто)))))))))))

так что если кто-то может объяснить, что это решение было или есть другое решение - я был бы очень признателен, спасибо

Ответы [ 3 ]

12 голосов
/ 24 сентября 2010

В предыдущем ответе SO, который вы связали, Mat Nadrofsky использовал клиента командной строки sftp. В этом примере мой клиент sftp - это pscp.exe. Этот клиент является частью инструментов PuTTY: Страница загрузки PuTTY

Я хочу собрать и запустить такую ​​команду, чтобы скопировать sample.txt в мой домашний каталог на удаленной машине:

"C:\Program Files\PuTTY\pscp.exe" -sftp -l hans -pw changeme C:\Access\sample.txt 192.168.1.6:/home/hans/

Итак, эта процедура создаст и запустит эту командную строку.

Public Sub SftpPut()
    Const cstrSftp As String = """C:\Program Files\PuTTY\pscp.exe"""
    Dim strCommand As String
    Dim pUser As String
    Dim pPass As String
    Dim pHost As String
    Dim pFile As String
    Dim pRemotePath As String

    pUser = "hans"
    pPass = "changeme"
    pHost = "192.168.1.6"
    pFile = "C:\Access\sample.txt"
    pRemotePath = "/home/hans/"

    strCommand = cstrSftp & " -sftp -l " & pUser & " -pw " & pPass & _
        " " & pFile & " " & pHost & ":" & pRemotePath
    Debug.Print strCommand
    Shell strCommand, 1 ' vbNormalFocus '
End Sub

Вы можете предпочесть ShellAndWait вместо Shell, как предложил Дэвид Фентон в комментарии к предыдущему ответу.

0 голосов
/ 21 сентября 2010

Вам понадобится элемент управления SFTP ActiveX, который работает в Access.Я знаю, что наш элемент управления SFTP используется некоторыми клиентами в VBA и, в частности, в Access.

0 голосов
/ 20 сентября 2010

Я сделал это следующим образом в Access 97:

  1. Купите SFTP-клиента с OCX, который доступен для MS Access
  2. Напишите код VBA для использования элемента управления SFTP

В одном конкретном случае не было OCX - только исполняемого файла - нам пришлось создать пакетный файл для этого.

...