No funciona filtro
Publicado por Ivan (1 intervención) el 03/12/2010 19:36:17
Necesito ayuda, tengo este codigo para filtrar registros e irme a la ultimo registro de la lista filtrada y guardo los valores de cada columna y los guardo en variables, me funciona bien en la primera pasada, pero luego trato de guardar otro registro pero no me lo hace me manda un error de duplicacion del indice un campo clave, pero segun yo esta correcto, pero veanlo pueda que hay errores que no veo. Este es el codigo.
If .BOF = False And .EOF = False Then
.Filter = "Codproducto" & " LIKE '*" + Trim$(Me.txtcodproducto.Text) + "*'"
Registrosfiltrados = .RecordCount
If Registrosfiltrados >= 1 Then
MsgBox "Hay registro filtrados"
Set Me.DataGrid1.DataSource = Rsentradas
.MoveLast
Numregistro = Numeroregistro
Cantant = Me.DataGrid1.Columns(11).Text
Costunitant = Me.DataGrid1.Columns(12).Text
Costpromant = Me.DataGrid1.Columns(13).Text
Existmon = Me.DataGrid1.Columns(15).Text
'MsgBox "Registros Filtrados" & Registrosfiltrados
'MsgBox "Numero Registro" & Numregistro
'MsgBox "Cantidad Anterior" & Cantant
'MsgBox "Costo Unitario" & Costunitant
'MsgBox "Costo Promedio" & Costpromant
'MsgBox "Existencia Monetaria" & Existmon
Else
MsgBox "No hay registro filtrados"
Numregistro = Numeroregistro
Cantant = 0
Existmon = 0
Costpromant = 0
Costunitant = 0
End If
.AddNew
!Noentrada = Numregistro + 1
!Codproducto = Me.txtcodproducto.Text
!Codentrada = Me.txtcodentrada.Text
!Idusuario = 1 'Usuarioatiende
!Codproducto = Me.txtcodproducto.Text
!Fechaentrada = Me.DTPfecha.Value
!Horaentrada = Time
!Cantidadentrada = Val(Me.txtcantidad.Text)
!Procedencia = Me.txtprocedencia.Text
!Enviadopor = Me.txtenviadopor.Text
!Observaciones = Me.txtobservacion.Text
!Transporte = Me.txttransporte.Text
!Saldounidades = Val(Me.txtcantidad) + Cantant
!Costounitario = Val(Me.txtcostounit.Text)
If Val(Me.txtcostounit.Text) <> Costunitant Then
'Debe--------------------------------------------->
'Saldo Monetario------------------------------------------------->
!Costopromedio = ((Val(Me.txtcantidad.Text) * Val(Me.txtcostounit.Text)) + Existmon) / (Cantant + Val(Me.txtcantidad.Text))
Else
!Costopromedio = Costpromant
End If
!Debe = Val(Me.txtcantidad.Text) * Val(Me.txtcostounit.Text)
!Saldomonetario = (Val(Me.txtcantidad.Text) * Val(Me.txtcostounit.Text)) + Existmon
End If
Call Limpiar(Me)
.Update
End With
If .BOF = False And .EOF = False Then
.Filter = "Codproducto" & " LIKE '*" + Trim$(Me.txtcodproducto.Text) + "*'"
Registrosfiltrados = .RecordCount
If Registrosfiltrados >= 1 Then
MsgBox "Hay registro filtrados"
Set Me.DataGrid1.DataSource = Rsentradas
.MoveLast
Numregistro = Numeroregistro
Cantant = Me.DataGrid1.Columns(11).Text
Costunitant = Me.DataGrid1.Columns(12).Text
Costpromant = Me.DataGrid1.Columns(13).Text
Existmon = Me.DataGrid1.Columns(15).Text
'MsgBox "Registros Filtrados" & Registrosfiltrados
'MsgBox "Numero Registro" & Numregistro
'MsgBox "Cantidad Anterior" & Cantant
'MsgBox "Costo Unitario" & Costunitant
'MsgBox "Costo Promedio" & Costpromant
'MsgBox "Existencia Monetaria" & Existmon
Else
MsgBox "No hay registro filtrados"
Numregistro = Numeroregistro
Cantant = 0
Existmon = 0
Costpromant = 0
Costunitant = 0
End If
.AddNew
!Noentrada = Numregistro + 1
!Codproducto = Me.txtcodproducto.Text
!Codentrada = Me.txtcodentrada.Text
!Idusuario = 1 'Usuarioatiende
!Codproducto = Me.txtcodproducto.Text
!Fechaentrada = Me.DTPfecha.Value
!Horaentrada = Time
!Cantidadentrada = Val(Me.txtcantidad.Text)
!Procedencia = Me.txtprocedencia.Text
!Enviadopor = Me.txtenviadopor.Text
!Observaciones = Me.txtobservacion.Text
!Transporte = Me.txttransporte.Text
!Saldounidades = Val(Me.txtcantidad) + Cantant
!Costounitario = Val(Me.txtcostounit.Text)
If Val(Me.txtcostounit.Text) <> Costunitant Then
'Debe--------------------------------------------->
'Saldo Monetario------------------------------------------------->
!Costopromedio = ((Val(Me.txtcantidad.Text) * Val(Me.txtcostounit.Text)) + Existmon) / (Cantant + Val(Me.txtcantidad.Text))
Else
!Costopromedio = Costpromant
End If
!Debe = Val(Me.txtcantidad.Text) * Val(Me.txtcostounit.Text)
!Saldomonetario = (Val(Me.txtcantidad.Text) * Val(Me.txtcostounit.Text)) + Existmon
End If
Call Limpiar(Me)
.Update
End With
Valora esta pregunta
0