Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Evitar registro duplicados en una bd de access

Estas en el tema de Evitar registro duplicados en una bd de access en el foro de Visual Basic clásico en Foros del Web. Hola Buenas tardes a todos: Tengo el siguiente problema, hice una base de datos con una tabla llamada base_de_datos.mdb, una tabla llamada: tabla_producto: agrege 3 ...
  #1 (permalink)  
Antiguo 02/11/2008, 18:08
Avatar de gerardo_goh  
Fecha de Ingreso: noviembre-2008
Mensajes: 107
Antigüedad: 15 años, 6 meses
Puntos: 1
Exclamación Evitar registro duplicados en una bd de access

Hola Buenas tardes a todos:
Tengo el siguiente problema, hice una base de datos con una tabla llamada base_de_datos.mdb, una tabla llamada: tabla_producto: agrege 3 textbox,2 CommandButton,1 Ado,1 Datagrid.
En la tabla_producto hay 3 campos: idProducto,Producto,Cantidad, tengo tres registros:
idProducto Producto Precio
1 usb 1gb 100.00
2 monitor 2500.00
3 cpu 3000.00
Cuando registro un nuevo registro con el idProducto ya existente me provoca un error el programa, conecto el ado lo conecte a la base de datos en diseño y no con codigo anexo el codigo que desarrolle por favor me pueden ayudar para evitar que me cierre el programa ya que no se puede insertar valores duplicados en el indice,

Private Sub cmdGuardar_Click()
adoProducto.Recordset.AddNew
adoProducto.Recordset.Fields("idProducto") = txtidProducto.Text
adoProducto.Recordset.Fields("producto") = txtProducto.Text
adoProducto.Recordset.Fields("precio") = txtPrecio.Text
adoProducto.Recordset.Update
dgProducto.Refresh
txtidProducto.Text = Empty
txtProducto.Text = Empty
txtPrecio.Text = Empty
txtidProducto.SetFocus
End Sub

Por favor me pueden ayudar, esto me tiene loco, Saludos!!
  #2 (permalink)  
Antiguo 02/11/2008, 19:21
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Evitar registro duplicados en una bd de access

Tio prueba asi, solo cambiale los datos

Código:
Private Sub cmdGuardar_Click()
With adoProducto.Recordset
    .MoveFirst
    .Find "codcargo='" + Text1 + "'"
    
    If .EOF = False Then ' si llega al final y encuentra el codcargo
       MsgBox "Ya esta Inscripto"
    Else
       adoProducto.Recordset.AddNew
       adoProducto.Recordset.Fields("codcargo") = Text1.Text
       adoProducto.Recordset.Fields("nomcargo") = Text2.Text
       adoProducto.Recordset.Update
       dgProducto.Refresh
       Text1.Text = Empty
       Text2.Text = Empty
       Text1.SetFocus
     End If
End With
End Sub
Te enviara un mensaje si el codigo ya esta registrado, por otro lado puedes hacer que el codigo se autogenere el en el text1
  #3 (permalink)  
Antiguo 02/11/2008, 20:33
Avatar de gerardo_goh  
Fecha de Ingreso: noviembre-2008
Mensajes: 107
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Evitar registro duplicados en una bd de access

Cita:
Iniciado por franko1809 Ver Mensaje
Tio prueba asi, solo cambiale los datos

Código:
Private Sub cmdGuardar_Click()
With adoProducto.Recordset
    .MoveFirst
    .Find "codcargo='" + Text1 + "'"
    
    If .EOF = False Then ' si llega al final y encuentra el codcargo
       MsgBox "Ya esta Inscripto"
    Else
       adoProducto.Recordset.AddNew
       adoProducto.Recordset.Fields("codcargo") = Text1.Text
       adoProducto.Recordset.Fields("nomcargo") = Text2.Text
       adoProducto.Recordset.Update
       dgProducto.Refresh
       Text1.Text = Empty
       Text2.Text = Empty
       Text1.SetFocus
     End If
End With
End Sub
Te enviara un mensaje si el codigo ya esta registrado, por otro lado puedes hacer que el codigo se autogenere el en el text1
Muchisimas gracias era exactamente lo que necesitaba ya lo arregle y le agregue una lineas más anexo codigo, saludos!!!
With adoProducto.Recordset
.MoveFirst
.Find "idProducto='" + txtidProducto.Text + "'"

If .EOF = False Then
MsgBox "Ya existe el número del idProducto por favor ingresar nuevamente el nuevo número"
txtidProducto.Text = Empty
txtProducto.Text = Empty
txtPrecio.Text = Empty
txtidProducto.SetFocus
Else
adoProducto.Recordset.AddNew
adoProducto.Recordset.Fields("idProducto") = txtidProducto.Text
adoProducto.Recordset.Fields("Producto") = txtProducto.Text
adoProducto.Recordset.Fields("Precio") = txtPrecio.Text
adoProducto.Recordset.Update
dgProducto.Refresh
MsgBox ("Se registro con exito el registro")
txtidProducto.Text = Empty
txtProducto.Text = Empty
txtPrecio.Text = Empty
txtidProducto.SetFocus
End If
End With
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:43.