Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: oscardiaz en 20 Septiembre 2009, 02:35 am



Título: buscar registros en excel con vb
Publicado por: oscardiaz en 20 Septiembre 2009, 02:35 am
 Buenas Sres.
    Busque y busque y solo encontre algo como esto :

                     Private Sub Command1_Click()
                           Dim nro As Integer
                           nro = Val(InputBox("Introduce el Nº"))
                           Data1.Recordset.FindFirst "Nº=" & nro
                           If Data1.Recordset.NoMatch Then
                           MsgBox "El Nº: " & nro & " No está en la Base de
                                                      Datos", vbExclamation, "Búsquedas de Nº"
                           End If
                    End Sub

  Se puede buscar un registro de una tabla excel directamente del form q estoy trabajando sin nececidad de tener q usar  "Val(InputBox("...."))"

Gracias


Título: Re: buscar registros en excel con vb
Publicado por: seba123neo en 20 Septiembre 2009, 04:03 am
Hoal, ¿¿ estas trabajando en VBA ?? no entendi que estas usando,no sera Access ??

saludos.


Título: Re: buscar registros en excel con vb
Publicado por: oscardiaz en 20 Septiembre 2009, 04:18 am
vb6 y con una tabla en excel.
Quiero hacer algo así como cuando se introduce un nombre y contraseña y el programa los busca en una base de datos.
Tengo dos campos "Nº" y "Sección" y dos textbox. En un textbox escribir el nro. y q el otro muestre el registro asociado.


Título: Re: buscar registros en excel con vb
Publicado por: oscardiaz en 20 Septiembre 2009, 04:22 am
El código que escribí arriba sirve bien pero debo ingresar el nro. en un inputbox q aparece y es esto lo que quiero evitar.


Título: Re: buscar registros en excel con vb
Publicado por: oscardiaz en 20 Septiembre 2009, 19:49 pm
Bueno el asunto es q quiero sumar los registros correspondientes a la sección de varios alambres y queria hacer la busqueda un poco más rapida.... La cosa es q cuando empecé a sumar secciones el resultado fue algo inesperado... y no se cual puede ser el error, Código :

Private Sub Command2_Click()

Dim S As Single  'Sección
Dim n As Single   'Nº Conductores
Dim ST As Single   'Sección Total
S = Text2.Text
n = Text3.Text
ST = S * n
Label4.Caption = ST + Val(Label4)

End Sub

Y el resultado en el Label tiene demsiados decimales y la suma no es la correcta, hay variaciones de un nuero y los decimales no son los q deverían.
Alguna ayudita plis


Título: Re: buscar registros en excel con vb
Publicado por: seba123neo en 20 Septiembre 2009, 20:02 pm
pone que valores le estas poniendo y que valor te da la suma, asi vemos que esta mal...


Título: Re: buscar registros en excel con vb
Publicado por: oscardiaz en 20 Septiembre 2009, 21:05 pm
 Son valores con cuatro decimales (aquí mm2)

AWG         mm2

  1           42,4000
  2           33,6000
  3           26,7000
  4           21,2000
  5           16,8000
  6           13,3000
  7           10,5000
  8            8,3700
  9            6,6300
......

y por ej al escojer solo el primer valor 42,4000 en el label sale 42,4000015258. Si a este le sumo el segundo 33,6000 deberia arrojar por lo menos 79,00000152 pero arroja 75,5999984741, etc. (como hago para mostrar el form aquí ,je)


Título: Re: buscar registros en excel con vb
Publicado por: Novlucker en 20 Septiembre 2009, 21:16 pm
No entiendo ... 42+33 = 75 .. más los decimales da "75,algo" ... como dices que debería de dar por lo menos 79?  :o

El código que escribí arriba sirve bien pero debo ingresar el nro. en un inputbox q aparece y es esto lo que quiero evitar.

No lo pongas en un input, pasalo como valor directamente

Saludos


Título: Re: buscar registros en excel con vb
Publicado por: oscardiaz en 20 Septiembre 2009, 21:27 pm
Perdón dí vuelta el 6.. tienes razón... Bueno la cuestión es que el resultado no lo entrega con cuatro decimales y me entrega 9 o 10 de estos siendo q yo le ingreso los numeros de la tabla q tienen solo 4.


Título: Re: buscar registros en excel con vb
Publicado por: oscardiaz en 20 Septiembre 2009, 21:31 pm
Usé lo sgte. pero tampoco lo consigo:

Label4.Caption = Format((ST + Val(Label4)), "0,000")


Título: Re: buscar registros en excel con vb
Publicado por: oscardiaz en 21 Septiembre 2009, 01:37 am
Y por último... el sgte cod suma solo los enteros y no los decimales como decimal solo muestra el del nuevo numero sumado, ej   42,4000 + 33,6000 = 75,6000

Private Sub Command2_Click()

Dim S As Single  'Sección
Dim n As Integer   'Nº Conductores
Dim ST As Single   'Sección Total
Dim suma As Single
S = Text2.Text
n = Text3.Text
ST = S * n
suma = Val(Label4.Caption)
Label4.Caption = ST + suma

End Sub

 :huh: :-\ >:( :-(


Título: Re: buscar registros en excel con vb
Publicado por: Novlucker en 21 Septiembre 2009, 01:51 am
No uses val, pierdes los decimales ....

Ej:
Código
  1. Msgbox val(5,12345)

En su lugar utiliza cdbl para tomar números decimales
Y sobre el format, no va con coma, va con punto

Ej:
Código
  1. Msgbox format("5,12345","0.000")

Saludos


Título: Re: buscar registros en excel con vb
Publicado por: oscardiaz en 21 Septiembre 2009, 02:20 am
Vale gracias... ok lo del format pero al usar CDbl me sale error "13 Type mismatch" y no se que es


Título: Re: buscar registros en excel con vb
Publicado por: Novlucker en 21 Septiembre 2009, 02:53 am
En que parte te sale? no debería de date ningún error  :-\

Saludos


Título: Re: buscar registros en excel con vb
Publicado por: oscardiaz en 21 Septiembre 2009, 03:56 am
En :

     suma = CDbl(Label4.Caption)



Título: Re: buscar registros en excel con vb
Publicado por: seba123neo en 21 Septiembre 2009, 04:11 am
que valor hay en el label4 ??  debe haber un valor que no es numero para que tire ese error...


Título: Re: buscar registros en excel con vb
Publicado por: oscardiaz en 21 Septiembre 2009, 05:11 am
   En Label4 se muestra la suma de un valor encontrado mas un valor q se estaba mostrando previamemente en el mismo Label. Osea:
   Inicio el form, todo en blanco, encuentro dato buscado, clik, Label4 muestra valor asociado al dato, sobre el mismo form busco nuevo dato y al hacer clik el mismo Label4 muestra la suma del nuevo valor más el valor anterior q estaba.
En resumen el código es como sigue:



Private Sub Command2_Click()

    Dim S As Single        'Valor
    Dim suma As Single   'Variable q guarda lo q se muestra en Label4

    S = Text2.Text         'Valor encontrado

    suma = CDbl(Label4.Caption)    'En la variable suma guardo lo que muestra el Label4
    Label4.Caption = S + suma     'El Label4 muestra el valor encontrado mas lo q se estaba mostrando en este mismo Label4

End Sub



   Entonces Label4 tiene un valor Single, los valores que sumo los saco de una tabla excel donde estan declarados como "Número" y tienen 4 cifras decimales.
 
   Con    suma = Val(Label4.Caption)   se realiza la suma pero sólo de la parte entera y no la decimal.

   Con    suma = CDbl(Lablel4.Caption)   arroja error

Saludos


Título: Re: buscar registros en excel con vb
Publicado por: oscardiaz en 23 Septiembre 2009, 04:46 am
Seguí una indicación q ví mucho en este foro y q es algo así como :
     " Busca en goole y encontraras"
Sumado a mucha ayuda recibida de parte vuestra y logré lo que quería. Para un novato como yo esto es cool