2010-09-20 140 views
9

我需要通過VBA才能使用SFTP。我有一個Access程序,它可以提取數據,操縱它,現在我必須找到一種方法來通過SFTP上傳excel 07文件。使用VBA上傳SFTP

我一直在網上尋找天,找不到任何東西。我在這裏看到了一個類似的主題How to use sftp from within an MS Access database module?,我很想找到Mat Nadrofsky,因爲好像他有解決方案,我只是無法理解它))))))))))))

so如果有人能解釋一下這個解決方案是關於或有不同的解決方案 - 我會很感激 謝謝

回答

12

在之前的鏈接中,您可以使用一個sftp命令行客戶端來連接Mat Nadrofsky。在這個例子中,我的sftp客戶端是pscp.exe。該客戶端的膩子工具的一部分:PuTTY Download Page

我想建立和運行這樣的命令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,而不是外殼,如大衛·芬頓在以前的答案評論建議。

+0

首先,非常感謝你。我能夠從鏈接帖子中找到這個人,他告訴我有關膩子的信息,並且我能夠使用膩子和ShellAndWait工作。儘管你的VBA代碼比我的好很多))))))))))))))一個問題,它可以在公司的筆記本電腦上工作,但不能工作。我確信有什麼東西可以解決它,我問IT看看它是什麼,但是過了幾天,他嘗試了幾件事情,我有一種感覺,他會回來說「手動上傳」。所以我不確定我現在在哪裏,如果它因爲膩子而被阻塞,或者我剛注意到什麼 – lalachka 2010-09-25 12:19:57

+0

,您正在使用pscp.exe。我使用的也是Putty的psftp.exe。是否有可能不會阻止pscp.exe並且psftp.exe是?對我來說似乎不太可能,但我絕望的想讓整個事情自動化並準備好嘗試任何事情。我想讓一個程序自動執行點擊操作然後手動執行,這似乎是錯誤的。我希望有人能理解。 – lalachka 2010-09-25 12:40:41

+0

您是否可以通過工作網絡中的任何方法使用sftp進行上傳?如果沒有,我的猜測是sftp端口在那裏被阻塞。我懷疑pscp.exe與psftp.exe會有所不同,但是您可以嘗試切換。當shell窗口不起作用時,您會在shell窗口中看到什麼響應? – HansUp 2010-09-25 14:18:44

-1

我已經做到了在Access 97方式如下:

  1. 購買一個SFTP客戶端具有可用於MS Access的OCX
  2. 寫入VBA代碼以使用SFTP控件

在一個特定情況下,沒有OCX唯一的可執行文件 - 我們必須爲該文件執行一個批處理文件。

+0

謝謝你,正如我在下文所說的,我的公司不會爲此付出代價,所以我試圖看看我能通過代碼做什麼。它看起來像我在我的帖子中給出的鏈接,他們找到了一個解決方案,我只是沒有足夠的知識來挑選他們的意思 – lalachka 2010-09-21 22:37:22

+0

你可能最終會花費更多的時間來建立自己的東西,而不僅僅是買斷貨架組件。構建與購買 – 2010-09-22 13:49:44

+0

是真實的,在某些情況下,它是值得購買它的,但在這個過程中我也學到了很多,其次,在這種情況下,我沒有選擇。我需要自動化一步,否則我可以通過手工完成。我的公司將永遠不會爲此付費,我完全理解。無論如何,我得到它的工作。 – lalachka 2010-10-12 21:06:27

0

您需要一些在Access中工作的SFTP ActiveX控件。我知道被VBA中的一些客戶和特別是Access中的客戶所使用。

+0

我以前看過你的網站,它看起來像它會爲我工作,除了我需要這樣做來節省我幾個步驟,否則我可以做手工和我的公司將永遠不會支付)))))感謝無論如何 – lalachka 2010-09-21 22:34:59