Archivo

Archivo para Diciembre 2008

Modificar las propiedades de la base de datos

Buscando la forma de asignar un determinado icono a una aplicación realizado en access me he topado con esta función que resuelve mis dudar, y que permite modificar cualquier propiedad de la base de datos. Para ello se le pasa el nombre del valor a modificar (“AppIcon”), el tipo de valor (dbText) y el valor de la aplicación (ubicación del icono).

Private Function funCambiarPropiedad(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
On Error GoTo Err_funCambiarPropiedad
Dim dbs As DAO.Database
Dim prp As DAO.Property
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
dbs.Properties(strPropName) = varPropValue
funCambiarPropiedad = True
Exit_funCambiarPropiedad:
Set prp = Nothing
dbs.Close
Set dbs = Nothing
Application.RefreshTitleBar
Exit Function
Err_funCambiarPropiedad:
Rem aqui creo la propiedad
If Err = conPropNotFoundError Then
Rem Propiedad no encontrada , entonces se crea
Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
Rem Error desconocido.
funCambiarPropiedad = False
Resume Exit_funCambiarPropiedad
End If
End Function

El mismo procedimiento, pero de una forma más personalizada para una actuación en concreto se puede ver en mi post Activar/desactivar la tecla shift, donde la propiedad a modificar de la base de datos es ”AllowByPassKey”.

Para eliminar el valor de la propiedad se puede utilizar la función:

Function funBorrarPropiedad(strPropName As String)
On Error Resume Next
CurrentDb.Properties.Delete (strPropName)
Application.RefreshTitleBar
End Function

También puede ser de interés el post Propiedades personalizadas de una base de datos.

Fuente: Access Demo
Categorías:Microsoft Access Etiquetas:, , ,

Ayuda contextual emergente mediante WinHelp

Una forma para mostrar la ayuda existente en un archivo *.hlp relacionado con una aplicación es hacerlo a través de una ventana emergente. Para ello hay que utilizar la función WinHelp() de API de Windows con su argumento HELP_CONTEXTPOPUP. Esta opción abre una ventana emergente sombreada en la que puede mostrar la ayuda. Esta ventana es parecida a la ventana que se abre al hacer clic en una entrada de glosario (texto verde y subrayado) en la Ayuda de Microsoft Access sistema.

El objetivo es redirigir la tecla F1 para llamar a una función definida por el usuario que se abre el archivo de Ayuda con la opción HELP_CONTEXTPOPUP. Para ello hay que crear un sistema de ayuda de trabajo estableciendo las propiedades IDDelContextoDeAyuda (HelpContextID) y ArchivoDeAyuda (HelpFile) para los formularios en un archivo de Ayuda de Windows válido.

Primero hay que crear un módulo con el siguiente código:

Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long
Public Const HELP_CONTEXTPOPUP = &H8&
Function Help32() As Boolean
On Local Error GoTo Help32_Err
Dim Cid As Long, Result As Long
On Error Resume Next
Cid = Screen.ActiveControl.HelpContextId
If Cid = 0 Then
Cid = Screen.ActiveForm.HelpContextId
End If
If Cid > 0 And Cid < 32767 Then
Result = WinHelp(Application.hWndAccessApp, "C:\Program Files\Microsoft Office\Office\Samples\nwind9.hlp", HELP_CONTEXTPOPUP, Cid)
Help32 = True
End If
Help32_End:
Exit Function
Help32_Err:
MsgBox Err.Description
Resume Help32_End
End Function

Tras este paso hay que crear una macro que ejecute la función Help32(). Y listo. Al presionar la tecla F1 sobre un control el archivo de ayuda indicado se abrirá por el identificador del contexto asignado a ese control.

Fuente: www.microsoft.com

Categorías:Microsoft Access Etiquetas:, , , ,

Justificar texto en formularios e informes

El siguiente ejemplo muestra como, de una forma sencilla, se puede justificar el texto tanto en informes como en formularios. Para ello se utiliza la siguiente función:

Public Function JustIntro(strDATO)
On Error GoTo Err_JustIntro
If IsNull(strDATO) Then Exit Function
JustIntro = Replace(strDATO, Chr(13) & Chr(10), [TXTSPACES] & Chr(13) & Chr(10))
Exit_JustIntro:
Exit Function
Err_JustIntro:
MsgBox Err.Description
Resume Exit_JustIntro
End Function

A la cual se la llama desde el cuadro de texto que se quiere ajustar de la siguiente manera: “=justintro([Campo]) & [TXTSPACES]“. Además el cuadro de texto debe tener la propiedad “Alineación del texto” con el valor “Distribuir“. El valor del campo “[TXTSPACES]” se añade en el informa o formulario donde se encuentra el texto a justificar.

Descargar: Access 2000

Fuente:  Foro de Access y VBA