You are on page 1of 8

Como usar en Access y VBA el comando DoCmd.

OpenForm para abrir un formulario
14 Octubre, 2013Angel14 CommentsAccess, Cursos y tutorialesAccess, Nivel
Avanzado, Tutoriales
Voy a intentar quitaros el miedo a usar código VBA en vuestros proyectos en Access para
que veáis que no es tan fiero el lobo como lo pintan.

Hablemos del comando “OpenForm” que utilizamos para abrir un formulario. La forma
más sencilla de usarlo es:

DoCmd.OpenForm “NombreDelFormulario”

Y ya está, con esta orden abrimos el formulario que pongamos entre las comillas. La
mayoría de las veces nos bastará con esta configuración. En el resto del artículo se dará
la información sobre otros parámetros opcionales que podremos utilizar si los
necesitáramos.

Pongámoslo en contexto. Tenemos un formulario principal de nuestra aplicación que debe
de abrirnos el resto de formularios del programa.

Automáticamente se nos abre el editor de VBA con el cursor en el sitio adecuado para
escribir nuestra sentencia:

tras poner el nombre del formulario que queremos abrir. esta ayuda más que solucionarnos un problema no puede complicar por la forma de expresarse pero con el tiempo es fácil interpretarla y se convierte en un recurso insustituible. Veamos los más importantes. cuando empezamos.” que podemos cumplimentar para potenciar la apertura del formulario. Sigamos desglosando la sentencia. OpenForm tiene algunos parámetros opcionales separados por “.OpenForm” y poner un espacio. si queremos. Decíamos que tras poner el nombre del formulario que queremos abrir.Nota: Como se puede observar. Es cierto que. una cosa que nos ayuda enormemente a la hora de escribir código es la ayuda en pantalla. Access nos presenta un letrero amarillo informando sobre como configurar el “OpenForm” y lo mejor de todo es que. View Si no lo configuramos. nos va marcando en qué posición de la sentencia nos encontramos. ponemos la primera coma “. . por defecto. Aunque este parámetro yo no suelo usarlo vamos a comentarlo para ilustrar la ayuda en pantalla. En este caso tras escribir “Docmd. entre comillas. está en “acNormal” que es como se abren normalmente los formularios. en negrita.” y automáticamente aparecerá un desplegable con las distintas opciones de “View” para que seleccionemos una.

 acPreview: El formulario se abre en la Vista preliminar.  acFormPivotTable: El formulario se abre en la vista Tabla dinámica. La finalidad sería que al pulsar cualquiera de ellos abriese el mismo formulario de Clientes pero filtrando por los datos solicitados. cada una de ellas. .  acFormDS : El formulario se abre en la vista Hoja de datos. Por ejemplo.” por lo que el código pasará al siguiente parámetro. Nuestro formulario se abrirá filtrado según la consulta. ¿Cómo lo ignoramos? Simplemente poniendo otra coma “. En nuestro caso no tenemos la necesidad de configurar este parámetro. Podemos tener las consultas guardadas que filtren esos datos y especificar en este parámetro cuál de ellas utilizar. Supongamos que tenemos un botón en nuestro formulario que ponga “Clientes España” y otro que ponga “Clientes EEUU”. hacen lo siguiente:  acDesign: El formulario se abre en la vista Diseño.  acNormal: (Valor predeterminado) El formulario se abre en la vista Formulario.  acLayout: El formulario se abre en la vista Presentación. Permite asignar. así que la configuración predeterminada (acNormal) nos vale. el nombre de una consulta que tengamos guardada en Access y que filtre los datos del formulario. Filter Name Este parámetro tampoco es muy común utilizarlo pero ahí está. entre comillas “”.Según la ayuda de Access. tenemos el formulario “F_Clientes” que toma los datos de la tabla “T_Clientes” donde están todos los clientes del sistema.  acFormPivotChart: El formulario se abre en la vista Gráfico dinámico.

La consulta puede ser algo así: .

Este es similar al anterior y su funcionalidad es la misma solo que vista desde un enfoque distinto. pondremos otra coma “. como en caso anterior.Y la sentencia para nuestro botón “Clientes España” quedaría así: DoCmd.” dejando el parámetro sin configurar. Pero no es el objetivo de este artículo configurar este parámetro pues lo empezamos con el botón de “Clientes” que los muestra todos así que. Para el usuario novel de Access es más sencillo configurar una consulta para filtrar un formulario pero para el usuario avanzado puede resultar más práctico escribir la consulta directamente desde el código. Como puedes observar podemos tener un solo formulario y abrirlo desde distintos botones con distintas configuraciones. WhereCondition Vamos al siguiente parámetro.”C_Clientes_España” De esta manera pulsando el botón “Clientes España” le estaríamos dando la orden para que al abrir el formulario solo mostrase los clientes de España tal y como filtra la consulta. Sin intención de explayarnos en cómo construir los filtros a continuación muestro como quedaría la línea si quisiéramos implementar lo mismo que en el ejemplo anterior usando este parámetro: .. Te recomiendo que veas nuestros artículos sobre filtros pues la forma de construirlos se puede utilizar en este parámetro.OpenForm “F_Clientes”.

Por ejemplo podemos abrir el formulario directamente en un registro nuevo para empezar a introducir datos “acFormAdd” o incluso podemos abrirlo en modo solo lectura para que no se puedan modificar los datos “acFormReadOnly”. porque me he levantado con el pie torcido. al igual que en caso anterior. no es la finalidad de nuestro botón de “Clientes” por tanto también ignoramos este parámetro poniendo otra coma “. . . En nuestro ejemplo y.  acFormReadOnly: El usuario sólo puede ver registros. acFormReadOnly . DoCmd.OpenForm “F_Clientes”.  acFormEdit: El usuario puede modificar los registros existentes y agregar registros nuevos.” DataMode Este si que es interesante pues nos permite configurar como se comportará respecto a los datos. .  acFormPropertySettings: El usuario sólo puede cambiar las propiedades del formulario.Pero. Estas son las distintas opciones para este parámetro:  acFormAdd: El usuario puede agregar registros nuevos pero no puede modificar los existentes. voy a configurar el botón para que abra el formulario en solo lectura y que el usuario no me pueda modificar los datos.

Este parámetro lo he usado en infinidad de casos. . Este parámetro permite enviarle un dato al formulario que estamos abriendo y que luego. desde este.  acHidden: El formulario se oculta.  acWindowNormal: (Valor predeterminado) El formulario o informe se abre en el modo establecido por sus propiedades. Como siempre animo al lector a probar las distintas opciones que no vamos a quemar el ordenador con ello.WindowsMode Este parámetro también puede convertirse en un buen aliado. una vez que el lector descubre cómo utilizarlo se le pueden ocurrir tantos usos como imaginación tenga. OpenArgs Y llegamos a nuestro último parámetro opcional. podemos leer para actuar en consecuencia.  acIcon: El formulario o informe se abre minimizado en la barra de tareas de Windows. Y nos queda el último parámetro. ni seleccionar ningún otro formulario hasta que este no se cierre. En nuestro ejemplo lo vamos a configurar en modo “acDialog” porque no quiero que el usuario haga otra cosa hasta que cierre el de clientes. Por poner uno de tantos ejemplos y que sea simple. ¿Para qué quiero abrir un formulario oculto? No tiene mucho sentido ¿Verdad? Esto puede ser útil cuando queremos ejecutar una acción cada cierto tiempo. imaginemos que en el menú principal hemos guardado el nombre del usuario que ha abierto la aplicación y queremos pasarle ese nombre al formulario que estamos abriendo para que este lo ponga en una etiqueta informando del usuario que lo tiene abierto. es utilísimo y. Permite configurar como queremos que se abra el formulario:  acDialog: Permite abrir el formulario de forma que no se podrá hacer otra cosa. Muy útil para formularios tipo diálogo donde haya que pulsar un botón para decidir una acción. Los formularios tienen un evento “Al cronómetro” que permiten ejecutar una acción según el tiempo especificado y para ello que mejor que tener el formulario abierto pero que no se muestre en pantalla.

en su evento “Al abrir”: Private Sub Form_Open(Cancel As Integer) If Not IsNull(Me. lo usaríamos para asignarlo a la etiqueta “lblUsuario” .El parámetro podría quedar así: Aunque no sea objeto de este artículo explicar cómo se captura en el formulario que estamos abriendo el “OpenArgs” pondremos a modo de ejemplo como sería y dejamos para el artículo “Domina la propiedad OpenArgs en Access” una explicación completa sobre las utilidades del mismo y ejemplos de como aplicarlo. Desde el formulario Clientes.lblUsuario.OpenArgs) Then Me.Caption = Me.OpenArgs End If End Sub De esta forma. si el formulario hubiese recibido un parámetro al abrirse.