• Domingo 22 de Diciembre de 2024, 08:31

Autor Tema:  Comprobar Si Ya Existe Un Registro  (Leído 1071 veces)

Charly

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Comprobar Si Ya Existe Un Registro
« en: Viernes 20 de Febrero de 2004, 19:53 »
0
Buenas tardes,

esto es lo que yo tenga para insertar un registro en mi BDD conectada con Dataenvironment. Lo que quiero es que antes de que haga el insert compruebe que el registro que voy a meter no existe, y si existe, que me avise. ¿Como lo hago? ¿que me falta por añadir a mi código?


Private Sub cmdAltas_Click()
    Sele = "insert into contactos (Nombre, Apellidos) values ('" & txtNombre.Text & "', '" & txtApellidos.Text & "')"
    Actualizar (Sele)     'esta función ejecuta el insert
    Call Form_Load
End Sub

Muchas gracias de antemano

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Comprobar Si Ya Existe Un Registro
« Respuesta #1 en: Miércoles 25 de Febrero de 2004, 17:21 »
0
Hola Charly.

Si la tablas en la que intentas insertar datos no soporta claves duplicadas, supervisa el error que te de al intentar insertar.

Otra opción es que previamente realices un SELECT de la tabla filtrando por los valores que quieres insertar, si Recordset.RecordCount = 0, entonces no existe el registro. Ten en cuenta que los valores de comparación de la cláusula WHERE son sensibles a mayúsculas minúsculas.

Algo así:
Código: Text
  1.  
  2.     Dim cnx1 As ADODB.Connection
  3.     Dim cmd1 As ADODB.Command
  4.     Dim rs1 As Recordset
  5.     Set cnx1 = New ADODB.Connection
  6.     cnx1.CursorLocation = adUseClient
  7.     cnx1.Open "Provider=Microsoft Jet 4.0 OLE DB Provider;" _
  8.     & "Data Source=C:\Ruta\BaseDeDatos.mdb;"
  9.     Set cmd1 = New ADODB.Command
  10.     Set cmd1.ActiveConnection = cnx1
  11.     cmd1.CommandType = adCmdText
  12.     cmd1.CommandText = "SELECT * FROM Contactos " _
  13.     & "WHERE UCase(Trim(Nombre))='" _
  14.     & UCase(Trim(txtNombre.Text)) & "' AND " _
  15.     & "UCase(Trim(Apellidos))='" _
  16.     & UCase(Trim(txtApellidos.Text)) & "'"
  17.     Set rs1 = cmd1.Execute()
  18.     If rs1.RecordCount > 0 Then MsgBox "Ya existe en la tabla"
  19.     rs1.Close
  20.     Set rs1 = Nothing
  21.     Set cmd1 = Nothing
  22.     cnx1.Close
  23.     Set cnx1 = Nothing
  24.  
  25.  
Claro está, que en vez de declarar una nueva conexión y/o comando, puedes reutilizar los que ya tengas.

Suerte.