Claves repetidas

Hola lo que pasa es que estoy desarrollando una aplicación esn visual 6 y
y aclaro soy primiparo en esto, pero me gusta . Bueno el caso es que por medio de un DSN estoy haciendo consultas sql de insertar datos a una tabla de una base de datos en access por medio de una aplicación en visual, pero resulta que ya allí tengo unos registro cada uno con su clave principal. La cual es irrepetible. Bueno resulta que si voy a ingresar otro registro con una clave primaria ya existente me arroja un error que dice :
( run-time error '-2147467259(80004005)':
Los cambios solicitados en la tabla no se realizaron correctamente por que crearían valores duplicados en el índice, clave principal o relación. Cambie los datos en el campo o los campos que contienen datos duplicados. )
Es decir lo que estoy buscando es el código que me diga por medio de un msgbox("") que la clave que voy a ingresar ya existe y que me muestre con que nombre esta creada la clave existente. O solo que me diga que ya existe.
Y este es el código por el cual estoy guardando los registros a la base de datos de access:
' esta es la conexion por mediomo del boton insertar el cual lo tengo con nombre "insert"
If Text1 = "" Or Text2 = "" Or Text3 = "" Or Text4 = "" Then
                MsgBox ("Debes ingresar datos en todos los campos, ok")
                Text1 = ""
                Text1.SetFocus
      Else
      'inicializacion de variables declaradas en el modulo
            Set cnn = New Connection
            Set Rcs = New Recordset
            'ruta para la conexión con la basd de datos
            cnn.Open ("PROVIDER=MICROSOFT.JET.OLEDB.4.0; DATA SOURCE=C:\finca.mdb")
            'este es el mandato el cual me va a guardar los registros en access
            Ssql = "INSERT INTO cintas(codigocinta,colorcinta,cantidad,edad) VALUES ('" & Text1.Text & "', '" & Text2.Text & "', '" & Text3.Text & "' ,'" & Text4.Text & "' )"
            'se abre el recordset para que me permita guardar los registros}
            'esta es la otra variable del modulo
            Rcs.Open Ssql, cnn
            MsgBox "Registro grabado"
            Text1 = ""
            Text2 = ""
            Text3 = ""
            Text4 = ""
            Text1.SetFocus
   End If
End Sub
Gracias
Espero me respondas cuanto antes. GRACIAS

1 Respuesta

Respuesta
1
Antes de hacer el INSERT debes hacer una consulta con un SELECT y un WHERE Codcinta= text1.text
Si trae valores es porque ya existe y no haces el INSERT, de esa manera no muetsra el error y puedes mostrar los datos que trajiste en la consulta con le select.
Hola
Es que lo de el SELECT es como para buscar los datos de ese text1 sabiendo la clave.
Pero lo que yo quiero que me expliques o me colabores es como hago para que cuando ingrese un registro con un código o clave primaria que ya exista el programa me diga que... la clave ya existe que puede ser por medio de un msgbox(""). Por que sin ese código no puedo ingresar registros con la misma clave primaria, se me va al error ya resaltado anteriormente .OK. gracias
espero tu respuesta lo más pronto posible gracias.
Por eso, para saber si existe o no un registro debes hacer un SELECT

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas