#

Download:

Datei 1: WinSCPnet32.zip
Datei 2: DemoDB_24_Access_SFTP.zip

Access: SFTP using in MS Office vba

 

Wenn man sftp in einer Microsoft Access oder Excel Anwendung einbinden möchte, dann muss man den Verweis in Visual Basic erstellen.

Hierzu muss man das Packet winscp576automation.zip downloaden. Diese erhält man im Link

.NET assembly / COM library (4.6 MB)  unter http://winscp.net/eng/download.php#download2

Diese enthält die WinSCP.exe und die WinSCPnet.dll aus welchen in einem weiteren Schritt ein Verweis für die COM Elemente in Visual Basic erzeugt werden kann.

 

 

Diese Dateien kann man entweder zum Verzeichnis mit dem Office Programm legen und von dort anbinden und verteilen oder man kann die Datei zum zentralen Programm unter c:\programs (86)

 

 

Bereitstellen für Verweise unter Microsoft Office Visual Basic

 

Damit man diese zwei Dateien jetzt auch nutzen kann unter Microsoft Access oder Excel oder Word

muss man die Verweise einbinden können in vba Microsoft Visual Basic

Diese sind aber erst nach der folgenden Registrierung als Administrator sichtbar und erreichbar für die App:

 

Zur Registrierung der winSCP sftp für Verweise muss man erst die Eingabeaufforderung als Administrator öffnen.

Hierzu den Windows Start-Button mit der rechten Maustaste und dann auf Eingabeaufforderung (Administrator) auswählen

 

Eingabeaufforderung

 

Schritt 1: Verzeichnis zu winSCP Files ändern:

Mit CD für Change Directory den aktuellen Pfad zur den Dateien ändern, wo sich die WinSCP.dll befindet

cd C:\_Daten\Desktop\Demo\Access\25_Access_SFTP

 

Schritt 2: Registrierung mit RegAsm

Mit RegAsm wird die winSCPnet.dll als sichtbarer Verweis in Microsoft Office Anwendungen registriert

Hierzu muss man nun in der Eingabeaufforderung den folgenden Befehl eingeben

%WINDIR%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe WinSCPnet.dll /codebase /tlb:WinSCPnet32.tlb

 

Registrierung in der Eingabeaufforderung:

Microsoft Windows [Version 10.0.10586]

(c) 2015 Microsoft Corporation. Alle Rechte vorbehalten.

 

C:\WINDOWS\system32>cd C:\_Daten\Desktop\Demo\Access\25_Access_SFTP

 

C:\_Daten\Desktop\Demo\Access\25_Access_SFTP>%WINDIR%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe WinSCPnet.dll /codebase /tlb:WinSCPnet32.tlb

Microsoft .NET Framework Assembly Registration Utility 4.6.1038.0

für Microsoft .NET Framework, Version 4.6.1038.0

Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

 

Die Typen wurden registriert.

Die Assembly wurde nach "C:\_Daten\Desktop\Demo\Access\25_Access_SFTP\WinSCPnet32.tlb" exportiert, und die Typbibliothek wurde registriert.

 

C:\_Daten\Desktop\Demo\Access\25_Access_SFTP>

 

 

 

Einbindung Verweis in Microsoft Office

 

Jetzt kann man den Verweis unter Microsoft Access in der Code-seite in Visual Basic einbinden.

Hierzu auf Extras->Verweise

Und dann den Verweis suchen und markieren: WinSCP scripting interface .NET wrapper

 

 

 

Verwendung von Code in vba:

http://winscp.net/eng/docs/library_vb

 

Die verfügbaren Objekte für die Programmierung von winSCP findet man in dem Objektkatalog (Objektlibrary)

Allerdings sind hier nur die Enumerationen und Events aufgeführt

 

 

Code-Beispiel vba zu sftp

' Shell variant

' WinSCP console interface .NET wrapper

' http://winscp.net/eng/docs/library_vb

Private Sub fl_Download_SFTP()

    '--------< fl_Download_SFTP() >--------

    'sftp-Session

    Dim mySession As New session

 

    ' Enable custom error handling

    On Error Resume Next

 

    '< get FileExplorer Functions >

    ' Setup session options

    Dim mySessionOptions As New SessionOptions

    With mySessionOptions

        .Protocol = Protocol_Sftp

        .HostName = "example.com"

        .UserName = "user"

        .Password = "password"

        .SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"

    End With

    '</ get FileExplorer Functions >

 

    ' Connect

    mySession.Open mySessionOptions

 

    Dim directoryInfo As RemoteDirectoryInfo

    Set directoryInfo = mySession.ListDirectory("/home/user/")

   

   

'    ' Upload files

'    Dim myTransferOptions As New TransferOptions

'    myTransferOptions.TransferMode = TransferMode_Binary

'

'    Dim transferResult As TransferOperationResult

'    Set transferResult = mySession.PutFiles("d:\toupload\*", "/home/user/", False, myTransferOptions)

'

'    ' Throw on any error

'    transferResult.Check

'

'    ' Display results

'    Dim transfer As TransferEventArgs

'    For Each transfer In transferResult.Transfers

'        MsgBox "Upload of " & transfer.FileName & " succeeded"

'    Next

   

   

    '--< Abschluss >--

    ' Query for errors

    If Err.Number <> 0 Then

        MsgBox "Error: " & Err.Description

 

        ' Clear the error

        Err.Clear

    End If

 

    ' Disconnect, clean up

    mySession.Dispose

 

    ' Restore default error handling

    On Error GoTo 0

    '--</ Abschluss >--

    '--------</ fl_Download_SFTP() >--------

End Sub

 

Mobile

.

0123movie.net