Preka
Programmer
- May 11, 2004
- 55
Anyone have a VBscript that can be used for transmitting via ftp in access? Alternatively, does anyone know a good site for looking for scripts such as this?
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
' rename ftpDownload.txt to ftpDownload.bat
newFTPBatchPath = Left(FTPBatchPath, Len(FTPBatchPath) - 3)
newFTPBatchPath = newFTPBatchPath & "bat"
' create text file ftpDownload.txt to directory
Open FTPBatchPath For Output As #1
Print #1, "Rem starts the dos ftp program and uses the script file ftpDownload.txt"
Print #1, "Rem to automate the transfer of the files from the mainframe."
Print #1, ""
Print #1, "ftp.exe -s:" & Chr(34) & xPATH & "Data\ftp\ftpDownload.txt" & Chr(34)
Close #1
Name FTPBatchPath As newFTPBatchPath
' create text file ftpDownload.txt to directory
Open FTPFile For Output As #2
Print #2, "open " & txtIPAddress
Print #2, txtUsername
Print #2, txtPassword
Print #2, "cd .."
Print #2, "ascii"
Print #2, "get SFX.TEST.BN2RMC00.DATA2X " & Chr(34) & xPATH & "Data\MC00.txt" & Chr(34)
Print #2, "get SFX.TEST.BN2RTCRM.DATA2X " & Chr(34) & xPATH & "Data\TCRM.txt" & Chr(34)
Print #2, "get SFX.TEST.BN2RPOT1.DATA2X " & Chr(34) & xPATH & "Data\POT1.txt" & Chr(34)
Print #2, "put " & Chr(34) & xPATH & "Data\Bhu5.txt" & Chr(34) & " SFX.TEST.BN2RHBU5.DATA2X"
Print #2, ""
Print #2, "bye"
Close #2
' set path
ftpDownload = xPATH & "data\ftp\ftpDownload.bat"
Call ExecCmd(ftpDownload)
' variables for ExecCmd function
Public PAGE_HEADER_SUPCODE As String 'PRODUCER CODE FROM PAGE HEADER VIA EXTRACT PROCEEDURE
Public PLANTCODE As String 'PRODUCER CODE FROM PAGE HEADER VIA FILE CREATED BY EXTRACT PROCEEDURE
Public PLANTNAME As String 'PRODUCER NAME FROM PAGE HEADER VIA FILE CREATED BY EXTRACT PROCEEDURE
Public PLANTTYPE As String 'PRODUCT TYPE FROM PAGE HEADER VIA FILE CREATED BY EXTRACT PROCEEDURE
Public TBLX As String 'ALTERENATE PRODUCER CODE FROM USER (MUST LIVE IN TABLE A TO BE VALID)
Public X As Single 'array1 marker
Public StrTable_Name(20) As String 'ARRAY1 FROM PADOT.CFG FILE
Public TBL As String 'array1 variable for padot.cfg file table names
Public WEDT As String 'week ending date variable from input box in sub CONFIRM_WE_DATE
Public LASTX As Single 'the last table in array1
Public T As Single 'timer value (NOT USED)
Public WEDT_EMAIL As String 'WEEK ENDING DATE FROM 00 PAGE HEADER TABLE FOR E_MAIL FILE NAME
Public DELAY As Long ' NOT USED
Public FINDFILE As String 'find file for zip to confirm zip files have been written
Public TITLE As String
Public OLDTBLX As String
Option Explicit
Private Type STARTUPINFO
cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID As Long
End Type
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal _
hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CreateProcessA Lib "kernel32" (ByVal _
lpApplicationName As Long, ByVal lpCommandLine As String, ByVal _
lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _
ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _
ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, _
lpStartupInfo As STARTUPINFO, lpProcessInformation As _
PROCESS_INFORMATION) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal _
hObject As Long) As Long
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const INFINITE = -1&
' Waits for the shelled application to finish before continuing to next line of code
Public Sub ExecCmd(cmdline$)
Dim proc As PROCESS_INFORMATION
Dim start As STARTUPINFO
Dim ReturnValue As Integer
' Initialize the STARTUPINFO structure:
start.cb = Len(start)
' Start the shelled application:
ReturnValue = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, _
NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)
' Wait for the shelled application to finish:
Do
ReturnValue = WaitForSingleObject(proc.hProcess, 0)
DoEvents
Loop Until ReturnValue <> 258
ReturnValue = CloseHandle(proc.hProcess)
End Sub