problemas con update e insert
Publicado por raymundo calvo (10 intervenciones) el 03/05/2006 19:37:11
Hola a todos tengo un problema a la hora de actualizar o insertar datos a una tabla lo que sucede es que a la hora de actualizar un dato me dice que no existe y lo quiere agregar pero en mi tabla esta indexada y no permite duplicar valores pero yo estoy consiente de que ese valor existe pero por que en la busqueda no lo encuentra les pongo el codigo para que le heche un ojo y me puedan ayudar con este problema, cuando pasa por el recordcount me dice que es cero en vez de uno esto me esta trayendo problemas a la hora de mostrar cuantos datos se actualizaron y cuantos se agregaron no se que pasa ojala me ayuden:
On Error Resume Next
rsX.Open "SELECT * FROM [ACTUALIZACION$]", cnn, adOpenStatic, adLockOptimistic
rsd.Open "SELECT * FROM Catalogo where codig='" & rsX!codigo & "'", cnx, OpenDynamic, adLockPessimistic
Do While Not (rsX.EOF)
DoEvents
If rsd.RecordCount <> 0 Then
I = I + 1
w1 = w1 + 1' me indica cuantos registros se actualizan
CmUpdate1(0) = rsX!Precio
CmUpdate1(1) = rsX!codigo
CmUpdate1.Execute
rsX.MoveNext
ElseIf rsd.RecordCount = 0 Then
I = I + 1
w2 = w2 + 1'cuantos registros se agregan
CmNew(0) = rsX!prov
CmNew(1) = rsX!codigo
CmNew(2) = "0000000000000"
CmNew(3) = rsX!Descripcion
CmNew(4) = rsX!Empaque
CmNew(5) = rsX!Precio
CmNew.Execute
rsX.MoveNext
End If
If I >= rsX.RecordCount Then
MostrarProgresoEnStatusBar False
StatusBar1.Panels(3).Text = ""
StatusBar1.Panels(1).Text = "Estado: Completado..."
I = 0
Else
StatusBar1.Panels(3).Text = Round((ProgressBar1.Value * 100 / progressBar1.Max), 0) & " %"
ProgressBar1.Value = I
End If
Loop
MsgBox "Se Actualizaron " & w1 & " Datos Exitosamente" & (Chr(13) & Chr(10)) & "Se Agregaron " & w2 & " Nuevos Datos Exitosamente", vbOKOnly, "SUFASOFT"
End If
On Error Resume Next
rsX.Open "SELECT * FROM [ACTUALIZACION$]", cnn, adOpenStatic, adLockOptimistic
rsd.Open "SELECT * FROM Catalogo where codig='" & rsX!codigo & "'", cnx, OpenDynamic, adLockPessimistic
Do While Not (rsX.EOF)
DoEvents
If rsd.RecordCount <> 0 Then
I = I + 1
w1 = w1 + 1' me indica cuantos registros se actualizan
CmUpdate1(0) = rsX!Precio
CmUpdate1(1) = rsX!codigo
CmUpdate1.Execute
rsX.MoveNext
ElseIf rsd.RecordCount = 0 Then
I = I + 1
w2 = w2 + 1'cuantos registros se agregan
CmNew(0) = rsX!prov
CmNew(1) = rsX!codigo
CmNew(2) = "0000000000000"
CmNew(3) = rsX!Descripcion
CmNew(4) = rsX!Empaque
CmNew(5) = rsX!Precio
CmNew.Execute
rsX.MoveNext
End If
If I >= rsX.RecordCount Then
MostrarProgresoEnStatusBar False
StatusBar1.Panels(3).Text = ""
StatusBar1.Panels(1).Text = "Estado: Completado..."
I = 0
Else
StatusBar1.Panels(3).Text = Round((ProgressBar1.Value * 100 / progressBar1.Max), 0) & " %"
ProgressBar1.Value = I
End If
Loop
MsgBox "Se Actualizaron " & w1 & " Datos Exitosamente" & (Chr(13) & Chr(10)) & "Se Agregaron " & w2 & " Nuevos Datos Exitosamente", vbOKOnly, "SUFASOFT"
End If
Valora esta pregunta


0