Renombrar BBDD y enviarla adjunta con Outlook

Hola Msalvadorp
Por fin he conseguido crear un método en el que se guarda la BBDD y se renombra, pero no había caído en que desde cada usuario se creaará una BBDD con nombre diferente y no sé como hacer para que me renombre cualquier archivo .mdb que se encuentre en el directorio por defecto. Lo que he escrito es lo siguiente:
Name "D:\destinobase\base.mdb" As "D:\destinobase\base.txt"
Y esto funciona, pero el archivo base.mdb, unas veces se llamará "bcn.mdb", otras "Nyk.mdb" y otros nombres dependiendo del usuario que utilice la BBDD. Por eso necesito un procedimiento que me renombre cualquier base o fichero que esté en ese directorio.
Sería algo como : Name "D:\destinobase\*.mdb" As "D:\destinobase\(lo que contenga *).txt" , pero creo que name no admite comodines. Después tengo que poner un mailto desde la BBDD que envíe el archivo adjunto a un destinatario por defecto con el Outlook.
Gracias por vuestras aportaciones, me están ayudando mucho.
Respuesta
1
Se me ha ocurrido una solución
1.- Crea un archivo que se llame copia.bat y escribe dentro el siguiente codigo
ren d:\destinobase\*.mdb d:\destinobase\*.txt
2.- Desde el formulario access crea un botón que ejecute un programa (lo puedes hacer desde el asistente) y ejecuta copia.bat
Creo que te puede servir

2 respuestas más de otros expertos

Respuesta
1
Dejame entenderte lo que quieres es que según el usuario que se haya logueado... ¿se cree una base de datos en access y le pones un nombre personalizado según ese usuario?
¿O quieres que según el usuario se conecte a tu bd?
Me parece que no entiendo bien que es lo que quieres hacer, trata de explicarlo
Mira, eso que me comentas ya está conseguido; cuando el usuario entra y se loga hay un botón que vuelca todos los datos en una base que se nombra con su Identificador, que cambia cuando quiere. Esta Base se coloca en un Directorio por defecto.
Ahora lo que quiero conseguir es: Que ese archivo que se ha generado en el directorio predeterminado se renombre con extensión txt o zip, para poder enviarlo por Correo y que los antivirus no lo borren, y una vez renombrado que se adjunte a un email abriendo Outlook y enviándolo a una dirección.
El Usuario pinchará un botón, y ese botón recogerá los datos que me interesan y creará una base de datos que pongamos por ejemplo se llamará en unos casos pepito.mdb y en otros casos antonio.mdb, etc., se renombrará el archivo xxxx.mdb como xxxx.zip y se le abrirá el Outlook con el archivo xxxx.zip ya adjunto y una dirección de email predeterminada.
El problema es que cuando llamo a Name, tengo que ponerle la ruta y archivo que existe, y no sé que nombre tendrá ese archivo, por lo que necesito que renombre cualquier archivo .mdb que se encuentre en ese directorio ya que existirá únicamente un archivo, y luego poder llamarlo para enviarlo por email.
Si necesitas que te lo explique mejor dímelo y gracias por tu ayuda.
Así renombras
Option Explicit On
Public Class Form1
Private Sub Form1_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' ruta del archivo y el nuevo nombre
Dim sPath As String = "c:\archivo.txt"
Dim sNuevoNombre As String = "archivo_Renombrado.txt"
' Renombrarlo con la función renameFile
My.Computer.FileSystem.RenameFile(sPath, sNuevoNombre)
End Sub
End Class
Para enviar hay varias formas, en el link te dan buenos tips http://dotnetjunkies.com/WebLog/vbpuntonet/articles/23907.aspx
Esta es para version del 2005, con la del 2008 no hay mayores cambios.
http://www.elquintero.net/DatTipsYTrucos.aspx?Id=19&jscript=true
Respuesta
1
Supongo que hablas de access, no se si quieres copiarlo o renombrarlo, si es renombrarlo, basta con desmarcar el kill
Haz esto desde código Visual basic:
Dim sPath as string
Dim sFichero as string
Dim sFicheroTxt as string
sPath = "D:\destinobase\*.mdb"
sFichero = Dir(sPath)
Do While sFichero <> ""
        sFicheroTxt = replace(sFichero,".mdb",".txt",,,vbTextCompare)
        FileCopy  sFichero, sficheroTxt
        'kill sfichero
        sFichero = Dir
Loop

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas