Reemplazar el control de calendario en las aplicaciones de Access 2010 (traducción automática)
Importante
Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.
Resumen: Información sobre el reemplazo del control de calendario obsoleto en las aplicaciones de Microsoft Access 2010.
Última modificación: miércoles, 16 de septiembre de 2015
Hace referencia a: Access 2007 | Access 2010 | Access Services | Office 2007 | Office 2010
**Se aplica a:**Microsoft Office 2010 | Microsoft Access 2010
Publicada: Octubre de 2010
Proporcionado por: Ken Getz, http://www.mcwtech.com/default.htmMCW Technologies, LLC
Microsoft Access ha incluido un control de calendario desde que primero agregó soporte para los controles de ActiveX, en Access 2.0. El control calendar, MSCAL.OCX, no se incluye en Access 2010. Además, si se intenta abrir un formulario que incluye el control, recibirá el siguiente error: "su base de datos de Microsoft Office o el proyecto contiene una referencia que falta o está dañada el archivo ꞌMSCAL.OCXꞌ." Para reemplazar el control de calendario en las aplicaciones de Access 2010, tiene varias opciones. Usted puede:
Este Visual muestra todo excepto la última opción. Para comenzar, descargue la base de datos de ejemplo, CalendarDemo.accdb (una base de datos de Access 2010). Tenga en cuenta que la base de datos incluye una tabla denominada cumpleaños con tres campos (ID., Nombre_cliente y fecha de nacimiento) y de dos formas:
Si las aplicaciones actuales utilizan el MSCAL.OCX control de calendario, debe quitar cada instancia del control antes de poder utilizar los formularios que contienen actualmente el control. En este ejemplo se muestra que es la siguiente step─that, uso de alternativas para el control de acceso a calendario . Utilice el selector de fechas integrado Access 2007 y Access 2010 permiten adjuntar un selector de fecha para cualquier control de cuadro de texto que está enlazado a un campo de fecha. Para ver el formulario en acción, abra el cumpleaños de formulario (consulte la figura 1). El cuadro de texto Fecha de nacimiento está enlazado al campo Fecha de nacimiento en la tabla de cumpleaños y cuando el cuadro de texto tiene el foco, haga clic en el icono de calendario pequeño situado junto al campo para mostrar un calendario y seleccione una fecha. El icono de calendario sólo aparece cuando el cuadro de texto tiene el foco. Para utilizar el selector de fecha integrados, debe confirmar que se ha establecido la propiedad ShowDatePicker para fechas, tal como se muestra en la figura 2. El control de cuadro de texto debe estar enlazado a un campo de fecha y debe quitar la propiedad InputMask para el control, si previamente ha creado una máscara de entrada. Utilice el Control DatePicker Los controles comunes de Windows proporciona un control DatePicker ActiveX para su uso en todas las aplicaciones y las aplicaciones de Access pueden utilizar este control también. Uso de este control requiere mucho más esfuerzo con el selector de fecha integrados, pero proporciona más flexibilidad. La aplicación de ejemplo incluye varias instancias del control DatePicker de Windows. Sin embargo, debe intentar agregar una instancia de sí mismo. Para utilizar el control DatePicker de Windows, abra el formulario de cumpleaños en la vista Diseño. En la cinta de opciones, haga clic en el botón de lista desplegable en la esquina inferior derecha del grupo de controles para mostrar todos los controles y seleccione Controles ActiveX en la lista de opciones (consulte la figura 3). En el cuadro de diálogo Insertar control activo , desplácese hacia abajo para buscar la fecha de Microsoft y 6.0 de Control de selector de tiempo (SP4) (el control en el equipo puede tener un SP posterior como SP6) y, a continuación, haga clic en Aceptar para insertar el control (consulte la figura 4). Tenga en cuenta que la lista de controles disponibles no puede coincidir con la figura. El control se selecciona, inserta una instancia del formulario actual. Puede cambiar el tamaño, mover y modificar el control exactamente como cualquier otro control de acceso (tal y como podría con el control de calendario original). Eliminar el control que previamente added─there ya es una instancia de la DatePicker controlar en el formulario (consulte la figura 5). Tenga en cuenta lo siguiente acerca de este control:
Pruebe el control: abra el formulario de cumpleaños y, a continuación, haga clic en la flecha desplegable del control (consulte la figura 6). Seleccione una fecha, mover a la fila siguiente y atrás, y verá que has cambiado correctamente la fecha de nacimiento de la persona actual. Mover a la nueva fila y observe que la casilla de verificación en el control no está seleccionada (que indica que el valor es null). Cuando haya terminado, cierre el formulario. Utilizar un formulario de calendario personalizado Además de las técnicas anteriores, que desee un calendario que aparece siempre, exactamente igual que el control de calendario antiguo. Una forma de lograrlo es utilizar un subformulario que incluye todo el comportamiento de un calendario. Al menos uno de estos se creó para usted y la aplicación de ejemplo incluye el formulario que se denomina frmCalendar. El formulario es self-contained─you sólo importar el formulario en su propia aplicación y, a continuación, se pueden incrustar en cualquier otro formulario como subformulario. Abrir frmCalendar en el diseño de ver (consulte la figura 7) y verá que es un pequeño formulario con un botones y otro código de controls─the en el formulario hace todo el trabajo de actualización y administración de la forma. En la cinta de opciones, en el grupo Herramientas , seleccione Ver código. Revise el código. No cambie el código. Cuando haya terminado, cierre el editor de Visual Basic y, a continuación, frmCalendar. Para probar el formulario de calendario, en la cinta de opciones, seleccione Creary, a continuación, en Diseño de formularios. Desde el panel de exploración, arrastre una copia de frmCalendar al formulario nuevo. Esta acción crea un nuevo subformulario, tal como se muestra en la figura 8. De forma predeterminada, el nombre del subformulario es calendario. Puede cambiar el nombre, pero dejarla tal cual por ahora. La forma de calendario no es útil si sólo se puede seleccionar dates─you también debe tener que poder determinar cuándo cambia la fecha seleccionada. El formulario de ejemplo provoca un evento de DateChanged, que se pasa al controlador de eventos de un parámetro que contiene la nueva fecha seleccionada. Reaccionar a este evento requiere trabajo adicional, ya que el subformulario no es un control. En realidad, requiere sólo dos líneas de código adicionales: los pasos siguientes muestran cómo enlazar el controlador de eventos. Con el nuevo formulario que creó anteriormente abierto en la vista Diseño , agregue un control TextBox al formulario, junto al calendario. Nombre de la propiedad selectedDate control de cuadro de texto nueva. En la cinta de opciones, seleccione Ver código. En el módulo de formulario, agregue la declaración siguiente.
Esta declaración define una variable que puede hacer referencia a la clase de formulario de calendario (con nombre Form_frmCalendar, default─every formulario proporciona una clase cuyo nombre es Formulario_ < nombre de formulario >). Con la palabra clave WithEvents permite reaccionar a los eventos que hace referencia la variable de objeto que provoca. En este caso, el objeto provoca el evento de DateChanged y agregará un controlador de eventos para el evento. En la lista desplegable Objeto situado en la esquina superior izquierda de la ventana del editor de Visual Basic, seleccione el Formulario. Esta acción crea el controlador de eventos de Form_Load. Modificar el controlador de eventos de forma que refleje el siguiente ejemplo de código.
Este código establece la variable que creó anteriormente para que se refiere a la propiedad de formulario del subformulario que creó en el formulario. Es decir, permite interactuar mediante programación con el formulario de calendario. Por último, en la lista desplegable Objeto , seleccione calendarForm (la variable declara utilizando la palabra clave WithEvents anterior). Esta acción crea el controlador de eventos de calendarForm_DateChanged. Modificar el controlador de eventos de forma que refleje el siguiente ejemplo de código.
Este código toma el parámetro que se pasa al controlador de eventos mediante el formulario de calendario y copia el valor en el cuadro de texto selectedDate en el formulario. Guardar los cambios, el formulario Form1, de nombres y volver a Access 2010. Abra el formulario y seleccione una fecha en el calendario. Debe ver la fecha seleccionada aparecen en el control de cuadro de texto (Véase la figura 9). Cuando haya terminado, cierre el formulario. Aunque no se puede enlazar el formulario de calendario a un campo de tabla, como se hacía con el control de calendario , puede escribir código para emular el comportamiento. El formulario de ejemplo, cumpleaños, incluye código sencillo para conectar el enlace de. Abra el formulario en la vista Diseño y seleccione Ver código. Tenga en cuenta que el código en el módulo de formulario es similar al código que ya se ha visto, excepto para una adición: el controlador de eventos de Current del formulario como se muestra en el siguiente ejemplo de código.
Este código comprueba que al mover de una fila a otra en el formulario, el formulario de calendario muestra el campo Fecha nacimiento en la fila actual. La adición de la instrucción On Error Resume Next permite que el código evitar los errores especiales que de lo contrario serían necesarios para la nueva fila, en el que el campo Fecha de nacimiento es null. Además, el controlador de eventos DateChanged establece el valor del campo Fecha de nacimiento del formulario, en lugar de utilizar el valor de un control TextBox en el formulario.
Este cambio en el código anterior hace que los cambios en el formulario de calendario a propagarse de vuelta al campo FechaNacimiento subyacente inmediatamente, por lo que cualquier otro control enlazado al campo actualizaciones tan pronto como realice el cambio. Cierre la ventana del editor de Visual Basic y abra el formulario de cumpleaños. Mover de una fila a otra y compruebe que el formulario de calendario se actualiza para coincidir con el campo Fecha de nacimiento actual. Cambiar la fecha de nacimiento en forma de calendario y compruebe que los otros controles enlazados a la actualización del campo de fecha de nacimiento también. Cuando haya terminado, cierre el formulario. Habida cuenta de las opciones que se muestra a continuación, debe ser capaz de reemplazar el control de calendario con el selector de fecha integrados, el control de selector de fechas o un subformulario de calendario. Ninguno de estos funciona exactamente igual que el control de calendario original. Sin embargo, debería ser posible reemplazar el control con una de estas opciones. Tenga en cuenta las siguientes ventajas e inconvenientes de cada opción:
|
Ver el vídeo | Longitud: 00: 12: 24 Acerca del autor |
Nota
Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.