Avatar billede doto Nybegynder
01. oktober 2009 - 08:39 Der er 12 kommentarer og
1 løsning

Hente filer via ftp

Hej!

Jeg vil lave en funktion i Access 2007 som via ftp kan hente xml filer fra en ftp- server og placere dem på en anden server, i en bestemt mappe. Dvs. ved at trykke på en knap i en formular i databasen, skal dette ske automatisk.

Jeg har endnu ikke adgang til en ftp-server, men må teste funktionen på en web-server, dvs. hente xml-filer fra en webserver og placere dem på en Windows 2000 server.

Jeg har fundet en kode på denne side: http://www.mvps.org/access/modules/mdl0015.htm :

Sub sFTP(stSCRFile As String)
'Usage Example:
'  call sFTP("C:\temp\test.scr")
'Sample SCR File for NT/Win95 FTP
'  lcd "c:\temp"
'  open ftp.someserver.com
'  anonymous
'  dash10@hotmail.com
'  cd public
'  binary
'  get dead.letter dead.letter
'  bye

Dim stSysDir As String
    stSysDir = Environ$("COMSPEC")
    stSysDir = Left$(stSysDir, Len(stSysDir) - Len(Dir(stSysDir)))
    Call Shell(stSysDir & "ftp.exe -s:" & stSCRFile, vbNormalFocus)
End Sub

Kan jeg tilpasse denne kode, så jeg kan bruge den på en webserver? Og hvordan? Eller er der nogen der har bud på en anden kode i vb?
Avatar billede terry Ekspert
01. oktober 2009 - 09:18 #1
Not sure if there are easier methods in Access 2007 but you should maybe look at this link instead of the one you have already.

http://www.mvps.org/access/modules/mdl0037.htm

If you can UPLOAD files to your webserver from a remote PC then I would think you should be able to use FTP to Up/download files to/from the web server FROM your Windows 2000 server.

You just need to get the address of the web server correct.
Avatar billede doto Nybegynder
01. oktober 2009 - 09:22 #2
Hej Terry,

Jeg kigger lige og vender tilbage.
Avatar billede doto Nybegynder
01. oktober 2009 - 10:07 #3
Hej igen Terry,

Jeg skal lige bruge noget tid til at prøve mig frem og vender herefter tilbage...
Avatar billede doto Nybegynder
01. oktober 2009 - 14:14 #4
Hej Tery,

Nu er jeg kommet et lille skridt videre. Jeg skal kunne hente xml filer fra en ftp server og placere dem på en Windows 2000 server.

Koden:

Sub TestFTP()
On Error GoTo ErrHandler
Dim objFTP As InetTransferLib.FTP
Const conTARGET = "ftp://ftp.albireo.dk/xml/XMLORDER01.xml"

  Set objFTP = New InetTransferLib.FTP
  With objFTP
    .UseProxy = True
    .FtpURL = conTARGET
    .DestinationFile = "h:\temp\test.exe"
    'If .FileExists Then .OverwriteTarget = True
    .PromptWithCommonDialog = True
    If Not .IsConnected Then .DialDefaultNumber
    .ConnectToFTPHost
    .WriteFTPDataToFile
  End With
ExitHere:
  On Error Resume Next
  Set objFTP = Nothing
  Call SysCmd(acSysCmdRemoveMeter)
  Exit Sub
ErrHandler:
  MsgBox Err.Number & vbCrLf & Err.Description, _
        vbCritical + vbOKOnly, Err.Source
  Resume ExitHere
End Sub

Når jeg debugger får jeg en compile error: User-defined type not defined ved sætningen: Dim objFTP As InetTransferLib.FTP ??

Jeg er også i tvivl om jeg skal bruge sætningen: .DestinationFile = "h:\temp\test.exe" og hvad der skal stå?

Hilsen doto
Avatar billede terry Ekspert
05. oktober 2009 - 10:23 #5
Oops, sorry I hadnt seen you had placed a comment.

Try
Dim objFTP As FTP

and
Set objFTP = New FTP
Avatar billede doto Nybegynder
05. oktober 2009 - 12:35 #6
Nu ser min kode således ud:

Sub TestFTP()
On Error GoTo ErrHandler
Dim objFTP As FTP
Set objFTP = New FTP
Const conTARGET = "ftp://ftp.albireo.dk/xml/XMLORDER01.xml"

  Set objFTP = New InetTransferLib.FTP
  With objFTP
    .UseProxy = True
    .FtpURL = conTARGET
    .DestinationFile = "h:\temp\test.exe"
    'If .FileExists Then .OverwriteTarget = True
    .PromptWithCommonDialog = True
    If Not .IsConnected Then .DialDefaultNumber
    .ConnectToFTPHost
    .WriteFTPDataToFile
  End With
ExitHere:
  On Error Resume Next
  Set objFTP = Nothing
  Call SysCmd(acSysCmdRemoveMeter)
  Exit Sub
ErrHandler:
  MsgBox Err.Number & vbCrLf & Err.Description, _
        vbCritical + vbOKOnly, Err.Source
  Resume ExitHere
End Sub

Men jeg får compile error: User-defined type not defined ved sætningen: Dim objFTP As FTP
Avatar billede terry Ekspert
05. oktober 2009 - 13:09 #7
have you inlcuded all of the modules from the example?
Avatar billede terry Ekspert
05. oktober 2009 - 13:10 #8
Try reading the instructions from the link i gave again
Avatar billede doto Nybegynder
05. oktober 2009 - 14:21 #9
Jeg læser på lektien, arbejder videre i morgen og vender herefter tilbage.
Avatar billede doto Nybegynder
07. oktober 2009 - 08:09 #10
Hej Terry,

Vi har besluttet os for at bruge c:\windows\system32\ftp.exe og køre en bat fil i stedet for.

Men - tak for hjælpen, som jeg kan bruge på et senere tidspunkt.

Læg et svar ud og du vil få dine velfortjente poínts!

Hilsen doto
Avatar billede terry Ekspert
07. oktober 2009 - 08:47 #11
svar
Drop a comment if you need further help once you start making use of this Q
Avatar billede doto Nybegynder
07. oktober 2009 - 09:21 #12
Hej Terry,
Tak. Indtil videre stopper jeg her.
Doto
Avatar billede terry Ekspert
07. oktober 2009 - 09:36 #13
mange tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester