Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: florazulceleste en Septiembre 01, 2011, 09:51:23 pm
-
Hola... como hago para no volver a guardar un registro que ya existe con el mismo RNP (codigo unico de mi pais) este es el codigo que tengo para almecenar nuevo registros:
Public Function sqlGrabOficial(rnp As Double, nom As String, zona As String)
sqlGrabOficial = "Insert INTO Oficial (Identidad, Nombre, Zona) " & _
"Values (" & rnp & ", '" & nom & "', '" & zona & "')"
End Function
Private Sub cmdguardar_Click()
BD.BeginTrans
BD.Execute sqlGrabOficial(Val(txtid), txtnom, txtzona)
BD.CommitTrans
MsgBox ("Registro guardado correctamente ")
If rs.State = 1 Then rs.Close
cargarOficial
End Sub
lo almacena bien, el problema es que no se como hacer una "condición" para que no almacene el RNP repetido, que si alguien intenta hacerlo, me de un MsgBox diciendo "ya existe"??
GRACIAS, por tomarse el tiempo de responder!!
-
Acá lo que tenes que hacer es primero buscar el registro que vas a guardar y si ya existe que tire el msgbox.
-
Es correcto lo que dice Enter. Debes buscar primero antes de insertar, ahora te recomiendo que hagas la buqueda en una funcion que solo te devuelva true o false para que no te enredes con el codigo, Por ejemplo
If RNPRegistrado(txtRNP) Then 'supongamos que tienes el control txtRNP
MsgBox("RNP ya registrado")
else
Grabas
End If
Y la funcion seria:
Public Function RNPRegistrado(RNP as Double) As Boolean
Dim rs As New ADODB.Recordset
sql = "Select Identidad from Oficial Where Identidad = " & RNP '<-- Si quieres esto lo sacas a una funcion para que lo reutilices
rs.Open sql, dB, 1, 1
if rs.recorcount > 0 then
RNPRegistrado = true
else
RNPRegistrado = False
endif
End Public
Para actualizar si tendrías que mandar el id del registro que imagino lo tienes.
Saludos
-
funciona perfecto!
MUCHAS GRACIAS, por sus respuestas!!