Visual Basic - como buscar un codigo repetido

Life is soft - evento anual de software empresarial
 
Vista:

como buscar un codigo repetido

Publicado por fede (189 intervenciones) el 10/06/2005 13:14:15
Hola gen@s:
Tengo un datagrid en el cual voy ingresando articulos de otro formulario para facturar,pero no se como hacer para q me diga que un codigo de articulo esta repetido(para no facturar el mismo producto no).
Me enviaron este codigo
If TEMP.RecordCount >= 1 Then
TEMP.MoveFirst
TEMP.Find "Codigo= '" & Trim(txtC_CODART) & "'"
If Not TEMP.EOF Then
MsgBox "Producto ya existe", vbCritical, "Validación"
txtC_CODART.SetFocus
Exit Sub
End If
End If
Ahora no me funciona bien , pero les explico como lo utilizo para ver si es el codigo o soy yo q no lo se usar.
Yo tomo el valor del articulo de una columna de un gatagrid, asi

Private Sub DG1_AfterColEdit(ByVal ColIndex As Integer)
If DG1.Col = 0 Then
If DG1.Text = "" Then
GoTo salio:
End If
''''''''''este es el codigo q me enviaron
''''''yo valido el nro de art antes de ingresarlo
Dim codart
With dtetecno.rsingreso
If .RecordCount >= 1 Then
.MoveFirst
DG1.Col = 0
.Find "Codigo= '" & Trim(DG1.Text) & "'"
If Not .EOF Then
MsgBox "Producto ya existe", vbCritical, "Validación"
DG1.Col = 0
DG1.SetFocus
Exit Sub
End If
End If

End With
''''''''pero cuando lo corro me tira el error q dice "no se encontro el elemento en la '''coleccion q corresponde con el nombre o el ordinal pedido"
'' y el depurador me señala esto .Find "Codigo= '" & Trim(DG1.Text) & "'"
''' bueno espero que se entienda y espero no los moleste demasiado
''' muchas gracias chicos , federico Santa Fe - Argentina.
'' si pasa el codigo me muestra los campos del articulo en el datagrid
' Dim cod As String
' cod = ""
' cod = "Idarticulo =" + Trim(DG1.Text)
' dtetecno.rsart.MoveFirst
' dtetecno.rsart.Find cod, 0, adSearchForward
'
' If dtetecno.rsart.EOF Then
' DG1.Col = 1
' DG1.Text = ""
' Else
' DG1.Col = 1
' DG1.Text = dtetecno.rsart!detalle
' DG1.Col = 2
' DG1.Text = dtetecno.rsart!tipo
' DG1.Col = 4
' DG1.Text = dtetecno.rsart!puint
' End If
salio:
End If

If DG1.Col = 3 Then
Dim uno, dos, TOTAL2, por1, por2 As Single
DG1.Col = 3
uno = DG1.Text
DG1.Col = 4
dos = DG1.Text

DG1.Col = 3

If IsNumber(DG1.Text) Then
Cancel = False 'deja salir el textbox
Else
Cancel = True
MsgBox "El dato ingresado debe ser numerico"
GoTo vuelve:
End If
por1 = porcentaje * dos
por2 = por1 + dos
TOTAL1 = uno * por2

DG1.Col = 5
DG1.Text = TOTAL1

If DG1.Col = 5 Then

DG1.Col = 0
DG1.LeftCol = 0
dtetecno.rsingreso.AddNew
DG1.Col = 5
DG1.Text = 0
Form1.DG1.Col = 0
Form1.DG1.LeftCol = 0
DG1.Refresh
'DG1.Col = 0
'DG1.SetFocus
txtfecha.Text = Date
End If

DG1.Col = 0
DG1.LeftCol = 0
End If

vuelve:
Form1.DG1.Col = 0
Form1.DG1.LeftCol = 0

'DG1.Col = 0
'DG1.SetFocus

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder