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.

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)


Topic review


Re: VBA using session.MoveFile

martin wrote:

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

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

Using WinSCP 5.5.6 , VBScripts "MovefileError.vbs". The scripts as below.
The Error occured 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 = ""
.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"


' Disconnect, clean up

Re: VBA using session.MoveFile

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

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 = ""
.UserName = "xxxxxxx"
.Password = "xxxxxxxx"
.SshHostKey = "ssh-dss 1024 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
End With
' Get file name
Dim strFile As String
strFile = Dir("\\\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("\\\Corp\IT\scripts\Credit\SendTest\" & strFile & "", strFile, False, myTransferOptions)

'GET ERROR HERE***********************************************************
Set myMoveResult = mySession.MoveFile(strFile, "cz311660.r01")

' Throw on any error

' Display results
Dim intSuccess As Integer
Dim transfer As TransferEventArgs

For Each transfer In transferResult.Transfers
MsgBox "Upload of " & transfer.FileName & " succeeded!"
intSuccess = 1

If intSuccess <> 1 Then
Err.Raise 999, , "Failed to upload file!"
'MsgBox "File did not send properly."
End If

End Sub