Archivo
Crear copia de seguridad al salir de la aplicación
En el evento ‘Al hacer clic’ del botón ‘btnSalirSistema’:
Private Sub btnSalirSistema_Click()
‘Comprobar que el compresor 7za.exe existe
If Len(Dir(Application.CurrentProject.Path & “\” & “7za.exe”)) = 0 Then
If MsgBox(“No existe el fichero compresor ZIP” & vbNewLine & Application.CurrentProject.Path & “\” & “7za.exe” & vbNewLine & “¿Desea cerrar sin realizar la salva?”, vbYesNo, “Compresor”) = vbYes Then
DoCmd.Quit
Else
Exit Sub
End If
End If
Frase
UNA DESVENTAJA DE NO TENER NADA QUE HACER ES QUE NO PUEDES DARTE UN DESCANSO
Ocultar la ventana madre de access
Parece ser que en algunas ocasiones decir que una aplicación esta hecha en Access desprestigia tanto a quien la programo como a la propia aplicación y nada mas lejos de la realidad, personalmente el hecho de eliminar o no dicha ventana solo obedece a razones estéticas, prefiero que quien vea mi trabajo diga “…..esto esta hecho en Access?………… pues nunca pensé que esto se pudiera hacer con Access……”
' Esto va en un modulo Option Compare Database Option Explicit Global Const SW_HIDE = 0 Global Const SW_SHOWMAXIMIZED = 3 Private Declare Function apiShowWindow Lib "user32" _ Alias "ShowWindow" (ByVal hwnd As Long, _ ByVal nCmdShow As Long) As Long Function fSetAccessWindow(nCmdShow As Long) Dim loX As Long Dim loForm As Form loX = apiShowWindow(hWndAccessApp, nCmdShow) End Function ' Para quitar la ventana de Access Private Sub Form_Load() fSetAccessWindow (0) End Sub ' Es conveniente que en el evento Close de form se restaure de nuevo la ventana Private Sub Form_Close() fSetAccessWindow (3) End Sub
Para evitar sorpresas desagradables el Formulario ha de tener las propiedades EMERGENTE y MODAL a TRUE.
Este metodo puede tener efectos secundarios, tales como que al abrir el Form en modo diseño se hayan perdido los menus y barras de herramientas, por ello es conveniente no ocultar la ventana en el proceso de diseño de la aplicación y hacerlo cuando ya se haya terminado.
Descargar: Access 2007.
Formularios transparentes
Podemos crear un efecto de “Semi Transparencia” en cualquier Formulario es un efecto muy curioso para dar un toque personal a la aplicación.
Option Compare Database
Option Explicit
Private Const LWA_ALPHA = &H2
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
Private Declare Function GetWindowLong Lib “user32″ Alias “GetWindowLongA” (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib “user32″ Alias “SetWindowLongA” (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib “user32″ (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Declare Sub apiRGB Lib “kernel32″ Alias “RtlMoveMemory” (dest As Any, src As Any, ByVal Length As Long)
‘ En el evento Al cargar (Form Load) cremos la transparencia del Formulario
‘ este ha de ser Emegente para que el efecto se aplique correctamente
Private Sub Form_Load()
SetWindowLong hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes hwnd, 0, 220, LWA_ALPHA
End Sub
‘————————————————————————
‘ El valor 220 es el que controla la transparencia
‘ 240 es opaco y menor de 50 casi ni se ve
‘————————————————————————
Trabajando con las fechas (II)
Resumen de lo publicado (explícita o implicitamente):
En Access, una fecha (un día concreto) es un nº entero.
No importa el formato (tamaño, color, tipo de letra, d-m-aa, dd-mmm) en que se exprese.
El lío viene al introducirla en la base de datos, ya que varios de los formatos anteriores -valóralo tu mismo- no sirven para decirle de forma clara a qué fecha nos referimos.
El problema más habitual es el del cambio de mes por el dia y viceversa, porque 7/4/2003 no es la mismo para un americano que para un hispano.
Como sabéis, para el uno es el 4 de julio y para otro el siete de abril.
Y este lío lo lleva Acces porque por fuera quiere ser hispano y por dentro americano. Entonces dependiendo de que ambiente uses Access te entenderá lo uno o lo otro.
Si trabajas en el ámbito (externo), es decir, tablas, consultas, formularios, macros e informes lo entiende como siete de abril. Este ámbito se caracteriza por el hecho de que si usas americano el lo traduce. (Allá donde escribes Not null, va Access y te pone la turbadora traducción de Negado Nulo).
En cambio si estás en el ámbito más interno del producto: SQL y Visual Basic, allí el idioma de trabajo y el ámbito cultural es el inglés. Allí no puedes decir 35,24 euros, porque la coma no es el separador decimal (aunque hace esfuerzos a veces por traducirlo lo cual complica más las cosas) y si dices cdate(“7/4/2004″) te entenderá que es la fiesta nacional de E.E.U.U. de Norteamérica.