Damoin Web Services

Blog de Social Media y Desarrollo Web

Filtrar en Formulario Access con VBA

Abrimos la programacion VBA en el evento que queramos que desencadene el filtro (en este caso es un campo de texto al escribir algo).

Guardamos la condicion a filtrar en una variable, luego la asignamos a la propiedad Filter del formulario (si el filtro fuese en otro habria que especificar el nombre Form_nombre).

Luego activamos el filtro poniendo la propiedad FilterOn en true.

Private Sub filtro_txt_AfterUpdate()
Filter = “[CODIGO] like ‘*” & Me.filtro_txt & “*’”
Me.Filter = Filter
Me.FilterOn = True
End Sub

Enviar correo desde Access usando SMTP

Si queremos enviar correos personalizados desde una aplicacion en Access u otro programa que haga uso de VBA lo haremos de la siguiente manera, este ejemplo en particular hace uso de un servidor SMTP externo con autentificacion.

Primero creamos una funcion para leer la plantilla (en el caso de que la tengamos) que va a contener el html de nuestro email, logicamente devolvera un string.

Para que el objeto Scripting.FileSystemObject pueda ser usado primero debemos añadir la referencia “Microsoft Scripting Runtime” , sino nos dara algun fallo como que no reconoce el tipo.

Public Function LeeFichero() As String
Dim fso As Scripting.FileSystemObject, fil1 As File, ts As TextStream
Dim strPath2 As String
strPath2 = “C:\html_email.txt”
Set fso = New Scripting.FileSystemObject
Set fil1 = fso.GetFile(strPath2) ‘ strPath2 contiene el nombre completo del fichero
Set ts = fil1.OpenAsTextStream(ForReading, TristateUseDefault)
Do Until ts.AtEndOfStream
Dim sTexto As String
sTexto = sTexto & vbCrLf & ts.ReadLine
Loop
ts.Close
LeeFichero = sTexto
Set ts = Nothing
Set fil1 = Nothing
Set fso = Nothing
End Function
Luego creamos un procedimiento que recibira por parametros el remitente, destinatario y texto que queremos enviarle
Sub envia_correo(remitente, destinatario, texto)

Exportar de Access a Excel con VBA

Si queremos exportar una consulta de Access directamente a Excel se puede hacer con este comando desde VBA:

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, “NOMBRE_CONSULTA”, nombre_ARCHIVO, True

DoCmd.TransferSpreadsheet acExport, esta es la orden para exportar a una hoja de calculo.

acSpreadsheetTypeExcel9 , esto identifica la version de excel que vamos a usar para hacer la exportación, el numero final dependera de la version de excel que tengamos instalada en nuestro ordenador.

El “NOMBRE_CONSULTA” sera el nombre de la query que hayamos diseñado previamente en el panel de base de datos de Access.

El nombre_archivo sera la ruta donde queramos guardar el xls, hay que especificar la ruta completa “C:\informes\informe1.xls” , el nombre normalmente se crea con parámetros como el nombre de consulta + la fecha en la cual se hace la exportación.

Te ayudamos a integrar esta solución en tu aplicación de Access [ click aquí]