Trucos y ejemplos de VBA para Microsoft Access

En esta página encontrarán algunos ejemplo de trucos de VBA (Visual Basic for Applications) que puedes utilizar en aplicaciones desarrolladas con la base de datos Microsoft Access. También puedes descargar los formularios, informes y códigos de ejemplo de Microsoft Access que encontrarás en esta página y disponer de ellos como quieras, ya sea para uso personal o profesional.

Empecé a desarrollar aplicaciones con Microsoft Access en 1995 con la primera versión Access 2.0 y hasta el día de hoy, es decir 27 años. Recuerdo que fue fascinantes pasar de COBOL a Access como herramienta por la cantidad de cosas que se simplificaban.

Dado que siempre he sido autodidacta, tanto en Basic como en PHP hay dos cosas que siempre me han ido muy bien, ejemplos de las funciones y un libro de referencia. Os dejo una recomendación que os puede ser útil.

Contenidos de Fechas

-Todos- Fechas (4)
Buscar un registro en Access 2003 - Convertir minutos a formato Fecha (Date) - Minutos a formato HH:NN string - Primer y último día de la semana -

Buscar un registro en Access 2003

Este código de VBA en Access 2003 combina la función de buscar un registro en función de un campo de fecha de un formulario y en que caso de no encuentre el dato que vaya a nuevo registro....
Para seleccionar la Fecha se utiliza un control Calendar llamado Calendario.
    Dim lngReg As Long
    lngReg = DCount("[fecha]", "Facturas", "[fecha] = #" & Format(Calendario.Value, "mm-dd-yy") & "#")
    If lngReg <= 0 Then
        DoCmd.GoToRecord acActiveDataObject, , acNewRec
      Else
        Fecha.SetFocus
        DoCmd.FindRecord Calendario.Value, acEntire, False, acSearchAll, , acCurrent
    End If


Convertir minutos a formato Fecha (Date)

Una sencilla función para convertir minutos a formato hh:nn y así poderlo guardar en un campo cuyo tipo de datos es Date en una tabla de Access. ...
Function ConvertMinutesToDate(Minutos As Integer) As Date
    Dim intHor As Integer
    Dim intMin As Integer
    intHor = Int(Minutos / 60)
    intMin = Minutos - (intHor * 60)
    ConvertMinutesToDate = CDate(intHor & ":" & intMin & ":00")
End Function
Notas: Si lo minutos suman más de un día hay que ajustar la función. Suelo usar la función en aplicaciones que importan tareas, por eso aún no tengo hecho el ajuste de los días pero se puede llegar a realizar.


Minutos a formato HH:NN string

En programas de gestión de tareas nos podemos encontrar con que tenemos que ofrecer un total de minutos que es superior a las 24 horas. Con esta función devolvemos un string con las horas acumuladas y minutos...
Function HorasMinutosString(Minutos As Integer) As String
    Dim intHor As Integer
    Dim intMin As Integer
    intHor = Int(Minutos / 60)
    intMin = Minutos - (intHor * 60)
    HorasMinutosString = Format(intHor, "#00") + ":" + Format(intMin, "00")
End Function


Primer y último día de la semana

Como determinar el primer y el último día de la semana en VBA...
El caso es el siguiente, tenemos un formulario de Microsoft Access 2003 con dos campos de fecha Desde/Hasta. Queremos que cuando se abra el formulario automáticamente se visualicen en los campos Desde y Hasta el primer y último día de la semana o del mes según la fecha en que lo hacemos para poder obtener informes en curso. Deberíamos poner el siguiente código en el evento Form_Load()
txtDesdeFecha = Date - Weekday(Date, vbUseSystemDayOfWeek) + 1
txtHastaFecha = Date - Weekday(Date, vbUseSystemDayOfWeek) + 7



Desarrollado con el plugin AB Dictionary para WordPress

Descargas de ejemplos de Microsoft Access

Historia Clínica

Es una base de datos sencilla para gestionar la historia clínica de una persona. Encontraras conceptos básicos como formularios, botones e informes. No se usan módulos VBA excepto el de los forms. Para nivel básico. Descargar HistoriaClinica en formato ZIP.

6 comentarios en “Trucos y ejemplos de VBA para Microsoft Access”

  1. Saludos.
    ¿Como hacer un instalador de programas ? Algo que grabe algunos archivos predeterminados en algún lugar del disco duro de manera discreta.

  2. s@lu2
    tengo una bd de un Almacen , en un formulario de salida de productos quiciera poder limitar la cantidad a «salir» de acuerdo al inventario existente para cada articulo.

    gracias

  3. hola no soy experta ni mucho menos, hice un formulario que manda llamar información de una base vinculada, pero no me extrae varios campos, no se por que razón, haber si alguién pueda orientarme gracias.
    On Error GoTo Button_TratamientoErrores
    ‘mySql = «SELECT calendariobpm .institucio, calendariobpm .examen, calendariobpm .fec_ini, calendariobpm .aplicados, calendariobpm .registrado, calendariobpm .for_env, calendariobpm .desc_cal, calendariobpm .ent_arccal, curcalenbpm.requerimie FROM calendariobpm INNER JOIN curcalenbpm ON calendariobpm.num_aplic=curcalenbpm.num_aplic WHERE num_aplic = ‘» & Me.Aplicación & «‘»
    On Error GoTo Button_TratamientoErrores
    mySql = «SELECT institucio, examen, fec_ini, aplicados, registrado, for_env, desc_cal, ent_arccal, desc_exa, Requerimie FROM curcalenbpm»
    mySql = mySql & » WHERE num_aplic = ‘» & Me.Aplicación & «‘»
    Set dbs = CurrentDb
    Set rst = dbs.OpenRecordset(mySql, dbOpenSnapshot)

    Me.Institución.Value = rst.Fields(0)
    Me.Examen.Value = rst.Fields(1)
    Me.Fecha_de_aplicación.Value = rst.Fields(2)
    Me.Aplicados.Value = rst.Fields(3)
    Me.Registrados.Value = rst.Fields(4)
    Me.Entrega_resultados.Value = rst.Fields(5)
    Me.des_exa.Value = rst.Fields(6)
    Me.Requerimientos.Value = rst.Fields(7)

    rst.Close
    dbs.Close
    Set rst = Nothing
    Set dbs = Nothing
    nota los campos que si jala son
    Me.Institución.Value = rst.Fields(0)
    Me.Examen.Value = rst.Fields(1)
    Me.Fecha_de_aplicación.Value = rst.Fields(2)
    y los que no acepta son:
    Me.Aplicados.Value = rst.Fields(3)
    Me.Registrados.Value = rst.Fields(4)
    Me.Entrega_resultados.Value = rst.Fields(5)
    Me.des_exa.Value = rst.Fields(6)
    Me.Requerimientos.Value = rst.Fields(7)

  4. Si pudieras enviar un mdb de ejemplo solo con un formulario, la tabla con datos de ejemplo y el código te lo puedo mirar

  5. Eso es bastante sencillo de hacer, pero se debería usar código VBA en el momento de validar los datos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
Salir de la versión móvil