我需要能够通过VBA进行SFTP。我有一个Access程序来提取数据,操作它,现在我必须找到一种方法来通过SFTP上传excel 07文件。
我一直在网上看几天,找不到任何东西。我在这里看到一个类似的话题How to use sftp from within an MS Access database module?,我很想找到Mat Nadrofsky,因为看起来他有一个解决方案,我只是无法理解其中任何一个))))))))))< / p>
所以,如果有人能解释该解决方案的内容或有不同的解决方案 - 我真的很感激 谢谢
答案 0 :(得分:12)
在您之前链接的SO答案中,Mat Nadrofsky使用了sftp命令行客户端。在这个例子中,我的sftp客户端是pscp.exe。该客户端是PuTTY工具的一部分: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而非Shell,正如David Fenton在对前一个答案的评论中所说的那样。
答案 1 :(得分:0)
您需要一些可在Access中使用的SFTP ActiveX控件。我知道某些客户在VBA和Access中使用our SFTP control。
答案 2 :(得分:-1)
我在Access 97中以下列方式完成了它:
在一个特定情况下,没有OCX - 只有可执行文件 - 我们必须为该文件执行批处理文件。