Mostrando entradas con la etiqueta Ms Access. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ms Access. Mostrar todas las entradas

2020-04-12

Almacenar fecha y hora al crear registros en Ms Access

Problema

Queremos almacenar la fecha y hora al crear un nuevo registro en Ms Access.

Solución

  1. En la tabla de destino creamos los campos deseados para almacenar la fecha. En nuestro ejemplo de manera demostrativa tenemos tres: Fecha y hora, Fecha y Hora.
  2. En la propiedad Formato especificamos el formato deseado: Fecha general (para mostrar fecha y hora), Fecha corta (para mostrar solamente la fecha), y Hora larga (para mostrar solamente la hora).
  3. En la propiedad Valor predeterminado especificamos =Ahora(), de esta manera cuando añadamos un nuevo registrará la fecha y hora actual automáticamente.

Notas

Podemos añadir la fecha y hora por registro de manera más sofisticada, dentro de un formulario de introducción de datos, por ejemplo cada vez que hagamos clic en un campo:

  1. Creamos la macro correspondiente para registrar la fecha y hora.
  2. En la vista de diseño del formulario, vamos a la hoja de propiedades del campo deseado, clic en la pestaña Eventos, y clic en la flecha del cuadro donde seleccionamos el nombre de la macro anteriormente creada.
  3. Al hacer clic en campo en el que hemos añadido dicho evento insertará el valor establecido en la macro.

2020-02-27

La expresión SQL CASE usando una tabla intermedia en Ms Access

Problema

Queremos replicar la expresión SQL CASE, actualmente no disponible, en Ms Access. En esta ocasión usaremos una tabla intermadia para crear los invervalos.

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;
En nuestro ejemplo para la columna Num queremos crear intervalos de 0 a >1000 con incrementos de 100. Usamos paréntesis y corchetes para denotar los intervalos semi-abiertos y semi-cerrados.

Solución

  1. Creamos una tabla intermedia con los intervalos
  2. Unimos ambas tablas basándonos en los límites inferior y superior de los intervalos
  3. SELECT Tabla.Num, intervalos.Intervalos
    FROM Tabla INNER JOIN intervalos ON (Tabla.Num > intervalos.inferior) AND (Tabla.Num <= intervalos.superior);
    

Entradas relacionadas

La expresión SQL CASE en Ms Access

Problema

Queremos replicar la expresión SQL CASE, actualmente no disponible, en Ms Access.

CASE
    WHEN condición1 THEN resultado1
    WHEN condición2 THEN resultado2
    WHEN condiciónN THEN resultadoN
    ELSE resultado
END;
En nuestro ejemplo para la columna Num queremos crear intervalos de 0 a >1000 con incrementos de 100. Usamos paréntesis y corchetes para denotar los intervalos semi-abiertos y semi-cerrados.

Solución

  1. SiInm
  2. SiInm:SiInm([Num]<=100, "(0,100]"
    ,SiInm([Num]<=200,"(100-200]",
    SiInm([Num]<=300,"(200-300]",
    SiInm([Num]<=400,"(300-400]",
    SiInm([Num]<=500,"(400-500]",
    SiInm([Num]<=600,"(500-600]",
    SiInm([Num]<=700,"(600-700]",            
    SiInm([Num]<=800,"(700-800]",              
    SiInm([Num]<=900,"(800-900]",
    SiInm([Num]<=1000,"(900-1000]",
    SiInm([Num]>1000,">1000",""
    )))))))))))
    
    Usamos SiInm anidados para crear los intervalos. Necesitamos sere muy cuidadosos para incluir todos los paréntesis.

  3. Conmutador
  4. Conmutador:
    Conmutador([Num]<=100,"(0,100]"
    ,[Num]<=200,"(100-200]"
    ,[Num]<=300,"(200-300]"
    ,[Num]<=400,"(300-400]"
    ,[Num]<=500,"(400-500]"
    ,[Num]<=600,"(500-600]"
    ,[Num]<=700,"(600-700]"
    ,[Num]<=800,"(700-800]"
    ,[Num]<=900,"(800-900]"
    ,[Num]<=1000,"(900-1000]"
    ,[Num]>1000,">1000")
    
    Conmutador tiene una sintaxis más clara. Evitamos usar condiciones anidadas mediante pares de expresiones y valores.

Referencias

Entradas relacionadas

2020-02-06

SQL CASE Statement using an intermediate table in Ms Access

Problem

We need to create a SQL CASE Statement which is not currently supported in Ms Access. This time we will use an intermediate table to create the intervals.

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;
In our example for the column Number we want to create intervals of 100 from 0 to >1000. We will use the interval notation: parentheses and/or brackets are used to show whether the endpoints are excluded or included respectively.

Solution

  1. Create an intermediate table with the intervals
  2. Join both tables based on the lower and upper bounds of the intervals.
  3. SELECT Table.Number, intervals.Interval
    FROM [Table] INNER JOIN intervals ON (Table.Number > intervals.lower) AND (Table.Number <= intervals.upper);
    

