Consejos sobre MS Access aplicados a Sice
Describe una serie de técnicas y consejos para el uso de MS Access
- Si abrir y cerrar formularios es muy lento, ver
Opening and closing forms very slow in Access 2002 (XP)en este documento - tipo de datos númericos usado en Sice:
- Precios en líneas de albaranes y pedidos: dbSingle = FLOAT4 = 7 decimales en total
- Importes en líneas albaranes: dbCurrency = MONEY = punto pijo, 15 . 4 dígitos decimales. Número max/min +/- 922.337.203.685.477,5807
- En albaranes se realizan los redondeos a 2 decimales una vez sumadas todas las líneas, en módulo CVTotales (CV = ComprasVentas). Se aplica explícitamente un redondeo, como en la línea
f(p & "Base" & I) = RedondeoImporte(f(p & "Base" & I))de la funciónTotalesDetalles. La funciónRedondeoImportelee el nº de decimales de la tabla Divisas, según la moneda principal establecida en los parámetros (mediante la funciónGetMoneda1, que es un alias aGetParametro("Moneda1")).
- Si no se ve el menú Mostrar para acceder a la base de datos escribir esto desde la ventana rápida de Visual Basic:
CommandBars("Menú").Controls("Ventana").COntrols("Mostrar...").Enabled = True CommandBars("Menú").Controls("Ventana").COntrols("Mostrar...").Visible = True - Cuando tenemos una relacion entre 2 tablas del tipo 1 a 0:n quiere decir que el campo en la segunda tabla es opcional. Debido a esto hay que tener especial cuidado al hacer JOIN en SQL al generar listados o informes o en cualquier otro caso. Cuando hacemos un LEFT JOIN y queremos que salgan todos los registros, no solo los que no están vacíos debemos hacer la consulta con cuidado. Ejemplo:
SELECT * FROM Tabla1 LEFT JOIN Tabla2 ON Tabla1.Campo1 = Tabla2.Campo2 AND (Tabla1.Campo2 = Tabla2.Campo2 OR (Tabla1.Campo1 IS NULL AND Tabla2.Campo2 IS NULL))