codigo de barras
Publicado por pablo (3 intervenciones) el 05/08/2011 12:46:56
Hola amigos del foro:
Quisiera hacer una consulta, no tanto sobre codigo de barras sino de como controlar los datos con un MSHFlexGrid1 y una text1. Les explico que tiene que hacer y cual es el error. Cuando uso el scan para marcar un codigo me lo copia en la text1 y automáticamente me lo busca en database access y si lo encuentra mete toda la informacion en el MSHFlexGrid1 y la text se borra. Mi problema radica es que quiero que cuando los artículos se repiten en vez de agregar una linea nueva busca su correspondiente y lo sume.
La verdad no entiendo donde está el error ya que casi hace lo que pido
campo1 campo2 campo3
1234 tomate 1kg si yo vuelvo a presionar tomates no ingresa
otra linea pero tampoco las suma al kg ya
existente.
---------------------------------------------------------------------------------------------------------------------------
campo1 campo2 campo3 imaginemos que el primer artículo es
1234 tomate 2kg tomates y es 1kg si pongo lechuga me lo
3689 lechuga 1kg encuentra perfectamente. Después vuelvo a
1234 tomete 1kg poner tomate no solo me suma el de arriba
sino que tambien me agrega la línea de
abajo.
El código es:
Private Sub Text1_Change()
Dim zz As Integer
On Error GoTo 10:
respuesta1 = Text1.Text
If respuesta1 = "" Then Exit Sub
rst.Find "Campo1 = '" & respuesta1 & "'", , , 1
z = rst.Fields("campo1").Name
t = rst.Fields("campo2").Name
r = rst.Fields("campo2").Name
x = rst.Fields("campo1").Value
y = rst.Fields("campo2").Value
MSHFlexGrid1.TextMatrix(0, 0) = z
MSHFlexGrid1.TextMatrix(0, 1) = t
MSHFlexGrid1.TextMatrix(0, 2) = "Campo3"
For zz = 1 To MSHFlexGrid1.Rows - 1
If MSHFlexGrid1.TextMatrix(zz, 0) = respuesta1 Then
MSHFlexGrid1.TextMatrix(zz, 2) = MSHFlexGrid1.TextMatrix(zz, 2) + 1
ElseIf zz = MSHFlexGrid1.Rows - 1 Then
MSHFlexGrid1.AddItem ""
MSHFlexGrid1.TextMatrix(zz, 0) = x
MSHFlexGrid1.TextMatrix(zz, 1) = y
MSHFlexGrid1.TextMatrix(zz, 2) = 1
End If
Next
MSHFlexGrid1.ColWidth(0) = 1500 'Len(x) * 500
MSHFlexGrid1.ColWidth(1) = 1500 'Len(y) * 500
If x <> Empty And y <> Empty Then
Text1 = ""
ElseIf x = Empty And y = Empty Then
Text1 = ""
End If
10:
End Sub
Les agradezco de antemano cualquier intervento y a quien le interesa este código, a mi salvo por este problema me funciona perfecto lo pueden aprovechar.
Quisiera hacer una consulta, no tanto sobre codigo de barras sino de como controlar los datos con un MSHFlexGrid1 y una text1. Les explico que tiene que hacer y cual es el error. Cuando uso el scan para marcar un codigo me lo copia en la text1 y automáticamente me lo busca en database access y si lo encuentra mete toda la informacion en el MSHFlexGrid1 y la text se borra. Mi problema radica es que quiero que cuando los artículos se repiten en vez de agregar una linea nueva busca su correspondiente y lo sume.
La verdad no entiendo donde está el error ya que casi hace lo que pido
campo1 campo2 campo3
1234 tomate 1kg si yo vuelvo a presionar tomates no ingresa
otra linea pero tampoco las suma al kg ya
existente.
---------------------------------------------------------------------------------------------------------------------------
campo1 campo2 campo3 imaginemos que el primer artículo es
1234 tomate 2kg tomates y es 1kg si pongo lechuga me lo
3689 lechuga 1kg encuentra perfectamente. Después vuelvo a
1234 tomete 1kg poner tomate no solo me suma el de arriba
sino que tambien me agrega la línea de
abajo.
El código es:
Private Sub Text1_Change()
Dim zz As Integer
On Error GoTo 10:
respuesta1 = Text1.Text
If respuesta1 = "" Then Exit Sub
rst.Find "Campo1 = '" & respuesta1 & "'", , , 1
z = rst.Fields("campo1").Name
t = rst.Fields("campo2").Name
r = rst.Fields("campo2").Name
x = rst.Fields("campo1").Value
y = rst.Fields("campo2").Value
MSHFlexGrid1.TextMatrix(0, 0) = z
MSHFlexGrid1.TextMatrix(0, 1) = t
MSHFlexGrid1.TextMatrix(0, 2) = "Campo3"
For zz = 1 To MSHFlexGrid1.Rows - 1
If MSHFlexGrid1.TextMatrix(zz, 0) = respuesta1 Then
MSHFlexGrid1.TextMatrix(zz, 2) = MSHFlexGrid1.TextMatrix(zz, 2) + 1
ElseIf zz = MSHFlexGrid1.Rows - 1 Then
MSHFlexGrid1.AddItem ""
MSHFlexGrid1.TextMatrix(zz, 0) = x
MSHFlexGrid1.TextMatrix(zz, 1) = y
MSHFlexGrid1.TextMatrix(zz, 2) = 1
End If
Next
MSHFlexGrid1.ColWidth(0) = 1500 'Len(x) * 500
MSHFlexGrid1.ColWidth(1) = 1500 'Len(y) * 500
If x <> Empty And y <> Empty Then
Text1 = ""
ElseIf x = Empty And y = Empty Then
Text1 = ""
End If
10:
End Sub
Les agradezco de antemano cualquier intervento y a quien le interesa este código, a mi salvo por este problema me funciona perfecto lo pueden aprovechar.
Valora esta pregunta


0