Comprobar si una tabla está vacía usando VBA

comprobar-tabla-vacia-access

Escrito por Administrador

15 de noviembre de 2021

Hoy vamos a aprender a comprobar si una tabla de Microsoft Access está vacía o si, por el contrario, contiene información usando VBA.

Muchos pueden ser los motivos por los que necesitemos realizar esta comprobación. En el ejemplo que os traigo (adjunto al final del post), realizaremos una actualización masiva de datos de una tabla desde un formulario pero, antes de hacerla, comprobaremos si dicha tabla se encuentra vacía o no.

En el archivo encontraréis dos tablas: "Articulos llena" y "Articulos vacia". Como sus propios nombres indican, la primera contiene registros y la segunda no.

bloquear-access-fecha
bloquear-access-fecha

También incluye dos formularios, cada uno asociado a una tabla: "Actualizar precios llena" y "Actualizar precios vacia".

bloquear-access-fecha
bloquear-access-fecha

En ambos formularios disponemos de un campo llamado "Margen" que, al pulsar el botón de Actualizar precios, se aplicará al precio de cada producto.

Por ejemplo, para el caso de la butaca que su precio es de 100€, si seleccionamos un margen del 20%, pasará a costar,

 

100 * (1 + margen/100) = 100 * (1 + 20/100) = 120€

bloquear-access-fecha

Pero, ¿qué pasa si la tabla está vacía?

Posiblemente, al intentar actualizar sin existir registros, nos saltaría un error. Para ello, hemos implementado un trozo de código que va a realizar dicha comprobación, nos avisará mediante un msgbox si es el caso y no ejecutará la actualización de datos para evitar errores.

Private Sub Actualizar_Click()

'Comprobamos que el campo Margen esté relleno

If IsNull(Form!Margen) Or IsEmpty(Form!Margen) Then

MsgBox "Debe rellenar el campo Margen"
GoTo salida

End If

'Seleccionamos todos los registros de la tabla Vacia

Dim rs1 As DAO.Recordset

Set dbs = CurrentDb()
Set rs1 = dbs.OpenRecordset("Select * from [Articulos Vacia]")

'Si la tabla está vacía, avisamos y no seguimos ejecutando el codigo

If rs1.BOF And rs1.EOF Then

MsgBox "La tabla está vacía"
GoTo salida

End If

'Si la tabla no está vacía actualizamos el precio de todos los registros con el nuevo margen de beneficio

Do Until rs1.EOF

rs1.Edit
rs1!Precio = rs1![Precio] * (1 + (Margen / 100))
rs1.Update

rs1.MoveNext

Loop

'Actualizamos el subformulario de Materiales

Forms![Actualizar precios vacia].Requery

salida:

End Sub

bloquear-access-fecha

Espero que con este ejemplo hayas aprendido cómo comprobar si una tabla de Microsoft Access está vacía usando VBA.

Por último, deseo que este tema te haya sido de utilidad y espero que nos veamos próximamente en otro post.

Descarga el archivo del ejemplo

0 comentarios

Enviar un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Quizá te interese,

Contacto