Prender botón al llenar campos en formulario de access

La pregunta es sencilla lo que necesito es que al llenar unos campos. Con un dato POR que se habilite un botón para agregar nuevo registro. Y si no se han llenado los campos que me envíe un mensaje de alerta.
Espero me puedan ayudar. Y por su atención

1 Respuesta

Respuesta
1
Lo que tienes que hacer para conseguir lo que quieres es lo siguiente:
1.- Creas un botón para que nos añada un nuevo registro. Sacas sus propiedades y en la pestaña Otras->Nombre le escribes cmdNuevo
2.- En el campo donde tienes que introducir el dato POR sacas sus propiedades y en la pestaña eventos->Después de acualizar le generas el siguiente código (click en el botón de puntos suspensivos):
---
Private Sub...
Dim vCampo As Variant
vCampo=Me.[DatoX].Value
If IsNull(vCampo) Then Exit Sub
If vCampo = "Valor dato X" Then
Me.cmdNuevo.Enabled = True
End If
End Sub
---
Donde DatoX es el nombre de ese campo, y "Valor dato X" es el dato exacto que te permitirá activar el registro.
3.- Sacas las propiedades del formulario, te vas a la pestaña eventos->Al activar registro y le generas el siguiente código:
---
Private Sub...
Me.cmdNuevo.Enabled = False
End Sub
---
4.- Ahora sacas las propiedades del botón para añadir el nuevo registro, pestaña Eventos->Al hacer click y le generas el siguiente código:
---
Private Sub...
Dim enBlanco As Boolean
Dim cmp As Control
enBlanco = False
For Each cmp In Me.Controls
If cmp.ControlType = acTextBox Then
If IsNull(cmp.Value) Then
enBlanco = True
End If
End If
Next
If enBlanco = False Then
DoCmd.RunCommand acCmdRecordsGoToNew
Else
MsgBox "Hay datos en blanco"
End If
End Sub
---
El anterior código te recorre TODOS los cuadros de texto, y si encuentra alguno que esté vacío te hace saltar el mensaje. Si no te lleva a un nuevo registro.
Espero que te vaya bien. Si tienes alguna duda me comentas.
Excelente me sirvió de maravilla. Ya pude lograrlo. Me ayudo muchísimo.
Ahora otra pregunta. Abusando de la confianza. ¿Ese mismo código me serviría para unos cuadros combinados?. Ya que quisiera que se pudiera hacer lo mismo al poder elegir una opción de todos los cuadros combinados.
Gracias
Para el tema de cuadros combinados el código te servirá, pero tienes que indicarle que cmd. ControlType es igual a acComboBox.
Si quieres saber qué tipos de control hay, por si te encuentras con otras situaciones, haz lo siguiente:
- Abre la BD
- Pulsa CRTL+F11 ->Se te abrirá el editor de VB
- Pulsa F2
- Arriba, en el combo de la izquierda de los prismáticos, escribe, por ejemplo, acTextBox, y dale a los prismáticos.
- En el cuadro de la derecha, que pone "Miembros de 'AcControlType', podrás ver cómo llamar a cada uno de los controles.
Y con esa información podrás modificar el bloque de código For each...Next como te vaya mejor.
Si tienes algún problema me comentas.
Ah, y si quieres ayudarme aportando alguna idea estoy creando una web de Access (que está en pañales aún). Cualquier sugerencia será bienvenida. Tienes la dirección en mi primera respuesta. ;)
Brother eres único. Algunos expertos me querían cobrar para hacer ciertos pasos que me dijiste. Mal por ellos.
Pero agradezco tu prontitud y tu forma de explicar. Espero estar en contacto contigo paraproximas consultas.
Cuidate brother.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas