Tironemota

Access

Códigos Access
09-08-2022

Mostrar u ocultar campo 09-08-2022

En el formulario contamos con dos campos: campoValor y campoOculto.

En propiedades del campo campoOculto, selecionamos Visible: No

En el evento Después de actualizar del campoValor, seleccionamos generador de código y ponemos:

Private Sub campoValor_AfterUpdate()
If Me.campoValor = "VALOR" Then
    Me.campoOculto.Visible = True
Else
    Me.campoOculto = False
End If
End Sub

Para que nos haga esta comprobación al cargar el formulario, en el evento Al activar el registro del formulario:

Private Sub Form_Current()
    Call campoValor_AfterUpdate
End Sub

Referecia a otro control 09-08-2022

Control que hace referencia a otro control del formulario.

Origen del control: =[Formularios]![Nombre del formulario]![nombre control]

Control que hace referencia a un control en un subformulario

Origen del control: =[Formularios]![nombre del formulario principal]![nombre de control de subformulario del formulario principal].[Formulario]![nombre de control en el subformulario]

Mensaje 09-08-2022

Un producto supera un precio

1/2.- Cuando navegamos por el formulario viendo los registros que contiene, nos indica con un MsgBox, que el producto supera los 300 Bolívares.

El evento del formulario es Al activar registro

Private Sub Form_Current()
'Si el valor del campo PRECIO es mayor a 300 entonces
If PRECIO.Value > 300 Then
'Muéstrame un mensaje
MsgBox "El articulo supera los 300 Bolívares ..."
End If
End Sub

2/2.- Si el valor del precio supera los 300 Euros, nos pregunte si deseamos rebajar el precio y caso positivo nos permita hacerlo desde un InputBox

Private SubForm_Current()
'Declaro variable
Dim repuesta As Integer
'Si el valor del campo PRECIO es mayor a 300 entonces
If PRECIO.Value > 300 Then
'Introducimos valor en la variable
    'Incluimos parámetros que nos muestra botones Si y No
    repuesta = MsgBox("El articulo supera los 300 Euros. Deseas rebajar el precio ...", vbYesNo)
'Si repuesta es igual vbYes = 6
If repuesta = vbYes Then
'El valor de campo PRECIO es igual al valor del campo menos lo introducido por usuario
PRECIO.Value = PRECIO.Value - InputBox("Introduce el valor a rebajar..")
'Caso contrario
Else
'Mensaje
MsgBox "El precio no será rebajado"
EndIf
EndIf
End Sub

Botón cerrar formulario 09-08-2022

  • Botón de comando:
    • Nombre: CerrarFormulario
    • Título: &Cerrar formulario
    • Al hacer clic: [Procedimiento de evento]
Private Sub CerrarFormulario_Click()
On Error GoTo Err_CerrarFormulario_Click
    DoCmd.Close
Exit_CerrarFormulario_Click:
    Exit Sub
Err_CerrarFormulario_Click:
    MsgBox Err.Description
    Resume Exit_CerrarFormulario_Click
End Sub

Botón cerrar aplicación 09-08-2022

  • Botón de comando
    • Nombre: CerrarAplicacion
    • Título: Cerrar &aplicación
    • Al hacer clic: [Procedimiento de evento]
Private Sub CerrarAplicacion_Click()
On Error GoTo Err_CerrarAplicacion_Click
    DoCmd.Quit
Exit_CerrarAplicacion_Click:
    Exit Sub
Err_CerrarAplicacion_Click:
    MsgBox Err.Description
    Resume Exit_CerrarAplicacion_Click
End Sub

Botón eliminar registro

  • Tipo de selección: Botón de comando
    • Propiedades del botón:
      • Nombre: Eliminar
      • Título: &Eliminar
      • Al hacer clic: [Procedimiento de evento]
Private Sub Eliminar_Click()
On Error GoTo Err_Eliminar_Click
    Dim Var As String
    Dim Mensaje As Integer
    Dim stLinkCriteria As String
    If IsNull(Me![Nombre de lista]) Then
        MsgBox "Seleccione un registro de la lista"
        Nombre de lista.SetFocus
    Else
    stLinkCriteria = "[Nombre campo indice]=" & Me![Nombre de lista]
    Mensaje = MsgBox("¿Estas seguro de querer eliminar el registro?.", vbYesNo + vbInformation, "Confirmar")
        If Mensaje = vbYes Then
            DoCmd.SetWarnings False
            'borrar un registro tomando el valor de la llave de una Lista
            Var = "DELETE * FROM Nombre de tabla WHERE Nombre de tabla.Nombre campo indice =" & Val(Me.ListaProducto.Column(0))
            DoCmd.RunSQL Var 'se ejecuta la consulta de eliminación
            DoCmd.SetWarnings False
        End If
    End If
    'Para actualizar cierro y abro el formulario
    DoCmd.Close
    DoCmd.OpenForm "Nombre del Formulario"
Exit_Eliminar_Click:
    Exit Sub
Err_Eliminar_Click:
    MsgBox Err.Description
    Resume Exit_Eliminar_Click
End Sub

Botón editar registro 09-08-2022

Abrir un formulario edital al hacer clic sobre un objeto, como un botón de comando

Se requiere seleccionar primero el registro a editar contenido en una lista. Puede ser una lista contenida por un Cuadro de lista o Cuadro combinado.

  • Botón de comando
    • Nombre: EditarRegistro
    • Título: &Editar Registro
    • Al hacer clic: [Procedimiento de evento]
Private Sub EditarRegistro_Click()
On Error GoTo Err_EditarRegistro_Click
    Dim stDocName As String
    Dim stLinkCriteria As String
    If IsNull(Me![NombreDelObjeto]) Then
        MsgBox "ERROR.- Debe selecionar el registro que desea editar..."
        NombreDelObjeto.SetFocus
    Else
        stDocName = "NombreDelFormularioQueAbrira"
        stLinkCriteria = "[NombreCampoClave]=" & Me![NombreDelObjeto]
        DoCmd.OpenForm stDocName, , , stLinkCriteria, , acDialog
    End If
Exit_EditarRegistro_Click:
    Exit Sub
Err_EditarRegistro_Click:
    MsgBox Err.Description
    Resume Exit_EditarRegistro_Click
End Sub

Botón buscar registro 28-08-2022

El botón esta ubicado en un formulario que contiene un cuadro combinado, el cual nos permite seleccionar el registro a buscar.

  • Tipo de selección: Botón de comando
  • Propiedades del botón:
    • Nombre: Buscar
    • Titulo: &BUSCAR
    • Evento: Al hacer clic
Private Sub Buscar_Click()
On Error GoTo Err_Buscar_Click
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "Nombre del formulario que abrirá"
    stLinkCriteria = "[Nombre campo clave]=" & Me![Nombre del cuadro combinado]
    DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Buscar_Click:
    Exit Sub
Err_Buscar_Click:
    MsgBox "Debe seleccionar un registro para ser actualizado ..."
    Resume Exit_Buscar_Click
End Sub

Botón vista previa de informe 28-08-2022

Botón que se encuentra generalmente en factura o cotizaciones, lo que nos permite revisarla antes de imprimirla.

  • Botón de comando:
    • Nombre: VistaPrevia
    • Título: &Vista previa ...
    • Al hacer clic: [Procedimiento de evento]
Private Sub VistaPrevia_Click()
On Error GoTo Err_VistaPrevia_Click
    Dim stDocName As String
    stDocName = "NombreInformeQueAbre"
    DoCmd.OpenReport stDocName, acViewPreview, "NombreFiltroParaInforme"
Exit_VistaPrevia_Click:
    Exit Sub
Err_VistaPrevia_Click:
    MsgBox Err.Description
    Resume Exit_VistaPrevia_Click
End Sub

Botón imprimir informe 28-08-2022

Botón que se encuentra generalmente en factura o cotizaciones, lo que nos permite imprimirla.

  • Botón de comando:
    • Nombre: Imprime
    • Título: &Imprimir ...
    • Al hacer clic: [Procedimiento de evento]
Private Sub Imprime_Click()
On Error GoTo Err_Imprime_Click
    Dim cadNombreDocumento As String
    cadNombreDocumento = "NombreInformeQueImprime"
    DoCmd.OpenReport cadNombreDocumento, acViewNormal, "NombreFiltroParaInforme"
Salir_Imprime_Click:
    Exit Sub
Err_Imprime_Click:
    Const conErrDoCmdCancelado = 2501
    If (Err = conErrDoCmdCancelado) Then
        Resume Salir_Imprime_Click
    Else
        MsgBox Err.Description
        Resume Salir_Imprime_Click
    End If
End Sub

Filtro para informe 28-08-2022

Creamos una consulta para aplicar un filtro que nos muestre en un informe los datos requeridos o sugeridos en un formulario.

SELECT NombreDeTablaOConsulta.*, NombreDeTablaOConsulta.CampoClave
FROM NombreDeTablaOConsulta
WHERE (((NombreDeTablaOConsulta.CampoClave)=[Forms]![NombreDelFormulario]![NombreCampoDelFormulario]));

Filtro según fecha 28-08-2022

Creamos un formulario donde nos permita seleccionar un rango de busqueda entre la fecha inicio y la fecha final. Creamos un informe con una consulta donde colocamos al campo de fecha el siguiente filtro

>=[forms]![NOMBRE-DE-FORMULARIO]![FechaInicio] Y <=[forms]![NOMBRE-DE-FORMULARIO]![FechaFinal]

Duración del programa 30-08-2022

  • En formulario de control
    • Propiedades del formulario
      • Al abrir: [Procedimiento de evento]
Private Sub Form_Open(Cancel As Integer)
'Duración del programa
Dim varClave As String
Dim varCliente As String
Dim varObjeto As String
Dim varFecha As Date
Dim varMin15 As Date
Dim varMin30 As Date
Dim varMax15 As Date
Dim varMax30 As Date
'Confirmo que es el propietario del programa
varClave = InputBox("Introduce tu nombre", "TIRONEMOTA", "Escribe tú nombre ...")
varCliente = "tironemota" 'Nombre clave del propietario
varObjeto = "Borrar1" 'Objeto a ser eliminado
varFecha = #8/30/2023# 'Fecha de vencimiento
varMin15 = varFecha - 15 '15 días antes
varMin30 = varFecha - 30 '30 días antes
varMax15 = varFecha + 15 '15 días después
varMax30 = varFecha + 30 '30 días después
'El cliente debe identificarse
If varCliente = varClave Then
    If varFecha = Date Then
        MsgBox "Debe comunicarse con su proveedor" & vbCrLf & "Requiere mantenimiento ...", vbInformation, "TIRONEMOTA"
    ElseIf Date < varFecha And Date >= varMin15 Then
        MsgBox "Mantenimiento programado " & varFecha & "." & vbCrLf & "Faltan: " & (varFecha - Date) & " días." & vbCrLf & "Comunicate con tu proveedor...", vbInformation, "TIRONEMOTA"
    ElseIf Date < varMin15 And Date >= varMin30 Then
        MsgBox "Mantenimiento programado " & varFecha & "." & vbCrLf & "Faltan: " & (varFecha - Date) & " días." & vbCrLf & "Comunicate con tu proveedor...", vbInformation, "TIRONEMOTA"
    ElseIf Date > varFecha And Date <= varMax15 Then
        MsgBox "Mantenimiento programado " & varFecha & "." & vbCrLf & "Vencido hace: " & (Date - varFecha) & " días." & vbCrLf & "Quedan " & (Date - varFecha) & " días por mantenimiento." & vbCrLf & "Comunicate con tu proveedor...", vbInformation, "TIRONEMOTA"
    ElseIf Date > varMax15 And Date <= varMax30 Then
        MsgBox "Mantenimiento programado " & varFecha & "." & vbCrLf & "Vencido hace: " & (Date - varFecha) & " días." & vbCrLf & "Garantía vencida por mantenimiento." & vbCrLf & "Comunicate con tu proveedor...", vbInformation, "TIRONEMOTA"
    Else
        MsgBox "Queda desabilitado por falta de Mantenimiento", vbInformation, "TIRONEMOTA"
        DoCmd.DeleteObject acForm, varObjeto
    End If
Else
    DoCmd.Close 'Cierro el formulario
    MsgBox "Tú eres " & varCliente & vbCrLf & "NO TIENES PERMISO", vbCritical, "TIRONEMOTA"
End If
End Sub

Botón borrar contenido de campos 09/09/2022

  • Botón de comandos
    • Nombre: Borrar
    • Título: Borrar
    • Al hacer clic: [Procedimiento de evento]