Related posts

2020-02-05

SQL CASE Statement in Ms Access

Problem

We need to create a SQL CASE Statement which is not currently supported in Ms Access

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;
In our example for the column Number we want to create intervals of 100 from 0 to >1000. We will use the interval notation: parentheses and/or brackets are used to show whether the endpoints are excluded or included respectively.

Solution

  1. IIF
  2. IFF:IIf([Number]<=100, "(0,100]"
    ,IIf( [Number]<=200,"(100-200]",
    IIf([Number]<=300,"(200-300]",
    IIf([Number]<=400,"(300-400]",
    IIf([Number]<=500,"(400-500]",
    IIf([Number]<=600,"(500-600]",
    IIf([Number]<=700,"(600-700]",            
    IIf([Number]<=800,"(700-800]",              
    IIf([Number]<=900,"(800-900]",
    IIf([Number]<=1000,"(900-1000]",
    IIf([Number]>1000,">1000",""
    )))))))))))
    
    We use nested IIF statements to create the intervals. We need to be very careful to include all parentheses.

  3. SWITCH
  4. SWTICH:
    Switch([Number]<=100,"(0,100]"
    ,[Number]<=200,"(100-200]"
    ,[Number]<=300,"(200-300]"
    ,[Number]<=400,"(300-400]"
    ,[Number]<=500,"(400-500]"
    ,[Number]<=600,"(500-600]"
    ,[Number]<=700,"(600-700]"
    ,[Number]<=800,"(700-800]"
    ,[Number]<=900,"(800-900]"
    ,[Number]<=1000,"(900-1000]"
    ,[Number]>1000,">1000")
    
    SWITCH has a cleaner syntax. We avoid nesting all conditions using pairs of expressions and values.

References

Related posts

2019-11-24

Get Windows user name in VBA

Problem

We'd like to retrieve the current Windows user name in VBA. For instance, based on that value, we could track access, enable login, or personalize the information displayed in our files.

Solution

  1. We open the Microsoft Visual Basic Editor: Alt+F11.
  2. We copy the following subroutine.
    • Sub username()
      MsgBox Environ("UserName")
      End Sub
      
  3. We run it pressing F5.
  4. A message box will display the name of the current user.
We can type the following expression into the Immediate window:

?Environ("Username")
We can store the user name in a cell.

Sub usuario()
Sheets("Hoja1").Range("A1") = Environ("UserName")
End Sub

2018-12-28

Las entradas más visitadas en 2018

Las 10 entradas más visitadas en 2018 en las categorías de R, Excel, Access y VBA han sido:

R

  1. Eliminar duplicados de un data frame en R
  2. Calcular la moda en R usando el paquete modeest
  3. Calcular el porcentaje del total de la columna en R
  4. Distribución de frecuencias en R
  5. Tablas de contingencia en R
  6. Test de normalidad Shapiro–Wilk en R
  7. Cómo comparar dos data frames en R
  8. Superponer gráficos en R: distribución normal
  9. Medir el tiempo de ejecución de procesos en R
  10. Contar el número de ocurrencias basado en dos columnas en R

Excel

  1. Convertir horas en un número decimal en Excel
  2. Concatenar comillas en Excel
  3. Cómo usar BUSCARV y SUMAR conjuntamente en Excel
  4. Generar números aleatorios entre dos valores con decimales
  5. Invertir lista en Excel
  6. Omitir todos los errores de una hoja
  7. Números aleatorios de una lista o rango de opciones
  8. Listas desplegables que permiten seleccionar múltiples elementos
  9. Calcular el primer y último día del mes en Excel
  10. Pegar una lista filtrada con Excel en las celdas visibles

Access

  1. Ocultar Access al usuario salvo el formulario
  2. Crear una consulta de UNION y de UNION ALL en Ms Access
  3. Cuadros combinados en cascada en Ms Access
  4. Usar un cuadro combinado para buscar al teclear en Access
  5. Cambiar programáticamente la ruta de tablas vinculadas en Access
  6. Generar números aleatorios entre dos valores en Ms Access
  7. Convertir texto en número conservando los decimales en Access
  8. Consulta para generar una muestra aleatoria en Ms Access
  9. La función redondear en Access, redondeo del banquero
  10. Porcentaje del total de la columna en una consulta de Access

VBA

  1. Importar ficheros CSV en Excel mediante VBA
  2. Cambiar origen de datos de múltiples tablas dinámicas con VBA
  3. Medir el tiempo de ejecución de subrutinas en VBA
  4. Sucesión de Fibonacci en Excel y VBA
  5. Obtener el nombre de usuario de Windows con VBA en Excel
  6. VBA: cambiar el texto a mayúsculas, minúsculas o nombre propio
  7. Mostrar u ocultar formas en Excel mediante VBA
  8. Ocultar o mostrar todas las hojas de un libro de Excel (VBA)
  9. Exportar tabla o consulta de Access como CSV
  10. Insertar un reloj en Excel usando VBA

Entradas relacionadas

Nube de datos