Post a reply

Before posting, please read how to report bug or request support effectively.

Bug reports without an attached log file are usually useless.

Options
Add an Attachment

If you do not want to add an Attachment to your Post, please leave the Fields blank.

(maximum 10 MB; please compress large files; only common media, archive, text and programming file formats are allowed)

Options

Topic review

Davis

Re: VBA using session.MoveFile

I encountered the same Error:
Object required : 'MoveFile(...'

Using WinSCP 5.5.6, VBScripts "MovefileError.vbs". The scripts as below.
The Error occurred at 'Line: 20'. The file was renamed from examplefile.txt to newexamplefile.txt successfully.
' Setup session options
Dim sessionOptions
Set sessionOptions = WScript.CreateObject("WinSCP.SessionOptions")
With sessionOptions
  .Protocol = Protocol_Sftp
  .HostName = "xxx.xxx.com"
  .UserName = "xxx"
  .Password = "xxx"
  .SshHostKeyFingerprint = "xxx"
End With
Dim session
Set session = WScript.CreateObject("WinSCP.Session")
' Connect
session.Open sessionOptions
Dim remotePath
remotePath = "/Usr/ftp4datalink/davis/examplefile.txt"
Dim newRemotePath
newRemotePath = "/Usr/ftp4datalink/davis/newexamplefile.txt"
 
session.MoveFile(remotePath,newRemotePath).Check()
 
' Disconnect, clean up
session.Dispose
martin

Re: VBA using session.MoveFile

On what line do you get the "Object required"?
egray

VBA using session.MoveFile

I am using VBA within Access to upload a file to SFTP which works fine.

I need to rename the file on the SFtp site is that possible using the VBA methods?

I keep getting "Object required" below is the code:
Private Sub Upload(ByRef mySession As Session)
 
    ' Setup session options
    Dim mySessionOptions As New SessionOptions
    With mySessionOptions
        .Protocol = Protocol_Sftp
        .HostName = "ftp.xxxxxxxxxxxxxx.net"
        .UserName = "xxxxxxx"
        .Password = "xxxxxxxx"
        .SshHostKey = "ssh-dss 1024 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    End With
    ' Get file name
    Dim strFile As String
    strFile = Dir("\\xxx.xxx.1.3\Corp\IT\scripts\Credit\SendTest\*.u01")
   
    ' Connect
    mySession.DisableVersioncheck = True
    mySession.Open mySessionOptions
   
    ' Upload files
    Dim myTransferOptions As New TransferOptions
    myTransferOptions.TransferMode = TransferMode_Binary
     
    Dim transferResult As TransferOperationResult
    Dim myMoveResult As SessionRemoteException
    Set transferResult = mySession.PutFiles("\\xxx.xxx.1.3\Corp\IT\scripts\Credit\SendTest\" & strFile & "", strFile, False, myTransferOptions)
 
    'GET ERROR HERE***********************************************************
    Set myMoveResult = mySession.MoveFile(strFile, "cz311660.r01")
 
    ' Throw on any error
    transferResult.Check
     
    ' Display results
    Dim intSuccess As Integer
    Dim transfer As TransferEventArgs
 
        For Each transfer In transferResult.Transfers
            MsgBox "Upload of " & transfer.FileName & " succeeded!"
            intSuccess = 1
        Next
             
        If intSuccess <> 1 Then
            Err.Raise 999, , "Failed to upload file!"
            'MsgBox "File did not send properly."
        End If
 
End Sub