Validar varios campos en access

En access tengo una tabla con nombres

Y en mi formulario 25 cuadros de texto donde escribo diferentes nombres

Y válido si existen 1 x 1 así

If DCount("*", "PLAZAS", "PLAZA='" & Me.clave1 & "'") > 0 Then
Else
Me.PLA1 = "no existe"
End If

If DCount("*", "PLAZAS", "PLAZA='" & Me.clave2 & "'") > 0 Then
Else
Me.PLA2 = "no existe"
End If

If DCount("*", "PLAZAS", "PLAZA='" & Me.clave3 & "'") > 0 Then
Else
Me.PLA3 = "no existe"
End If

¿Hay alguna forma de hacerlo sin escribir este código 25 veces?

2 respuestas

Respuesta
1

En principio no le estás diciendo nada. Pones

If........>0 then

Pero no le dices lo que tiene que hacer en caso de que se cumpla esta condición. Pasa directamente a Else

¿Podrías poner una imagen del formulario?

De todas formas, por si te sirve de ayuda. Supongamos que tengo un formulario con 8 cuadros de texto llamados Clave1, Clave2,... y otros 8 llamados Pla1, Pla2,... Y en alguno de los Clave hay un valor

Cuando pulso el botón, ya que no sé cuando ejecutas

Donde Clave es Nulo me pone No hay nadie y donde no lo es me pone el nombre del cliente cuyo Idcliente corresponde al valor que aparece en el cuadro de texto Clave.

En este caso en particular el código del botón es

Private Sub Comando27_Click()
Dim i As Integer
Dim jes As Control, eo As Control
 For i = 1 To 8
     Set jes = Controls("Clave" & i)
     Set eo = Controls("Pla" & i)
     If Not IsNull([jes]) Then
     eo = DLookup("nombrecontacto", "clientes", "idcliente=" & i & "")
     Else
     eo = "No hay nadie"
     End If
Next i
End Sub

El nombre de las variables es un homenaje. Y donde yo pongo

i=1 to 8

tu puedes poner

i=1 to 25

Respuesta
1

Pruebe con este código, puede llamarlo desde un botón de comando

 Dim x As Integer
 For x = 1 To 25
     If DCount("*", "PLAZAS", "PLAZA='" & Controls("clave" & x) & "'") = 0 Then
      Controls("PLA" & x) = "No existe"
     End If
 Next x

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas