tengo un problemilla ayudenme porfa

angel11
19 de Diciembre del 2003
hola .....
estoy relizando un sistema de inventarios lo uqe quiero hacer es poner un numero de inventario en un text y que me arroje en los demas text o labels informacion de otros campos de la tabla pero tengo este codigo y no me salen los registros en los labels alguien me podria dar una ayudadita o decirme en que estoy mal este el codigo que tengo

Private Sub Text8_Change()
db1.rsinventarios.MoveFirst
Do While db1.rsinventarios.EOF <> True
If db1.rsinventarios.Fields("idnoinv_inv") = Text8.Text Then
Label1.Caption = db1.rsinventarios.Field ("serie_inv")
Label2.Caption = db1.rsinventarios.Fields("marca_inv")
End If
db1.rsinventarios.MoveNext
Loop



End Sub

kinoscar
19 de Diciembre del 2003
por lo que veo lo que quieres hacer es una busqueda, pues bien te sugiero esto

Private Sub Text8_Change()
db1.rsinventarios.MoveFirst
db1.rsinventarios.find "idnoinv_inv=" & text8.text
if db1.rsiventario.eof=false then
Label1.Caption = db1.rsinventarios.Field ("serie_inv")
Label2.Caption = db1.rsinventarios.Fields("marca_inv")
End If
end sub

te sugiero que este codigo de busqueda lo pusieras en un boton porque por cada cambio que se haga en en textbox este se ejecutara, no se que estas utilizando para las conexiones si ado, dao pero este codigo deberia funionarte con ambos.

suerte

Alexis
19 de Diciembre del 2003
Primero controlo que el texto sea texto y no tenga espacio, porn LTRIM(), despues, si qieres no pongas los nombres de los registros si no que asi:
Private Sub Text8_Change()
db1.rsinventarios.MoveFirst
Do While db1.rsinventarios.EOF <> True
If db1.rsinventarios.Fields("idnoinv_inv") = rtrim(ltrim(Text8.Text)) Then
Label1.Caption = db1.rsinventarios.Field ("serie_inv")
Label2.Caption = db1.rsinventarios.Fields("marca_inv")
End If
db1.rsinventarios.MoveNext
Loop

Baltasar
19 de Diciembre del 2003
Hace tiempo que descubrí que el método FIND es lentísimo, así que aconsejo usar una consulta SQL para la búsqueda:

set MRS=MDB.openrecordset("select * from inventario where idnoinv= '" & text8 & "'")
if not MRS.eof then
Label1.Caption = MRS!serie_inv
Label2.Caption = MRS!marca_inv
endif

Les aseguro que la diferencia , si la base de datos es algo grande, es increible. Yo antes usaba mucho el método find, porque así lo decían los libros, pero cuando decidí pasar a hacer todo a base de consultas SQL, procesos que antes tardaba entre 6 y 7 segundos, ahora tarda milésimas de segundo (prometido) en tablas de 3.000 registros.

Saludos

kinoscar
19 de Diciembre del 2003
supongo que lo que dices baltazar depende mucho de la forma en que trabajes ya que en mi caso ha sido todo lo contrario me ha pasado que un find me anda mas rapido que un sql y que un filter anda mas rapido que un find, eso si que mi forma de trabajo es distinta a la tuya, asi que asumo que ahi es donde esta la diferencia, ademas detecto esto cuando trabaja en una maquina de 366 mhz.