Sobre Cuadros combinados

Saludos. Como podría hacer para poder poner en una misma sentencia IF/Then , un grupo de cuadros combinados los cuales si cumplen una determinada acción, se ejecute algo.
Quiero que si un campo combinado es igual al otro me salga un mensaje y blablabla (esto esta claro). El problema es que hay 8 cuadros combinados... Si alguno de esos cuadros combinados es igual al otro, se debe ejecutar dicho mensaje. Lo que pasa que intento buscar alguna opción que me permita no tener que poner 64 veces esto, cambiando los números de los cuadros:
If Me.Cuadro_combinado319 = Me.Cuadro_combinado321 Then
If MsgBox("Has repetido caractersiticas de Anilox. Pulsa Aceptar y modificalo...", vbExclamation) = vbOK Then
Exit Sub
Else
Dim stInformeClichés As String
stInformeClichés = "Informe_Ficha Clichés"
DoCmd.OpenReport "Informe_Ficha Clichés", acViewPreview, , "numero_cliche = '" & Me.numero_cliche & "'"
End If
End If
Lo que no quiero hacer es copiar esto 64 veces (ya que son 8 cuadros y si alguno se repite con otro, debe ejecutarse, por lo tanto es un disparate poner las 64 condiciones If/Then...
Hay alguna forma de decirle en vez de "si este cuadro es igual al otro", decirle "si algún cuadro es igual a algún otro" o "si algún cuadro se repite"... ¿Me entendéis?
También me gustaría saber si e es posible crear un cuadro combinado en el cual haya columnas, pero cada columna no sea toda una fila, es decir... Los típicos cuadros tu eliges una fila y dicha fila coge todas las columnas. Hay alguna manera de crear un cuadro en el cual pueda ir con el cursor a elegir uno por uno cada "campo". Com si fuera una tabla en word, a la cual tu puedes poner el cursor para escribir en cualquier parte... ¿Entendéis?
Ayuda!

1 respuesta

Respuesta
1
Te estás calentando la cabeza, que para esto se inventaron los bucles.
Bueno, primero ve al diseño del formulario y cada uno de los controles desplegables le cambias el nombre a uno cualquiera que termine en el número de orden. Me explico: cliche1 el primero, cliche2 el segundo... cliché 8 el octavo
(Por cierto, para hacer esto sacas las propiedades del control y en la pestaña 'otros' es la primera)
Ahora, cambias al código del formulario y le pones la siguiente función
private function repetidos() as boolean
dim i%,j%
for i=1 to 7
for j=i+1 to 8
if i<>j then
if me("cliche" & i)=me("cliche" & j) then
msgbox "Has repetido caractersiticas de Anilox. Pulsa Aceptar y modificalo.." & i & ":" & j,vbexclamation
repetidos=true
exit function
endif
endif
next
next
repetidos = false
end function
Vale. Si no me he equivocado en algo, debería estar correcto (menuda obviedad acabo de escribir ;-)
Modifica ahora el código de tu pregunta. Debes dejar algo similar a:
if repetidos then
exit sub
else
' y todo el resto exactamente igual.
Bueno, lo guardas todo y a probar. Si te falla algo, avisa y dame algún detalle (msg error, o si al dar depurar se queda una línea en amarillo, me dices cual)
Pero creo que te funcionará a la primera...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas