** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Verificar registro existente
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoVerificar registro existente

 Responder Responder
Autor
Mensaje
jeanfco49 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Agosto/2019
Localización: Rep. Dom.
Estado: Sin conexión
Puntos: 12
Enlace directo a este mensaje Tema: Verificar registro existente
    Enviado: 19/Agosto/2019 a las 15:48
Smile Saludos a todos los miembros de este importante foro, mi consulta es la siguiente, tengo una tabla de matricular alumnos, quiero que cuando se matricule un alumno en un año escolar X, se valide que dicho alumno no se encuentre Matriculado en ese mismo año escolar, lo estoy intentando con Dlookup utilizando los campos Matricula_Alumno y Ano_escolar, sin tener aun ningún resultado satisfactorioCry. Estaré muy agradecido con cualquier sugerencia que me puedan aportar.  Aquí dejo copia del código:

Dim var1 As Variant
Dim var2 As Variant
    
var1 = DLookup("[Ano_Escolar]", "Matricular", "[ano_escolar] =" & "Forms![Matricular Alumnos]!Txt_Ano_Escolar")
var2 = DLookup("[Matricula_Alumno]", "Matricular", "[Matricula_Alumno] =" & "Forms![Matricular Alumnos]!cbo_Buscar")

If (Me.Txt_Ano_Escolar = var1) And (Me.cbo_Buscar = var2) Then

    MsgBox "Este alumno(a) se encuentra matriculado en este periodo escolar, favor de revisar", vbCritical, "Atención"
    Exit Sub

else

   DoCmd.RunCommand acCmdSaveRecord

end if 
Jeanfco49
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
Enlace directo a este mensaje Enviado: 19/Agosto/2019 a las 23:16
Hola!

Mírate el ejemplo (98) del maestro Emilio Sancha en su página web.
Un Saludo.
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3062
Enlace directo a este mensaje Enviado: 20/Agosto/2019 a las 08:35
Sin ver el ejemplo 98 de Emilio, que seguro que lo clava yo lo haria asi. Una consulta de los alumnos con sus años escolares. Luego un dcount sobre esa consulta utilizando como criterio el campo del año escolar. En el evento antes de actualizar lo ejecutas y si es dcount en mayor que 0 deshaces el registro con un undo y lanzas un msgbox del que ese año escolar existe para ese alumno.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Enlace directo a este mensaje Enviado: 20/Agosto/2019 a las 12:32
Hola,

Para empezar las dos lineas de var1 y var2 son incorrectas ya que pones el "valor" entre comillas... lo que lo convierte en literal. Obviamente no creo que exista ningún año escolar que valga (textualmente) "Forms![Matricular Alumnos]!Txt_Ano_Escolar" 

Para mi la solución se orienta más a un DCount con 2 criterios y que estos estén bien construidos.

' Asumiré que Ano_Escolar es un numérico
strCriterio1 = "[ano_escolar] =" & Forms![Matricular Alumnos]!Txt_Ano_Escolar  ' Observa que he eliminado las comillas
' Asumiré (ni que sea a modo de ejemplo) que Matricula_Alumno es un texto
strCriterio2 = "[Matricula_Alumno] =" & Chr(34) & Forms![Matricular Alumnos]!cbo_Buscar & Chr(34)
' Concateno los criterios
strCriterios = strCriterio1 & " AND " & strCriterio2

' Ahora contamos
If DCount("*", "Matricular" strCriterios) > 0 Then
  ' Está Matriculado
End If

Editado para cambiar la comparación de = 1 a > 0


Editado por xavi - 20/Agosto/2019 a las 12:33
Xavi, un minyó de Terrassa

Mi web
Arriba
jeanfco49 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Agosto/2019
Localización: Rep. Dom.
Estado: Sin conexión
Puntos: 12
Enlace directo a este mensaje Enviado: 21/Agosto/2019 a las 16:05
Muy agradecido con todas las sugerencias, las iré probando hasta encontrar la que mejor funciona y les comento.
Jeanfco49
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable