Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/05/2003, 09:35
Yanix
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 6 meses
Puntos: 5
Hola panketa,

Necesitas una condicion para que Ms Access pueda dicernir entre lo que se está añadiendo o actualizando en el campo 1.
Si no es con macro o con VB, no sé. Hay algunas alternativas en las propiedades como lo de 'Enabled' y 'Locked'.
Yo personalmente usaria un macro para la forma y añadiria eventos en VB (Code builder en el campo donde quieres la condicion) y le diria que hiciera o no 'Visible' el otro campo.

Supongamos que tenemos un campo1 y campo2 en la tabla campitos.

En campo1 es que escribiras lo de "pepe" para saber si te aparece o desaparece el campo2 en el formulario.
Puse campo1 y campo2 como cajitas de texto.

En las propiedades de campo1, ve al evento On Change y ahi escribiras el codigo. O sea al clickear sobre el espacio vacio en la propiedad de onchange te aparecera la flechita y los puntitos. Elige los puntitos y ahi elige Code Builder.
O igual lo puedes escribir desde View/Code.
Escribe algo como esto:
Código:
Private Sub nombredelcampo1_Change()
If nombredelcampo1.Text = "pepe" Then
nombredelcampo2.Visible = True
Else
nombredelcampo2.Visible = False
End If
End Sub

Private Sub nombredelcampo1_Enter()
If nombredelcampo1.Text = "pepe" Then
nombredelcampo2.Visible = True
Else
nombredelcampo2.Visible = False
End If
End Sub
Nota: Puedes intentar utilizar lo de enable o locked en vez de visible. Eso es a tu juicio. :)

El problema aqui es que por ejemplo si ya entraste algun dato con campo1 = "pepe" y quieres actualizarlo, lo podras hacer sin problemas pero si existen mas registros y quieres verlos, estos no te esconderan el campo2 porque el foco (focus) esta ahora en el campo2 y no en el campo1.

Asi que puedes hacer en el codigo que el foco se redirija al campo1 para el proximo record y en el que estas.
Puedes hacerlo tanto en el codigo como en un macro. Un ejemplo de macro sencillo es el siguiente.

Dale click con el boton derecho a cualquier parte de la pantalla que este fuera de tu formulario para que se te presenten
las propiedades del formulario. Revisa que estes en las propiedades del Form y no de alguna seccion como header o alguno de los controles.

En el evento After Update, dale click al espacio en blanco y a los puntitos. Elige el de Crear un macro o igual podias ir a la seccion de Macro, crearlo y luego seleccionarlo de la lista que te aparecera ahi.

Pero sigamos. Al seleccionar lo de Crear macro, dale a las Acciones. Elige el de GotoControl y escribe en el cuadro abajo el nombre de tu control de campo1. Recuerda..el del campo1. Asi cuando se actualice el record y vayas a un nuevo record, siempre el cursor estara en el campo 1. Igual podias hacerlo en el codigo de Visual basic, pero queria mostrar solo un ejemplito para usar macro y eso...

Si tienes alguna duda, avisame.

Espero te fncione. Recuerda que despues de añadir el codigo y macro...debes guardarlo y darle save tambien a la forma, no solamente al macro o codigo. Asi se te podra ejecutar.

Suerte
__________________
Yanira