2008-10-14 39 views
5

Tengo un requisito para crear una base de datos simple en Access para recopilar algunos datos de usuario que se cargarán en otra base de datos para informes posteriores. Habrá un módulo en Access db que cuando el usuario lo invoca (probablemente haciendo clic en un botón) generará una consulta en un archivo delimitado. El usuario también necesita un mecanismo (por ejemplo, un formulario con un botón) para transferir fácilmente el archivo a un servidor remoto, utilizando sftp. ¿Alguien tiene una idea de cómo lograr esto?¿Cómo usar sftp desde dentro de un módulo de base de datos MS Access?

Respuesta

7

Simplemente puede escribir una llamada al cliente de línea de comandos sftp a través de un archivo por lotes si desea lograr eso.

Compruebe la función Shell() en VBA.

En el evento clic del botón en el formulario de añadir en el código:

mySFTPCall = "sftp <insert your options here!>" 
Call Shell(mySFTPCall, 1) 

que he usado antes para copiar sólo los archivos directamente a través de recursos compartidos de red, etc. para compartir datos de una casa en Acceda a DB. Por supuesto, podría obtener más fantasía si es necesario.

+4

Si usa ShellAndWait (http://www.mvps.org/access/api/api0004.htm) sabrá cuándo termina el guión. –

+0

@David - Gracias por la idea del script de ShellAndWait: necesitaba esa opción. – Jamey

+0

@David - ¡Bien llame a mi amigo! –

0

Me imagino que solo necesita encontrar un objeto COM de FTP. Debería poder instanciar esto en el código del módulo de acceso. dart.com tiene uno y estoy seguro de que hay muchos más (solo Google FTP COM).

0

Puede realizar una llamada de shell a una aplicación de línea de comandos, como MOVEit Freely, que es software gratuito, para crear scripts de transferencias ftp seguras. Lo he usado en el pasado y tiene algunas características agradables y funcionó bastante bien.

MOVEit libremente es una línea de comandos libre de FTP/SSL FTP seguro (FTPS) cliente para Windows Vista Business Edition, 2003, XP, 2000, ME y NT 4.0 sistemas.

+0

@CodeSlave Lo suficientemente cierto. Para cualquiera que esté interesado aquí hay algunos buenos comentarios: pros/contras de FTPS vs SFTP http://www.codeguru.com/csharp/.net/net_general/internet/article.php/c14329 – micahwittman

0

Chilkat tiene un componente de FTP que funciona con COM/ActiveX. Dice que admite FTP sobre SSL (FTPS), que creo que es lo mismo que SFTP. He usado algunos de sus otros productos antes para .Net y han funcionado muy bien. Tienen una versión de prueba gratuita, por lo que no tiene nada que perder al descargar y verificar si funcionan para usted.

+1

SFTP y FTSP no son del todo lo mismo: http://en.wikipedia.org/wiki/SSH_file_transfer_protocol http://en.wikipedia.org/wiki/FTPS "Los servidores FTPS deben proporcionar un certificado de clave pública". – BIBD

Cuestiones relacionadas