Private Sub Borrar_Click()
    'Borramos el contenido de los campos
    campo1.Value = Null
    campo2.Value = Null
    campo3.Value = Null
    campo4.Value = Null
    campo5.Value = Null
    'Enviamos el cursor al primer campo
    campo1.SetFocus
End Sub

Formulario Clave de ingreso 14/09/2022

[Clave-de-ingreso]

Crear formulario claveIngreso

  • Propiedades del Fotmulario:
    • Título: Clave de ingreso
    • Emergente:
    • Ancho: 20cm
    • Centrado automatico:
    • Estilos de los bordes: Ninguno
    • Selectores de registro: No
    • Botones de navegación: No
    • Barras de desplazamiento: Ninguna
    • Cuadro de control: No
    • Movible: No
    • Menú contextual: No
    • Al abrir: [Procedimiento de evento]
Private Sub Form_Open(Cancel As Integer)
    DoCmd.Maximize
End Sub
  • Propiedades de la Sección Detalle
    • Alto: 5cm
  • Cuadro de texto
    • Etiqueta del Cuadro de texto
      • Título: Ingrese su clave de acceso y pulse Enter
      • Ancho: 12cm
      • Alto: 1cm
      • Superior: 3cm
      • Izquierda: 3cm
      • Tamaño de la fuente: 20
      • Alineación del texto: Centro
      • Espesor de la fuente: Negrita
      • Color del texto: #2F3699
    • Cuadro de texto
      • Nombre: Clave
      • Ancho: 10cm
      • Alto: 1cm
      • Superior: 4cm
      • Izquierda: 4cm
      • Tamaño de la fuente: 20
      • Alineación del texto: Centro
      • Espesor de la fuente: Negrita
      • Mascara de entrada: Contraseña
      • Después de actualizar: Procedimiento de evento
Private Sub Clave_AfterUpdate()
'Si pulso tecla Entrar y Clave esta vacio
If IsNull([Clave]) Then
    MsgBox "INTRODUSCA SU CLAVE DE ACCESO ...."
    'Envio el foco al campo Clave
    DoCmd.GoToControl "Clave"
Else
If [Clave] = "ClaveDelProgramador" Then 'Clave programador
    DoCmd.OpenForm "NombreDelFormulario", acNormal
Else
If [Clave] = "ClaveDuenoDelPrograma" Then 'CLAVE DEL DUEÑO DEL PROGRAMA
    DoCmd.OpenForm "NombreDelFormulario", acNormal
Else
If [Clave] = "ClaveSecrataria" Then 'CLAVE DE LA SECRETARIA
    DoCmd.OpenForm "NombreDelFormulario", acNormal
Else
    MsgBox "LA CLAVE INGRESADA NO EXISTE, INTENTE DE NUEVO"
    'Envio el foco al campo Clave
    DoCmd.GoToControl "Clave"
End If '/Secretaria
End If '/Dueño del programa
End If '/Programador
End If '/Campo vacío
End Sub
  • Botón de comando
    • Nombre: Salir
    • Título: &Salir
    • Ancho: 3cm
    • Alto: 1cm
    • Superior: 6cm
    • Izquierda: 7,501cm
    • Tamaño de la fuente: 18
    • Espesor de la fuente: Negrita
    • Color del texto: #FF0000
    • Al hacer clic: [Procedimiento de evento]
Private Sub Salir_Click()
On Error GoTo Err_Salir_Click
    DoCmd.Quit
Exit_Salir_Click:
    Exit Sub
Err_Salir_Click:
    MsgBox Err.Description
    Resume Exit_Salir_Click
End Sub

Formulario Clave de ingreso 2 14/09/2022

Este sistema de longeo nos permite registrar al usuario cada vez que entre al programa.

Creamos tabla INGRESO
    Nombre del campo: ID
        Tipo de datos: Autonumeración
        Tamaño del campo: Entero largo
    Nombre del campo: campUsuario
        Tipo de datos: Texto corto
        Tamaño del campo: 20
    Nombre del campo: campClave
        Tipo de datos: Texto corto
        Tamaño del campo: 20
    Nombre del campo: fecha
        Tipo de datos: Fecha/Hora
        Formato: Fecha general
        Valor predeterminado: =Ahora()

Creamos formulario INGRESO
    Propiedades del Formulario
        Título: LONGEO
        Emergente: Si
        Modal: Si
        Ancho: 9cm
        Centrado automático: Si
        Selectores de registros: No
        Botones de navegación: No
        Barras de desplazamiento: Ninguna
        Botones Minimizar Maximizar: Ninguno
        Movible: No
        Menú contextual: No
    Propiedades del Detalle
        Alto: 5,501cm
        Etiqueta:
            Título: LONGEO
            Ancho: 7cm
            Alto: 1cm
            Superior: 0cm
            Izquierda: 1cm
            Nombre de la fuente: Times New Roman
            Tamaño de la fuente: 20
            Alineación del texto: Centro
            Espesor de la fuente: Negrita
            Color del texto: #000080
        Cuadro de texto Independiente
            Etiqueta:
                Título: NOMBRE DE USUARIO:
                Ancho: 7cm
                Alto: 0,556cm
                Superior: 1,501cm
                Izquierda: 1cm
            Cuadro de texto:
                Nombre: formUsuario
                Ancho: 7cm
                Alto: 0,556cm
                Superior: 2,101cm
                Izquierda: 1cm
                Después de actualizar: [Procedimiento de evento]

Private Sub formUsuario_AfterUpdate()
    'Si el campo no está vacío entonces
    If Not IsNull(formUsuario) Then
        'El fondo del cuadro de texto será verde
        formUsuario.BackColor = RGB(225, 255, 225)
    'Caso contrario
    Else
        'El fondo del cuadro de texto será blanco
        formUsuario.BackColor = RGB(255, 255, 255)
    'Cerramos el condicional
    End If
End Sub
Cuadro de texto Independiente Etiqueta: Título: CLAVE DE USUARIO: Ancho: 7cm Alto: 0,556cm Superior: 2,899cm Izquierda: 1cm Cuadro de texto: Nombre: formClave Ancho: 7cm Alto: 0,556cm Superior: 3,508cm Izquierda: 1cm Después de actualizar: [Procedimiento de evento]
Private Sub formClave_AfterUpdate()
    'Si el campo no está vacío entonces
    If Not IsNull(formClave) Then
        'El fondo del cuadro de texto será verde
        formClave.BackColor = RGB(225, 255, 225)
    'Caso contrario
    Else
        'El fondo del cuadro de texto será blanco
        formClave.BackColor = RGB(255, 255, 255)
    'Cerramos el condicional
    End If
End Sub
Botón de comando Nombre: ENTRAR Título: ENTRAR Ancho: 4cm Alto: 0,801cm Superior: 4,501cm Izquierda: 2,501cm Al hacer clic: [Procedimiento de evento]
Private Sub ENTRAR_Click()
    'Campos de la tabla: campUsuario y campClave
    'Campos del formulario: formUsuario y formClave
    'Declaramos variables
    Dim LONGEO, TITULO, insertaReg
    'Valor de las variables
    LONGEO = [formUsuario] & "@" & [formClave] 'Unimos Usuario y Clave con un comodín
    TITULO = "LONGEO TIRONEMOTA" 'Título de ventana emergente
    'En la variable almacenamos la instrucción SQL para que la información vaya a la tabla
    insertaReg = "INSERT INTO INGRESO(campUsuario,campClave)VALUES(formUsuario,formClave)"
    'Si no están vacío los campos entonces
    If Not IsNull([formUsuario]) And Not IsNull([formClave]) Then
        DoCmd.SetWarnings False 'Desactiva los mensajes del sistema.
        'Permisos de acceso
        Select Case LONGEO
            Case "tirone@mota" 'Permiso de acceso
                DoCmd.RunSQL (insertaReg) 'Insertamos registro
                DoCmd.OpenForm "Formulario1" 'Acción a ejecutar
                DoCmd.Close acForm, "INGRESO" 'Cierro el formulario
            Case "liliana@mota" 'Permiso de acceso
                DoCmd.RunSQL (insertaReg) 'Insertamos registro
                DoCmd.OpenForm "Formulario2" 'Acción a ejecutar
                DoCmd.Close acForm, "INGRESO" 'Cierro el formulario
            Case "german@mota" 'Permiso de acceso
                DoCmd.RunSQL (insertaReg) 'Insertamos registro
                DoCmd.OpenForm "Formulario1" 'Acción a ejecutar
                DoCmd.Close acForm, "INGRESO" 'Cierro el formulario
            Case Else
                MsgBox "ERROR : " & Chr(10) & "El Usuario " & [formUsuario] & " o la Clave " & [formClave] & " no coinciden." & Chr(10) & "Intentelo de nuevo ....", , TITULO
                'Limpiamos los campos llevándolos a valor nulo
                [formUsuario].Value = Null
                [formClave].Value = Null
        End Select
        DoCmd.SetWarnings True 'Activa los mensajes del sistema.
    Else 'Caso contrario
        MsgBox "ERROR : " & Chr(10) & "El Usuario y/o la Clave está vacío. " & Chr(10) & "Intentelo de nuevo...", , TITULO
        'Limpiamos los campos llevándolos a valor nulo
        [formUsuario].Value = Null
        [formClave].Value = Null
    End If
End Sub

Formulario Ingresar, Modificar, Eliminar, Buscar 14/09/2022

[Formulario IMEB]

1.- Creamos tabla productosTab

  1. Nombre del campo: IdProducto
    • Tipo de datos: Autonumeración
      • Propiedades del campo:
        • Tamaño del campo: Entero largo
        • Nuevos valores: Incrementalmente
        • Indexado: Sí (Sin duplicados)
      • Clave principal
  2. Nombre del campo: Producto
    • Tipo de datos: Texto corto
    • Propiedades del campo:
      • Tamaño del campo: 100
  3. Nombre del campo: Inventario
    • Tipo de datos: Número
    • Propiedades del campo:
      • Tamaño del campo: Entero largo
      • Formato: Estándar
      • Lugares decimales: 2
  4. Nombre del campo: Stop
    • Tipo de datos: Número
    • Propiedades del campo:
      • Tamaño del campo: Entero largo
      • Formato: Estándar
      • Lugares decimales: 2

2.- Creamos consulta productosCon en Vista SQL:

SELECT productosTab.IdProducto, productosTab.Producto 
FROM productosTab 
WHERE (((productosTab.Producto) Like "*" & [Formularios]![productosFor]![Buscar] & "*")) 
ORDER BY productosTab.Producto;

3.- Creamos formulario productosSubFor

  • Propiedades del formulario:
    • Origen del registro:
SELECT productosTab.IdProducto, productosTab.Producto, productosTab.Inventario, productosTab.stop 
FROM productosTab 
WHERE (((productosTab.IdProducto)=[Formularios]![productosFor]![ListaProducto]));
    • Ancho: 12cm
    • Selectores de registro: No
    • Botones de navegación: No
    • Barras de desplazamiento: Ninguna
    • Al activar registro: [Procedimiento de evento]
Private Sub Form_Current()
    'Si el valor del campo stop es igual o menor al campo inventario
    If [stop].Value >= [inventario].Value Then
        'La propiedad Visible de la etiqueta es igual a True
        StopMinimo.Visible = True
        'Caso contrario
    Else
        'Requerimos que la propiedad visible retorne a False,
        'para que oculte la etiqueta en los productos que el inventario está bien.
        StopMinimo.Visible = False
    End If
End Sub
  • Propiedades de la Sección Detalle
    • Alto: 5cm
  • Cuadro de texto
    • Propiedades de la etiqueta del cuadro de texto
      • Título: ID:
      • Ancho: 1cm
      • Alto: 0,556cm
      • Superior: 1cm
      • Izquierda: 1cm
      • Espesor de la fuente: Negrita
      • Color del texto: #000000
    • Propiedades del cuadro de texto:
      • Nombre: IdProducto
      • Origen del control: IdProducto
      • Ancho: 3cm
      • Alto: 0,556cm
      • Superior: 1cm
      • Izquierda: 2cm
  • Cuadro de texto
    • Propiedades de la etiqueta del cuadro de texto
      • Título: Producto:
      • Ancho: 2cm
      • Alto: 0,556cm
      • Superior: 2cm
      • Izquierda: 1cm
      • Espesor de la fuente: Negrita
      • Color del texto: #000000
    • Propiedades del cuadro de texto:
      • Nombre: IdProducto
      • Origen del control: IdProducto
      • Ancho: 8cm
      • Alto: 0,556cm
      • Superior: 2cm
      • Izquierda: 3cm
  • Cuadro de texto
    • Propiedades de la etiqueta del cuadro de texto
      • Título: Inventario:
      • Ancho: 2cm
      • Alto: 0,556cm
      • Superior: 3cm
      • Izquierda: 1cm
      • Espesor de la fuente: Negrita
      • Color del texto: #000000
    • Propiedades del cuadro de texto:
      • Nombre: Inventario
      • Origen del control: Inventario
      • Ancho: 3cm
      • Alto: 0,556cm
      • Superior: 3cm
      • Izquierda: 3cm
  • Cuadro de texto
    • Propiedades de la etiqueta del cuadro de texto
      • Título: Stop:
      • Ancho: 2cm
      • Alto: 0,556cm
      • Superior: 4cm
      • Izquierda: 1cm
      • Espesor de la fuente: Negrita
      • Color del texto: #000000
    • Propiedades del cuadro de texto:
      • Nombre: Inventario
      • Origen del control: Inventario
      • Ancho: 3cm
      • Alto: 0,556cm
      • Superior: 4cm
      • Izquierda: 3cm
  • Etiqueta:
    • Nombre: StopMinimo
    • Título: Stop Minimo
    • Ancho: 4cm
    • Alto: 1cm
    • Superior: 3,501cm
    • Izquierda: 7cm
    • Tamaño de la fuente: 20
    • Alineación del texto: Centro
    • Espesor de la fuente: Negrita
    • Color del texto: #FF0000

4.- Creamos formulario productosNew

  • Propiedades del formulario:
    • Origen del registro: productosTab
    • Título: Nuevo producto
    • Emergente: Si
    • Modal:
    • Ancho: 10cm
    • Centrado automático: Si
    • Selectores de registro: No
    • Botones de navegación: No
    • Barras de deplazamiento: Ninguna
    • Cuadro de control: No
    • Al cerrar: [Procedimiento de evento]
Private Sub Form_Close()
    DoCmd.Close acForm, "productosFor"
    DoCmd.OpenForm "productosFor"
End Sub
    • Menú contextual: No
  • Propiedades de la Sección Detalle
    • Alto: 5cm
  • Cuadro de texto:
    • Propiedades de la etiqueta del cuadro de texto
      • Título: ID:
      • Ancho: 1,501cm
      • Alto: 0,556cm
      • Superior: 0,501cm
      • Izquierda: 0,501cm
      • Espesor de la fuente: Negrita
      • Color del texto: #000000
    • Propiedades del cuadro de texto:
      • Nombre: IdProducto
      • Origen del control: IdProducto
      • Ancho: 3cm
      • Alto: 0,556cm
      • Superior: 0,501cm
      • Izquierda: 2cm
      • Habilitado: No
      • Bloqueado:
  • Cuadro de texto:
    • Propiedades de la etiqueta del cuadro de texto
      • Título: Producto:
      • Ancho: 2,501cm
      • Alto: 0,556cm
      • Superior: 1,199cm
      • Izquierda: 0,501cm
      • Espesor de la fuente: Negrita
      • Color del texto: #000000
    • Propiedades del cuadro de texto:
      • Nombre: Producto
      • Origen del control: Producto
      • Ancho: 6cm
      • Alto: 0,556cm
      • Superior: 1,199cm
      • Izquierda: 3cm
      • Estilo del fondo: Transparente
      • Color del fondo: #FCE6D4
  • Cuadro de texto:
    • Propiedades de la etiqueta del cuadro de texto
      • Título: Inventario:
      • Ancho: 2,501cm
      • Alto: 0,556cm
      • Superior: 1,905cm
      • Izquierda: 0,501cm
      • Espesor de la fuente: Negrita
      • Color del texto: #000000
    • Propiedades del cuadro de texto:
      • Nombre: Inventario
      • Origen del control: Inventario
      • Ancho: 3cm
      • Alto: 0,556cm
      • Superior: 1,905cm
      • Izquierda: 3cm
      • Estilo del fondo: Transparente
      • Color del fondo: #FCE6D4
  • Cuadro de texto:
    • Propiedades de la etiqueta del cuadro de texto
      • Título: Stop:
      • Ancho: 2,501cm
      • Alto: 0,556cm
      • Superior: 2,619cm
      • Izquierda: 0,501cm
      • Espesor de la fuente: Negrita
      • Color del texto: #000000
    • Propiedades del cuadro de texto:
      • Nombre: Stop
      • Origen del control: Stop
      • Ancho: 3cm
      • Alto: 0,556cm
      • Superior: 2,619cm
      • Izquierda: 3cm
      • Estilo del fondo: Transparente
      • Color del fondo: #FCE6D4
  • Botón de comando:
    • Nombre: Cerrar
    • Título: Cerrar
    • Ancho: 4cm
    • Alto: 1cm
    • Superior: 3,501cm
    • Izquierda: 3cm
    • Tamaño de la fuente: 18
    • Espesor de la fuente: Negrita
    • Color del texto: #F00000
    • Al hacer clic: [Procedimiento de evento]
Private Sub Cerrar_Click()
    DoCmd.Close
End Sub

5.- Creamos formulario productosFor

  • Propiedades del formulario:
    • Título: Movimiento de productos
    • Emergente: Si
    • Modal:
    • Ancho: 22cm
    • Centrado automático: Si
    • Selectores de registro: No
    • Botones de navegación: No
    • Barras de deplazamiento: Ninguna
    • Cuadro de control: No
    • Menú contextual: No
  • Propiedades de la Sección Detalle
    • Alto: 12cm
  • Cuadro de texto:
    • Propiedades de la etiqueta del cuadro de texto
      • Título: Buscar:
      • Ancho: 2cm
      • Alto: 0,556cm
      • Superior: 1cm
      • Izquierda: 1cm
      • Espesor de la fuente: Negrita
      • Color del texto: #000000
    • Propiedades del cuadro de texto:
      • Nombre: Buscar
      • Ancho: 3cm
      • Alto: 0,556cm
      • Superior: 1cm
      • Izquierda: 3cm
      • Después de actualizar: [Procedimiento de evento]
Private Sub Buscar_AfterUpdate()
    Me!ListaProducto.Requery
