Estimados:
Soy un principiante en ADO, mi consulta es la siguiente:
Estoy haciendo un desarrollo para movimiento de inventario para lo cual tengo tres tablas:
BDINVLOC con 4 columnas (bodega, articulo, estante y cantidad), donde se almacena la cantidad de los articulos, contenidos en los estantes, y contenidos en las bodegas(es la recibe los insert y update que hago en las tablas y datagrid)
BDTRXBAT, donde se ingresan los envios a la bodega que consta de (usuario, fecha, hora, articulo y cantidad (tambien recibe insert o update). La tabla indicada (bdtrxbat) es la encargada de registrar los pedidos y entregar mercaderia hacia y desde la bodega (sin mover la tabla bdinvloc)
finalmente la tabla bdtrxfil donde se almacenan las transacciones por cada movimiento.
Bueno aqui va la consulta:
Pude hacer la carga de articulos sin problemas hacia la tabla bdtrxbat mediante codigo que esta mas abajo.
Sin embargo no puedo hacer lo siguiente:
Una instruccion if que haga un insert si no existe la bodega,estante y articulo y cantidad.
un else en caso de que exista haga un update a la cantidad del articulo en bdinvloc y escriba un movimiento en bdtrxfil:
Entrego el codigo a ver si sirve algo o hay que poner mas cosas
Sub GrabarTrx()
Dim strsql As String
Dim strOrigen As String
Dim ordPP As String
Dim status As String
status = "In"
linea = linea + 1
Dim miRs As New ADODB.Recordset
Kilos = Val(Me.txtcant.Text)
ordPP = Format(Me.txtordPP, "00000000")
usuario = "eduardo"
fecha = Format(Date, "yyyymmdd")
hora = Format(Time, "hhmmss")
strsql = "INSERT INTO bdtrxbat (tipotrx,Solicitud, status, Usuario, linea, ord_no, item_no, item_desc_1,cliente,trx_dt, trx_tm, qty, oper_desc,comment,ok) values ('" & Me.cmbtipotrx & "','" & Val(txtSolN.Text) & "','" & status & "','" & UCase(usuario) & "','" & linea & "','" & ordPP & "','" & Trim(Me.lblitem.Caption) & "','" & Trim(Me.lblItemDesc.Caption) & "','" & Trim(Me.lblCust.Caption) & "','" & fecha & "','" & hora & "','" & Kilos & "','" & Me.txtoper.Text & "','" & Me.txtcomment.Text & "','Y')"
Clipboard.Clear
Clipboard.SetText strsql
MsgBox ("grabartrx " & strsql)
cn.cnnpesaje.Execute strsql
'carga el sub actualizargrilla
ActualizarGrilla
'limpia las cajas texto
Me.txtoper = ""
Me.txtordPP = ""
Me.txtcant = ""
Me.txtcomment = ""
lblitem.Caption = ""
lblItemDesc.Caption = ""
lblCust.Caption = ""
Me.txtoper.Enabled = False
Me.txtcant.Enabled = False
Me.cmdguardar.Enabled = False
Me.txtcomment.Enabled = False
Me.txtordPP.SetFocus
End Sub
Private Sub ActualizarGrilla()
Dim strsql As String
strsql = "SELECT Linea, ord_no,oper_desc,item_no,item_desc_1,qty,ok FROM bdtrxbat WHERE item_no = '" & Trim(lblitem) & "' and tipotrx = '" & Me.cmbtipotrx.Text & "' and Solicitud = '" & Val(txtSolN) & "'"
Clipboard.Clear
Clipboard.SetText strsql
MsgBox ("actualizagrilla " & strsql)
Set miRs = New ADODB.Recordset
miRs.Open strsql, cn.cnnpesaje, adOpenStatic, adLockOptimistic
Set dbgGrilla.DataSource = miRs
'carga parametros de datagrid
ConfiguraGrilla
End Sub