Modulo Clientes 15/09/2023
Tabla: tblClientes
- Campo: idCliente
- Tipo de datos: Autonumérico
- Clave principal
- Campo: campNombre
- Tipo de datos: Texto
- Tamaño del campo: 100
- Título: Nombre
- Campo: campRif
- Tipo de datos: Texto
- Tamaño del campo: 15
- Título: RIF/CI
- Campo: campDireccion
- Tipo de datos: Texto
- Tamaño del campo: 255
- Título: Dirección
- Campo: campTelf
- Tipo de datos: Texto
- Tamaño del campo: 15
- Título: Teléfono
Formulario: forClientes


Propiedades: Formulario (todos)
- Emergente: Si
- Modal: Si
- Centrado Automático: Si
- Estilo de los bordes: Ninguno
- Selectores de registro: No
- Botones de desplazamiento: No
- Separadores de registro: No
- Barras de desplazamiento: Ninguna
- Movible: No
- Menú contextual: No
Diseño
- Cuadro de texto
- Nombre: txtId
- Visible: No
- Cuadro de texto - Nombre: txtNombre
- Cuadro de texto - Nombre: txtRIF
- Cuadro de texto - Nombre: txtTelefono
- Cuadro de texto - Nombre: txtDireccion
- Botón de comando: Salir (Cerrar formulario)
- Nombre: btnSalir
- Título: Salir
- Al hacer clic: [Procedimiento de evento]
Private Sub btnSalir_Click()
DoCmd.Close acForm, "forClientes"
End Sub
- Botón de comando: Guardar (Insertar nuevo registro)
- Nombre: btnGuardar
- Título: Guardar
- Al hacer clic: [Procedimiento de evento]
Private Sub btnGuardar_Click()
'Los campos son requeridos
If Not IsNull(Me.txtNombre) And Not IsNull(Me.txtRIF) And Not IsNull(Me.txtTelefono) And Not IsNull(Me.txtDireccion) Then
'Si el campo clave esta vacío
If IsNull(Me.txtId) Then
'CAMPOS DE LA TABLA tabCliente: idCliente,campNombre, campRif, campDireccion, campTelf
'CUADRO DE TEXTO forClientes: txtId, txtNombre, txtRIF, txtDireccion, txtTelefono
CurrentDb.Execute "INSERT INTO tabCliente (campNombre,campRif,campDireccion,campTelf) VALUES ('" & Me.txtNombre & "', '" _
& Me.txtRIF & "', '" & Me.txtDireccion & "', '" & Me.txtTelefono & "')", dbFailOnError
MsgBox "Registro agregado correctamente.", vbInformation, "Aviso"
Call Limpiar 'FUNCION Limpiar los campos
End If
Else
MsgBox "Nombre, RIF, Teléfono y Dirección son requeridos." & vbLf & vbLf & "Verifique.", vbExclamation, "Aviso"
End If
End Sub
Private Sub Limpiar()
'Una vez insertado los datos, limpiamos los campos
Me.txtId = Null
Me.txtNombre = Null
Me.txtRIF = Null
Me.txtDireccion = Null
Me.txtTelefono = Null
End Sub
Formulario: forClientesLista


Propiedades: Formulario Ver Propiedades: Formulario (todos)
Diseño
- Cuadro de lista (Lista de clientes):
- Nombre: ListaCliente
- Origen de la fila:
SELECT tabCliente.idCliente, tabCliente.campNombre, tabCliente.campRif, tabCliente.campTelf, tabCliente.campDireccion FROM tabCliente ORDER BY tabCliente.[campNombre];
- Tipo de origen de la fila: Tabla/Consulta
- Columna dependiente: 1
- Número de columnas: 5
- Ancho de columnas: 0cm;9cm;3cm;3cm;5cm
- Encabezado de columnas: Sí
- Botón de comando: Salir (Cerrar formulario)
- Nombre: btnSalir
- Titulo: Salir
- Al hacer clic: [Procedimiento de evento]
Private Sub btnSalir_Click()
DoCmd.Close acForm, "forClientes"
End Sub
- Botón de comando: Nuevo (Crear nuevo cliente)
- Nombre: btnNuevo
- Titulo: Nuevo
- Al hacer clic: [Procedimiento de evento]
Private Sub btnNuevo_Click()
DoCmd.OpenForm "forClientes"
DoCmd.Close acForm, "forClientesLista"
End Sub
- Botón de comando: Modificar (Modificar/Editar registro)
- Nombre: btnSalir
- Titulo: Salir
- Al hacer clic: [Procedimiento de evento]
Private Sub btnModificar_Click()
If Not IsNull(Me.ListaCliente) Then
'FUNCION recuperar datos
Call recupera
Else
MsgBox "Selecciona un Cliente.", vbInformation, "Aviso"
End If
End Sub
Private Sub recupera()
Dim miRs As DAO.Recordset
Dim consulta As String
On Error GoTo ManipulaError
DoCmd.OpenForm "forClientes"
consulta = "SELECT * FROM tabCliente WHERE idCliente = " & Me.ListaCliente & ""
Set miRs = CurrentDb.OpenRecordset(consulta, dbOpenForwardOnly)
With miRs
'CAMPOS TABLA tabCliente: idCliente,campNombre, campRif, campDireccion, campTelf
'CUADRO DE TEXTO forClientes: txtId, txtNombre, txtRIF, txtDireccion, txtTelefono
Forms![ForClientes]![txtId] = !idCliente
Forms![ForClientes]![txtNombre] = !campNombre
Forms![ForClientes]![txtRIF] = !campRif
Forms![ForClientes]![txtDireccion] = !campDireccion
Forms![ForClientes]![txtTelefono] = !campTelf
End With
miRs.Close: Set miRs = Nothing
DoCmd.Close acForm, "FormClientesLista"
Salir:
Exit Sub
ManipulaError:
If Not miRs Is Nothing Then miRs.Close: Set miRs = Nothing
Resume Salir
End Sub
Modificamos el código Visual Base del botón Guardar en el formulario forClientes
Private Sub btnGuardar_Click()
'Los campos son requeridos
If Not IsNull(Me.txtNombre) And Not IsNull(Me.txtRIF) And Not IsNull(Me.txtTelefono) And Not IsNull(Me.txtDireccion) Then
'Si el campo clave está vacío
If IsNull(Me.txtId) Then
'CAMPOS DE LA TABLA tabCliente: idCliente,campNombre,campRif,campDireccion,campTelf
'CUADRO DE TEXTO forClientes: txtId,txtNombre,txtRIF,txtDireccion,txtTelefono
CurrentDb.Execute "INSERT INTO tabCliente (campNombre,campRif,campDireccion,campTelf) VALUES ('" & Me.txtNombre & "', '" _
& Me.txtRIF & "', '" & Me.txtDireccion & "', '" & Me.txtTelefono & "')", dbFailOnError
MsgBox "Registro agregado correctamente.", vbInformation, "Aviso"
Call Limpiar 'FUNCION Limpiar los campos
Else
CurrentDb.Execute "UPDATE tabCliente set campNombre = '" & Me.txtNombre & "',campRif = '" & Me.txtRIF & "',campDireccion = '" & Me.txtDireccion & "',campTelf = '" & Me.txtTelefono & "' WHERE idCliente = " & Me.txtId & "", dbFailOnError
MsgBox "Registro editado correctamente.", vbInformation, "Aviso"
Call Limpiar 'FUNCION Limpiar los campos
DoCmd.Close acForm, "forClientes"
'Cumple con la función de actualizar
'Cierro y abro el formulario forClientesLista
'DEBO MEJORAR CODIGO
DoCmd.Close acForm, "forClientesLista"
DoCmd.OpenForm "forClientesLista"
End If
Else
MsgBox "Nombre, RIF, Teléfono y Dirección son requeridos." & vbLf & vbLf & "Verifique.", vbExclamation, "Aviso"
End If
End Sub
Buscador de contenido en todos los campos
- Cuadro de texto
- Nombre: txtBuscar
- Botón de comando
- Nombre: btnBuscar
- Título: Buscar
- Al hacer clic: [Procedimiento de evento]
Private Sub btnBuscar_Click()
Dim Consulta As String
Consulta = "SELECT idCliente, campNombre, campRif, campTelf, campDireccion "
Consulta = Consulta & "FROM tabCliente "
Consulta = Consulta & "WHERE idCliente Like '*" & Me.txtBuscar & "*' OR campNombre Like '*" & Me.txtBuscar & "*' OR campRif Like '*" & Me.txtBuscar & "*' OR campTelf Like '*" & Me.txtBuscar & "*' OR campDireccion Like '*" & Me.txtBuscar & "*'"
Me.ListaCliente.RowSource = Consulta
End Sub
- Botón de comando
- Nombre: btnLimpiar
- Título: Limpiar
- Al hacer clic: [Procedimiento de evento]
Private Sub btnLimpiar_Click()
'Lleno el cuadro de lista co todos los registro
Me.ListaCliente.RowSource = "SELECT idCliente, campNombre, campRif, campTelf, campDireccion FROM tabCliente"
'Limpio el buscador
Me.txtBuscar = Null
End Sub