End Sub
  • Cuadro de lista:
    • Nombre: ListaProducto
    • Número de columnas: 2
    • Ancho de columnas: 0cm;5cm
    • Ancho: 5cm
    • Alto: 9cm
    • Superior: 2cm
    • izquierda: 1cm
    • Origen de la fila: productosCon
    • Tipo de origen de la fila: Tabla/Consulta
    • Columna dependiente: 1
    • Al hacer clic: [Procedimiento de evento]
Private Sub ListaProducto_Click()
    Me!SubFormulario.Requery
End Sub
  • Insertamos un Subformulario
    • Nombre: SubFormulario
    • Objeto origen: productosSubFor
    • Ancho: 12cm
    • Alto: 6cm
    • Superior: 1cm
    • izquierda: 7cm
    • Habilitado: No
    • Bloqueado:
  • Botón de comando Nuevo registro
    • Nombre: Nuevo
    • Título: Nuevo
    • Ancho: 4cm
    • Alto: 1cm
    • Superior: 8cm
    • Izquierda: 7cm
    • Tamaño de la fuente; 18
    • Espesor de la fuente: Negrita
    • Color del texto: #758C48
    • Al hacer clic: [Procedimiento de evento]
Private Sub Nuevo_Click()
    DoCmd.OpenForm "productosNew", acNormal, , , acFormAdd
End Sub
  • Botón de comando: Editar registro
    • Nombre: Editar
    • Título: Editar
    • Ancho: 4cm
    • Alto: 1cm
    • Superior: 8cm
    • Izquierda: 12cm
    • Tamaño de la fuente; 18
    • Espesor de la fuente: Negrita
    • Color del texto: #758C48
    • Al hacer clic: [Procedimiento de evento]
Private Sub Editar_Click()
On Error GoTo Err_Editar_Click
    Dim stDocName As String
    Dim stLinkCriteria As String
    If IsNull(Me![ListaProducto]) Then
        MsgBox "Seleccione un registro de la lista"
        ListaProducto.SetFocus
    Else
        stDocName = "productosNew"
        stLinkCriteria = "[IdProducto]=" & Me![ListaProducto]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    End If
Exit_Editar_Click:
    Exit Sub
Err_Editar_Click:
    MsgBox Err.Description
    Resume Exit_Editar_Click
End Sub
  • Botón de comando: Eliminar registro
    • Nombre: Eliminar
    • Título: Eliminar
    • Ancho: 4cm
    • Alto: 1cm
    • Superior: 8cm
    • Izquierda: 17cm
    • Tamaño de la fuente; 18
    • Espesor de la fuente: Negrita
    • Color del texto: #758C48
    • Al hacer clic: [Procedimiento de evento]
Private Sub Eliminar_Click()
On Error GoTo Err_Eliminar_Click
    Dim Var As String
    Dim Mensaje As Integer
    Dim stLinkCriteria As String
    If IsNull(Me![ListaProducto]) Then
        MsgBox "Seleccione un registro de la lista"
        ListaProducto.SetFocus
    Else
        stLinkCriteria = "[IdProducto]=" & Me![ListaProducto]
        Mensaje = MsgBox("¿Estas seguro de querer eliminar el registro?.", vbYesNo + vbInformation, "Confirmar")
        If Mensaje = vbYes Then
            DoCmd.SetWarnings False
            'borrar un registro tomando el valor de la llave de una Lista
            Var = "DELETE * FROM productosTab WHERE productosTab.IdProducto =" & Val(Me.ListaProducto.Column(0))
            DoCmd.RunSQL Var 'se ejecuta la consulta de eliminación
            DoCmd.SetWarnings False
        End If
    End If
    'Para actualizar cierro y abro el formulario
    DoCmd.Close
    DoCmd.OpenForm "productosFor"
Exit_Eliminar_Click:
    Exit Sub
Err_Eliminar_Click:
    MsgBox Err.Description
    Resume Exit_Eliminar_Click
End Sub
  • Botón de comando: Cerrar formulario
    • Nombre: Cerrar
    • Título: Cerrar formulario
    • Ancho: 6cm
    • Alto: 1cm
    • Superior: 10cm
    • Izquierda: 7cm
    • Tamaño de la fuente; 18
    • Espesor de la fuente: Negrita
    • Color del texto: #903C39
    • Punto de tabulación: No
    • Al hacer clic: [Procedimiento de evento]
Private Sub Cerrar_Click()
On Error GoTo Err_Cerrar_Click
    DoCmd.Close
Exit_Cerrar_Click:
    Exit Sub
Err_Cerrar_Click:
    MsgBox Err.Description
    Resume Exit_Cerrar_Click
End Sub
  • Botón de comando: Salir de Access
    • Nombre: Salir
    • Título: Salir de Access
    • Ancho: 6cm
    • Alto: 1cm
    • Superior: 10cm
    • Izquierda: 15cm
    • Tamaño de la fuente; 18
    • Espesor de la fuente: Negrita
    • Color del texto: #903C39
    • Al hacer clic: [Procedimiento de evento]
Private Sub Salir_Click()
On Error GoTo Err_Salir_Click
    DoCmd.Quit
Exit_Salir_Click:
    Exit Sub
Err_Salir_Click:
    MsgBox Err.Description
    Resume Exit_Salir_Click
End Sub

Formulario Inicio 14/09/2022

Formulario Inicio

Tabla i01t

Contenedor de los temas del programa

  • Campo
    • Nombre del campo: idTema
      • Tipo de datos: Autonumeración
      • Propiedades del campo:
        • Tamaño del campo: Entero largo
        • Nuevos valores: Incrementalmente
      • Clave principal
  • Campo
    • Nombre del campo: Descripcion
      • Tipo de datos: Texto corto
      • Propiedades del campo:
        • Tamaño del campo: 100
  • Campo (Determina el orden de los temas en las listas.)
    • Nombre del campo: Orden
      • Tipo de datos: Número
      • Propiedades del campo:
        • Tamaño del campo: Entero
  • Campo
    • Nombre del campo: Tipo
      • Tipo de datos: Texto corto
      • Propiedades del campo:
        • Tamaño del campo: 50

Abrimos en Vista hoja de datos e insertamos los datos en la tabla

t01t

Tabla i02t

Contenedor de los objetos que deseamos ver

  • Campo
    • Nombre del campo: idObjeto
      • Tipo de datos: Autonumeración
      • Propiedades del campo:
        • Tamaño del campo: Entero largo
        • Nuevos valores: Incrementalmente
      • Clave principal
  • Campo
    • Nombre del campo: NombreObjeto
      • Tipo de datos: Texto corto
      • Propiedades del campo:
        • Tamaño del campo: 60
  • Campo
    • Nombre del campo: TipoObjeto
      • Tipo de datos: Texto corto
      • Propiedades del campo:
        • Tamaño del campo: 10

Abrimos en Vista hoja de datos e insertamos los datos en la tabla

t02t

Tabla i03t

Descripción de los objetos que deseamos ver

  • Campo
    • Nombre del campo: idTema
      • Tipo de datos: Número
      • Propiedades del campo:
        • Tamaño del campo: Entero
  • Campo
    • Nombre del campo: idEjemplo
      • Tipo de datos: Autonumeración
      • Propiedades del campo:
        • Tamaño del campo: Entero largo
        • Nuevos valores: Incrementalmente
      • Clave principal
  • Campo
    • Nombre del campo: Descripcion
      • Tipo de datos: Texto corto
      • Propiedades del campo:
        • Tamaño del campo: 60
  • Campo
    • Nombre del campo: idObjeto
      • Tipo de datos: Número
      • Propiedades del campo:
        • Tamaño del campo: Entero largo

Abrimos en Vista hoja de datos e insertamos los datos en la tabla

t03t

Consulta SQL i04c

Filtramos el contenido según el tema

SELECT i03t.Descripcion, i02t.NombreObjeto, i02t.TipoObjeto, i03t.idTema
FROM i02t INNER JOIN i03t ON i02t.idObjeto = i03t.idObjeto
WHERE (((i03t.idTema)=[Forms]![i06f]![SeleccionarTema]))
ORDER BY i03t.Descripcion;

Consulta SQL i05c

SELECT t01t.idTema, t01t.Descripcion
FROM t01t
ORDER BY t01t.Descripcion;

Formulario i06f

Formulario de inicio de nuestro programa

Propiedades

  • Selección: Formulario
    • Titulo: << MOVIMIENTO EMPRESARIAL >>
    • Emergente: Si
    • Permitir vista Hoja de datos: No
    • Ancho: 22cm
    • Centrado Automático: Si
    • Selector de registro: No
    • Botones de navegación: No
    • Barras de desplazamientos: Ninguna
    • Botones Minimizar Maximizar: Ninguno
    • Movible: Si
    • Menú contextual: No
    • Al activar registro: [Procedimiento de evento]
Private Sub Form_Current()
    DoCmd.Maximize
End Sub
  • Sección: Detalle
    • Alto: 16cm
    • Selección: Cuadro de lista
      • Etiqueta del cuadro de lista
        • Título: Seleccionar &tema del programa:
        • Ancho: 7cm
        • Alto: 0,6cm
        • Superior: 3cm
        • Izquierda: 3cm
        • Nombre de la fuente: Arial
        • Tamaño de la fuente: 12
        • Espesor de la fuente: Negrita
        • Color del texto: #000000
      • Cuadro de lista
        • Nombre: SeleccionarTema
        • Número de columnas: 2
        • Ancho de columnas: 0cm;7cm
        • Ancho: 7cm
        • Alto: 10cm
        • Superior: 4cm
        • Izquierda: 3cm
        • Color del fondo: #C0C0C0
        • Estilo de los bordes: Sólido
        • Ancho de los bordes: 1 pt
        • Color de los bordes: #000000
        • Efecto especial: Grabado
        • Nombre de la fuente: Arial
        • Tamaño de la fuente: 12
        • Espesor de la fuente: Negrita
        • Origen de la fila: i05c
        • Tipo de origen de la fila: Tabla/Consulta
        • Columna dependiente: 1
        • Despues de actualizar: [Procedimiento de evento]
Private Sub SeleccionarTema_AfterUpdate()
    '  Volver a consultar el cuadro de lista SeleccionarEjemplo.
    Me!SeleccionarEjemplo.Requery
End Sub
    • Selección: Cuadro de lista
      • Etiqueta del cuadro de lista
        • Título: Seleccionar un &objeto:
        • Ancho: 7cm
        • Alto: 0,6cm
        • Superior: 3cm
        • Izquierda: 11cm
        • Nombre de la fuente: Arial
        • Tamaño de la fuente: 12
        • Espesor de la fuente: Negrita
        • Color del texto: #000000
      • Cuadro de lista
        • Nombre: SeleccionarEjemplo
        • Número de columnas: 3
        • Ancho de columnas: 7cm;0cm;0cm
        • Ancho: 7cm
        • Alto: 10cm
        • Superior: 4cm
        • Izquierda: 11cm
        • Color del fondo: #C0C0C0
        • Estilo de los bordes: Sólido
        • Ancho de los bordes: 1 pt
        • Color de los bordes: #000000
        • Efecto especial: Grabado
        • Nombre de la fuente: Arial
        • Tamaño de la fuente: 12
        • Espesor de la fuente: Negrita
        • Origen de la fila: i004c
        • Tipo de origen de la fila: Tabla/Consulta
        • Columna dependiente: 2
        • Al hacer doble clic: [Procedimiento de evento]
Private Sub SeleccionarEjemplo_DblClick(Cancel As Integer)
    '  Ejecutar el procedimiento Acpetar_Click.
    Aceptar_Click
End Sub
    • Selección: Botón de comando
      • Nombre: Aceptar
      • Título: &Aceptar
      • Ancho: 2cm
      • Alto: 0,6cm
      • Superior: 14,7cm
      • Izquierda: 11cm
      • Transparente: Si
      • Predeterminado: Si
      • Texto de ayuda del control: Mostrar el formulario o el informe del objeto seleccionado.
      • Texto en la barra de estado: Mostrar el formulario o el informe del objeto seleccionado.
      • Al hacer clic: [Procedimiento de evento]
Private Sub Aceptar_Click()
    On Error Resume Next
    If Me!SeleccionarEjemplo.Column(2) = "Formulario" Then
            End If
        DoCmd.OpenForm Me!SeleccionarEjemplo.Column(1)
        If Err = 2501 Then Exit Sub
        If Me!Muéstreme = True Then
            End If
        DoCmd.OpenReport Me!SeleccionarEjemplo.Column(1), acViewPreview
        If Err = 2501 Then Exit Sub
        If Me!Muéstreme = True Then
    End If
End Sub
    • Selección: Botón de comando
      • Nombre: Cerrar
      • Título: &SALIR
      • Ancho: 3cm
      • Alto: 0,801cm
      • Superior: 14,6cm
      • Izquierda: 14cm
      • Nombre de la fuente: Times New Roman
      • Tamaño de la fuente: 14
      • Espesor de la fuente: Negrita
      • Color de la fuente: #FF0000
      • Al hacer clic: [Procedimiento de evento]
Private Sub Cerrar_Click()
On Error GoTo Err_Cerrar_Click
    DoCmd.Quit
Exit_Cerrar_Click:
    Exit Sub
Err_Cerrar_Click:
    MsgBox Err.Description
    Resume Exit_Cerrar_Click
End Sub

Mostrar texto según estado de casilla de verificación 14/09/2022

Casilla-de-verificación
Tabla Pedidos
    Campo: ID
        Tipo de datos: Autonumeración
        Clave Principal
    Campo: enviado
        Tipo de datos: Sí/No
        Formato: Sí/No
        Valor predeterminado: No
        Mostrar control: Casilla
Formulario Pedido
    Propiedades del formulario
        Origen del registro: Pedidos
    Casilla
        Nombre: enviado
        Origen del control: enviado
    Etiqueta: Enviado
    Cuadro de texto:
        Origen del control: =SiInm([enviado]=Sí;"Ha sido enviado";"Sin enviar")

Campo Autonumérico 15/09/2022

Personalizar campo Autonumérico en access con valor inicial diferente a 1

1.- Creamos una tabla en access bajo el nombre empleados indicando 3 campos:

[Tabla empleados]

2.- Antes de agregar nuestro primer registro crearemos una Sentencia SQL de acuerdo a nuestra tabla y quedaria de la siguiente manera...

INSERT INTO empleados ( idEmpleado ) SELECT 1999 AS NuevoValor;

En esta sentencia indicamos que deseamos agregar un nuevo registro a nuestra tabla de empleados dando un valor de 1999 a nuestro campo autonumerico (hacemos esto si deseamos empezar a colocar registros apartir del numero 2000).

Creamos una consulta en Vista SQL y le colocamos la sentencia SQL para nuestra tabla. Guardamos la consulta bajo el nombre NuevoValorAutonumerico.

[Nuevo Valor Autonumerico]

3.- Ejecutaremos esta consulta SQL con el signo de admiracion de la barra de Access [!]

[Consulta Nuevo Valor Autonumerico]

Access nos notifica que se va ejecutar la consulta, para lo cual pulsamos .

[Ejecutar consulta]

Access nos advierte que se va anexar una fila a la tabla, donde pulsamos .

[Anexar fila]

4.- Abrimos la tabla Empleados en Vista hoja de datos y ahora nuestro resultado sera el siguiente...

[Resultado]

5.- Ahora nuestro puntero al momento de agregar un nuevo registro le dara el numero 2000 como valor inicial y quedaria de la siguiente manera...

[Nuevo registro]

6.- Borramos nuestro registro 1999 y listo podremos empezar a crear registros a partir de 2000

[Tabla empleados]

Opciones de Access 29/11/2022

Access 2007

1.- Para cambiar las opciones de Access pulsamos el Botón de Office Botón de Office

2.- Pulsamos El botón Opciones de Access

Ventana de Office
  • Opciones de aplicación
    • Título de la aplicación: Nombre que deseamos para la Base de Datos.
    • Icono de la aplicación: Seleccionamos una imagen tipo .ico para mostrar en los Formularios e Informes
    • Activamos Usar como icono Formulario e informe
    • Mostrar formulario: Seleccionar el formulario a presentar cuando abra la base de datos
  • Exploración
    • Desactivamos Mostrar panel de exploración (Esto oculta la lista de objetos de la base de datos, para activarla pulsar F11)
Opciones de Access

Access 2007 - 2016

Para cambiar las opciones de Access 2007 - 2016, abrimos nuestra base de datos y pulsamos en la pestaña Archivo.

Pestaña-Inicio

En la ventana Archivo selecionamos Opciones.

Ventana-Archivos

Se nos muestra el asistente Opciones de Access

Opciones-de-Access

Ocultar ventana de objetos de la base de datos

Access 2007 - 2016

Abrimos la base de dato Access > Pestaña Archivo > Opciones > Base de datos actual > Desabilitar Mostrar panel de navegación.

Mostrar-panel-de-navegación

Access

Podemos hacer click sobre Botón de Office >> Opciones de access >> Base de dato actual >> Desabilitar Mostrar panel de exploración.

Mostrar formulario al abrir Access

Abrimos la base de dato Access >> Pestaña Archivo o Botón Office [Botón Office] >> Opciones de Access >> Base de datos actual >> Opciones de la aplicación >> Mostrar formulario: NombreDelFormulario >> Botón Aceptar.

Debe cerrar y volver abrir la base de datos actual para que la opción especificada tenga efecto.

Formulario de arranque o inicio 01/07/2023

Para el arranque del programa se requieren de dos formularios:

  1. arranque
  2. panelControl

Propiedades de ambos formularios:

  1. Emergente: Si
  2. Modal: Si
  3. Centrado automático: Si
  4. Estilo de los bordes: Ninguno
  5. Selectores de registro: No
  6. Botones de navegación: No
  7. Barras de desplazamiento: Ninguna

Formulario panelControl requiere de un botón de control que permita cerrar el sistema Access

Formulario arranque

[Formulario de arranque]

    Propiedades del formulario:
  1. Al cronómetro: [Procedimiento de evento]
Option Compare Database
Option Explicit
'Declaramos variable
Dim Contador As Integer

Private Sub Form_Timer()
    'Creamos un contador
    Contador = Contador + 1
    'Si el contador llega a 100
    If Contador = 100 Then
        'Cierro formulario arranque
        DoCmd.Close
        'Abro formulario panelControl
        DoCmd.OpenForm "panelControl", acNormal
    End If
End Sub
  1. Intervalo de cronómetro: 100
  2. Al abrir: [Procedimiento de evento]
Private Sub Form_Open(Cancel As Integer)
    Contador = 0
End Sub

Opciones de Access > Base de datos actual > Opciones de la aplicación > Mostrar formulario: arranque > Botón Aceptar