No se graba el registro en tabla (clave compuesta)

Espero que me puedas ayudar ya que no logro encontrar el problema, claro que no soy experta...

Tengo la Tabla INSCRIPCIONES con PrimaryKey compuesta por los campos Torneo, Nro_Fecha, Reg_FCA. Y tengo un formulario donde ingreso los datos de las inscripciones. Los campos Torneo y Nro Fecha se cargan solos y están ocultos. Al ingresar en el formulario el Reg FCA, le puse que valide duplicado por los 3 campos y que emita un mensaje si así lo fuese. Hasta acá funciona todo OK. El problema lo tengo cuando cambio de Nro Fecha o de Torneo, si ingreso un Reg FCA no ingresado hasta el momento, el registro se graba en la tabla, pero si se repite a pesar que los otros 2 campos son distintos, no graba el registro, tampoco muestra el cartel de duplicado y si blanquea todos los campos como si los hubiese grabado (en caso de duplicado no blanquea). Necesito que el registro se grabe si al menos 1 de los 3 campos difiere. A continuación copio el código:

Private Sub Reg_FCA_BeforeUpdate(Cancel As Integer)

'Emitir mensaje si el campo es duplicado

Dim Db As Database

Dim Rst As Recordset
Set Db = CurrentDb()

Set Rst = Db.OpenRecordset("INSCRIPCIONES")
Rst.Index = "PrimaryKey"

Rst.Seek "=", [Torneo], [Nro_Fecha], [Reg_FCA] 'Campos del formulario
If Not Rst.NoMatch Then

MsgBox "Registro FCA ya Inscripto", vbiinformation
Cancel = True

End If

Private Sub Grabar_Inscripto_Click()

'Grabar el registro con el botón grabar
Dim miSQL As String
miSQL = "INSERT INTO INSCRIPCIONES(Reg_FCA, Perros, Raza, Categoría, Grado, Vto_Antirrábica, Torneo, Nro_Fecha, Fecha, Guía, Agrupación, País, Localidad, Ranking, Perra_en_celo) VALUES ('" & Me.Reg_FCA.Value & "', '" & Me.Perros.Value & "', '" & Me.Raza.Value & "','" & Me.Categoria.Value & "','" & Me.Grado.Value & "','#" & Nz(Me.Vto_Antirrabica, "") & "#', '" & Me.Torneo.Value & "', '" & Me.Nro_Fecha.Value & "','#" & Me.Fecha.Value & "#','" & Me.Lista_Guia.Value & "','" & Me.Agrupación.Value & "','" & Me.País.Value & "','" & Me.Localidad.Value & "','" & Me.Ranking.Value & "','" & Me.Perra_en_celo.Value & "')"
DoCmd.SetWarnings False
DoCmd.RunSQL miSQL
DoCmd.SetWarnings True
'Para blanquear los campos luego de grabarlos

Reg_FCA = ClearConntent
Perros = ClearConntent
Raza = Null
Categoría = ClearConntent
Grado = ClearConntent
Vto_Antirrabica = Null
Perra_en_celo = ClearConntent
Lista_Guia = ClearConntent
Agrupación = ClearConntent
País = ClearConntent
Localidad = ClearConntent
End Sub

1 Respuesta

Respuesta
1

Yo creo que la no validación es produce porque independientemente de que modifiques alguno de los campos de la PrimaryKey debes hacer las validaciones en el evento LostFocus del último campo que valides (en tu caso creo que es Reg_FCA).

Lamentablemente no es eso. Hace lo mismo, no da el mensaje de duplicado, lo cual es correcto ya que es el mimos registro pero en otra competencia, se blanquean los campos como cuando se graba el registro, pero en la tabla sin aparecer. Si sabes que otra cosa puede ser... si no gracias igual.

sdos

Lo siento pero no se en qué más podría ayudarte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas