Update e Insert
Publicado por Manuel Calvo (10 intervenciones) el 12/04/2006 21:58:03
Hola a todos tengo una pregunta:
Yo hize una rutina que actualiza los precios de unos productos de una bd obteniendo los datos desde excel lo que necesito es saber que datos no estan en la bd pero si en excel para que esos datos los agrege a mi tabla.
En pocas palabra si los datos estan actualizalos y si no agregalos
sub Actualiza
CmUpdate1.CommandText = "update Catalogo set precio=? where codig=?"
Dim rsX As ADODB.Recordset
Set cnn = New ADODB.Connection
If nombrefichero = "" Then
MsgBox "No se ha Seleccionado un Archivo", vbCritical, "SUFASOFT"
Else
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & nombrefichero & ";" & _
"Extended Properties=""Excel 8.0;HDR=yes;"""
Set rsX = New ADODB.Recordset
With rs
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockOptimistic
End With
i = 1
rsX.Open "SELECT Codigo,Precio FROM [JANABRIL$]", cnn, adOpenStatic, adLockOptimistic
Do While Not (rsX.EOF)
CmUpdate1(0) = rsX!Precio
CmUpdate1(1) = rsX!Codigo
CmUpdate1.Execute
rsX.MoveNext
i = i + 1
Loop
MsgBox "Se Actualizaron " & i & " Datos Exitosamente", vbOKOnly, "SUFASOFT"
end sub
esto me actualiza mis precios en la bd pero como se que el producto con codigo="123456" con un precio="150" existe, y si no existe que lo agrege se que para agregar seria un ("Insert catalogo set Codigo=?, Descripcion=?,Empaque=?,Precio=?")
pero no se como decirle que cuando el update no encuentre ese codig pase a insertarlo
espero no los confunda con todo este desastre pero me seria de mucha utlidad eso ya que son mas de 5000 productos los que se actualizan gracias cualquier aportacion es bien recibida
Gracias
Yo hize una rutina que actualiza los precios de unos productos de una bd obteniendo los datos desde excel lo que necesito es saber que datos no estan en la bd pero si en excel para que esos datos los agrege a mi tabla.
En pocas palabra si los datos estan actualizalos y si no agregalos
sub Actualiza
CmUpdate1.CommandText = "update Catalogo set precio=? where codig=?"
Dim rsX As ADODB.Recordset
Set cnn = New ADODB.Connection
If nombrefichero = "" Then
MsgBox "No se ha Seleccionado un Archivo", vbCritical, "SUFASOFT"
Else
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & nombrefichero & ";" & _
"Extended Properties=""Excel 8.0;HDR=yes;"""
Set rsX = New ADODB.Recordset
With rs
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockOptimistic
End With
i = 1
rsX.Open "SELECT Codigo,Precio FROM [JANABRIL$]", cnn, adOpenStatic, adLockOptimistic
Do While Not (rsX.EOF)
CmUpdate1(0) = rsX!Precio
CmUpdate1(1) = rsX!Codigo
CmUpdate1.Execute
rsX.MoveNext
i = i + 1
Loop
MsgBox "Se Actualizaron " & i & " Datos Exitosamente", vbOKOnly, "SUFASOFT"
end sub
esto me actualiza mis precios en la bd pero como se que el producto con codigo="123456" con un precio="150" existe, y si no existe que lo agrege se que para agregar seria un ("Insert catalogo set Codigo=?, Descripcion=?,Empaque=?,Precio=?")
pero no se como decirle que cuando el update no encuentre ese codig pase a insertarlo
espero no los confunda con todo este desastre pero me seria de mucha utlidad eso ya que son mas de 5000 productos los que se actualizan gracias cualquier aportacion es bien recibida
Gracias
Valora esta pregunta


0