Access - Ver registro ya registrado

 
Vista:

Ver registro ya registrado

Publicado por Antonio (38 intervenciones) el 02/01/2007 20:11:37
Saludos y Feliz Año 2007. Comento mi tema por si alguien me puede orientar o decir como hacerlo. Tengo una tabla llamada registro de vehiculos, y un formulario llamado Altas.En dicho formulario tengo un campo llamado Matricula, que voy introduciendo, pero cuando introduzco una matricula que ya estaba me sale un cuando en el que digo que la matricula ya ha sido registrada. Para esto navegando he copiado esto que me hace lo que quiero:

Private Sub MATRICULA_BeforeUpdate(Cancel As Integer)
Dim rst As DAO.Recordset, _
strSQL As String
strSQL = "SELECT [MATRICULA] "
strSQL = strSQL & "FROM [REGISTRO DE VEHICULOS] "
strSQL = strSQL & "WHERE [MATRICULA] ='" & Me.[MATRICULA] & "'"

Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
If Not rst.EOF And Not rst.BOF Then
MsgBox "LA MATRICULA " & Me.MATRICULA & " YA ESTA REGISTRADA", vbOKOnly + vbInformation, "ATENCION"
End If
If Not rst Is Nothing Then
rst.Close
Set rst = Nothing
End If

End Sub

Mi pregunta viene ahora, Que instruccion debo poner y en donde, para que cuando me salga el Msbox pueda abrir otro formulario donde pueda visualizar los datos del vehiculo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ver registro ya registrado

Publicado por Enrique (1299 intervenciones) el 02/01/2007 22:02:54
Coloca este Evento Público en ese otro Formulario que se abrirá cuando exista la Matrícula y este se abrirá mostrando los datos del vehículo cuya matricula acabas de teclear:

Public Sub Abrete(Matricula)
DoCmd.FindRecord Matricula, acEntire, , acSearchAll, , acAll
End Sub

Luego en el Formulario "Altas" entre la línea del MsgBox y el End If pones estas líneas de código:
DoCmd.OpenForm "NombreOtroFormulario"
Form_NombreOtroFormulario.Abrete Matricula

Antes de abrir el otro Formulario es conveniente situar el Foco en el campo que te interese que lo tome al volver a "Altas", ya sabes que es con: Campo.SetFocus, caso contrario lo normal será que el cursor se quede en Matricula.

He supuesto que el campo Matricula se llamará exactamente igual, sin acento en la í en ambos casos y que el fornulario del Evento Público tendrá como Origen del Registro la Tabla "Registro de Vehiculos" con todos sus campos debidamente ligados a dicha tabla.

A ver si lo consigues de esta forma.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ver registro ya registrado

Publicado por mi menda (1111 intervenciones) el 03/01/2007 03:30:39
Te expongo esta otra opción basada en una función agregada de dominio, te la pongo como opcion pues muchas veces es más sencilla esta manera que no con ADO ó DAO

Private Sub Campo_Matricula_AfterUpdate()

Dim strCampoMatricula As String
Dim strMatricula As String
Dim respuesta As Integer

Dim stDocName As String
Dim stLinkCriteria As String

If IsNull(Me.Matricula) Then Exit Sub

strCampoMatricula = Me.Campo_Matricula
strMatricula = DLookup("[Campo_Matricula]", "NombreTabla", "[CampoID]=" _
& Forms!NombreFormulario!CampoID)

If strCampoMatricula = strMatricula Then
respuesta = MsgBox("La Matricula ya existe, ¿Desea ver los datos?", vbYesNo, "Registro Duplicado")

If respuesta = 6 Then
stDocName = "Nombre_Formulario_A_Abrir"
stLinkCriteria = "[CampoID]=" & Me![CampoID]
DoCmd.OpenForm stDocName, , , stLinkCriteria
Else
Exit Sub
End If

End If

End Sub

Como ves el procedimiento es muy sencillo, primero metemos el valor del campo Matricula en una variable, luego mediante la funcion DLookup()buscamos si ya existe esa Matricula en la tabla,por último comparamos el valor devuelto por la funcion DLookup()con el valor de la variable, y si es igual nos sale un cuadro de mensaje avisando, y si queremos ver el registro pulsamos en la opción "Sí" del cuadro de mensaje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ver registro ya registrado

Publicado por Antonio (38 intervenciones) el 04/01/2007 20:55:18
Gracias por contestar, a los dos. Para Enrique, cuando dices que ponga en Evento Publico a que te refieres que cree un modulo o en que evento debo poner la instruccion que me dices.Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ver registro ya registrado

Publicado por Enrique (1299 intervenciones) el 05/01/2007 18:16:46
Simplemente copia y pega este Evento tal como está, en ese otro Formulario que se abrirá cuando exista la matrícula y que deberá tener como Origen del Registro la tabla donde se guardan los datos del vehículo:

Public Sub Abrete(Matricula)
DoCmd.FindRecord Matricula, acEntire, , acSearchAll, , acAll
End Sub

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ver registro ya registrado

Publicado por Antonio (38 intervenciones) el 07/01/2007 18:12:29
Saludos. Enrique por mas que lo hago no doy con la tecla, perdon por mi ignorancia,en que evento del formulario tengo que pegar la instruccion. Me voy a propiedades del formulario,que he creado para ver la matrcula duplicada, busco evento y ¿ en donde debo de poner la instruccion.? Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ver registro ya registrado

Publicado por Enrique (1299 intervenciones) el 09/01/2007 21:52:02
No Antonio, ese Evento no lo encontrarás en las propiedades del formulario porque es un Evento de "fabricación propia", es igual que si crearas una Función pero en lugar de ésta ponemos un Sub. Solo tienes que copiarlo con el ratón tal como yo te lo he puesto y pegarlo en cualquier parte de la Ventana de código del formulario.

Si ves que sigue sin salirte, no te preocupes, que no me molesta, dímelo y te envío una mdb de ejemplo para que lo veas funcionar.

Cordiales saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ver registro ya registrado

Publicado por Antonio (38 intervenciones) el 10/01/2007 19:56:40
Salucionado. Muchas Gracias por vuestra ayuda a los dos: "Enrique y Mi Menda". Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar