msgbox personalizado para indexado sin duplicados

monzote
14 de Diciembre del 2004
en una tabla tengo los datos de las personas, cuya clave principal es el RUT que es el N潞 de identificacion personal, escogi la opcion de indexado sin duplicados. El punto es que quiero que al ingresar un registro, si este ya fue ingresado (unique) me genere un msgbox "Persona ya ingresada"....en vez de que salga el error de access "los cambios solicitados no se realizaron en la tabla correctamente por que crearian valores duplicados en el indice....etc. etc" 驴como?

Rodolfo Reyes
14 de Diciembre del 2004
En el formulario, en el evento "antes de insertar" haz una verificaci贸n si el ya existe un registro con esta llave primaria y en caso de ser afirmativo despliega un mensaje de error.

La otra opci贸n es en el evento "al ocurrir un error" aqui se tiene que verificar por codigo o numero de error y si el codigo es el que estas buscando desliega un mensaje de error descriptivo en caso contrario despliega el mensaje de error que hubiera desplegado el sistema. Solo te cuidado porque si no despliegas los mensajes de error que hubiera sacado el sistema cuando no es el codigo que estas busncando, nunca te saldran errores en la pantalla aunque en realidad si existan.

Fredi
14 de Diciembre del 2004
En el form donde estas introduciendo los datos, coloca una casilla independiente y llamala 聯txtRUT聰 la casilla que ya tienes 聯RUT聰, dejala como visible=no, y en el evento despues de actualizar la casilla 聯txtRUT聰, pones el siguiente c贸digo:

Dim rs As ADODB.Recordset
Dim conn As ADODB.Connection
Dim strSQL As String
Dim stDocName As String

strSQL = Me.RecordSource
Set rs = New ADODB.Recordset
Set conn = CurrentProject.Connection

rs.Open strSQL, conn, adOpenDynamic, adLockOptimistic
If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox "El Registro est脿 vacio"
Else
rs.MoveFirst
End If

Do While Not rs.EOF
If rs("RUT") = Me.txtRUT Then
MsgBox("El RUT que ha introducido ya esta en uso." & vbCrLf & "" & vbCrLf & rs("RUT") & " " & rs("NOMBRE")

End If
rs.MoveNext
Me.RUT=Me.txtRUT
Loop

Ojo, en la tabla donde se guarda el numero tiene que llamarse 聯RUT聰, y un campo donde este el nombre 聯NOMBRE聰

Si tienes algun problema me lo dices.