La Web del Programador: Comunidad de Programadores
 
    Pregunta:  10657 - DESACTIVAR TECLAS FUNCION (EN UNA FUNCION)
Autor:  Berni Rodri Seg
He creado una aplicación y la he convertido a MDE. La cuestión es que cómo se pueden desactivar las teclas de función, no a traves de Herramientas, Opciones, ya que igual que se activa se desactiva, sino mediante código (tengo la copia en MDB). Quisiera que alguién me enviase el código escrito de como desactivar, por ejemplo la Tecla F1.
Gracias anticipadas

  Respuesta:  MERLIN
Access no estable un codigo preciso de desactivacion de teclas pero de doy las siguientes opciones.

Si no deseas que access muestre la ayuda de Access cuando presionen F1 puedes crear tu propio archivo de ayuda y asignarlo dentro de las propiedades de cada formulario en la seccion otras de propiedades.

Tambien puedes usar los eventos KeyDown y KeyUp dentro de cada formulario e identificar la tecla que necesites con las siguientes constantes.

vbKey0 vbKeyF5 vbKeyNumPad4
vbKey1 vbKeyF6 vbKeyNumPad5
vbKey2 vbKeyF7 vbKeyNumPad6
vbKey3 vbKeyF8 vbKeyNumPad7
vbKey4 vbKeyF9 vbKeyNumPad8
vbKey5 vbKeyF10 vbKeyNumPad9
vbKey6 vbKeyF11 vbKeyO
vbKey7 vbKeyF12 vbKeyP
vbKey8 vbKeyF13 vbKeyPageDown
vbKey9 vbKeyF14 vbKeyPageUp
vbKeyA vbKeyF15 vbKeyPause
vbKeyAdd vbKeyF16 vbKeyPrint
vbKeyB vbKeyG vbKeyQ
vbKeyBack vbKeyH vbKeyR
vbKeyC vbKeyHelp vbKeyRButton
vbKeyCancel vbKeyHome vbKeyReturn
vbKeyCapital vbKeyI vbKeyRight
vbKeyClear vbKeyInsert vbKeyS
vbKeyControl vbKeyJ vbKeySelect
vbKeyD vbKeyK vbKeySeparator
vbKeyDecimal vbKeyL vbKeyShift
vbKeyDelete vbKeyLButton vbKeySnapshot
vbKeyDivide vbKeyLeft vbKeySpace
vbKeyDown vbKeyM vbKeySubtract
vbKeyE vbKeyMButton vbKeyT
vbKeyEnd vbKeyMenu vbKeyTab
vbKeyEscape vbKeyMultiply vbKeyU
vbKeyExecute vbKeyN vbKeyUp
vbKeyF vbKeyNumLock vbKeyV
vbKeyF1 vbKeyNumPad0 vbKeyW
vbKeyF2 vbKeyNumPad1 vbKeyX
vbKeyF3 vbKeyNumPad2 vbKeyY
vbKeyF4 vbKeyNumPad3 vbKeyZ

Lo malo de este es que lo tienes que invocar en cada control.

O puedes usar el siguiente es el codigo de ejemplo de Access para establecer opciones de inicio tu lo puedes adaptar y configurarlo de acuerdo a tus necesidades.

Sub EstablecerPropiedadesDeInicio()
CambiarPropiedad "StartupForm", dbText, "Clientes"
CambiarPropiedad "StartupShowDBWindow", dbBoolean, False
CambiarPropiedad "StartupShowStatusBar", dbBoolean, False
CambiarPropiedad "AllowBuiltinToolbars", dbBoolean, False
CambiarPropiedad "AllowFullMenus", dbBoolean, True
CambiarPropiedad "AllowBreakIntoCode", dbBoolean, False
CambiarPropiedad "AllowSpecialKeys", dbBoolean, True

CambiarPropiedad "AllowBypassKey", dbBoolean, True
End Sub

Function CambiarPropiedad(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
Dim dbs As Database, prp As Property
Const conPropNotFoundError = 3270

Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
CambiarPropiedad = True

Change_Bye:
Exit Function

Change_Err:
If Err = conPropNotFoundError Then ' Propiedad no encontrada.

Set prp = dbs.CreateProperty(strPropName, _
varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
' Error desconocido.
CambiarPropiedad = False
Resume Change_Bye
End If
End Function