• Domingo 22 de Diciembre de 2024, 14:47

Autor Tema:  Procedimiento Demasiado Largo?  (Leído 6455 veces)

_vgt_

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Procedimiento Demasiado Largo?
« en: Jueves 23 de Diciembre de 2004, 10:08 »
0
mmmmmmmm pues eso... estoy probando un procedimiento de introduccion de datos en una bd y me dice eso, k el procedimiento es demasiado largo :huh: ... hay alguna forma de saltarse ese error?...

muxas asias !!!
...solo los perdedores alegan haber hexo lo k han podido...

Sagutxo

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Procedimiento Demasiado Largo?
« Respuesta #1 en: Jueves 23 de Diciembre de 2004, 12:15 »
0
Salu2.
¿Puedes poner el trozo de código donde te da el error?. sino será muy difícil ayudarte.

 :comp:
Mi mujer tiene un físico bárbaro!!!. Einstein.

_vgt_

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Procedimiento Demasiado Largo?
« Respuesta #2 en: Jueves 23 de Diciembre de 2004, 13:36 »
0
Es k es una cosa un poco rara xk no me da el error en una linea de código concreta sino k se pone a ejecutar un procedimiento y de repente me saca un msgbox diciendome k el procedimiento es demasiado largo... de todas formas te pongo el "chorizo" de codigo x si soy yo desde mi inmensa garrulidad xD

(te agradeceria tb k si existe otra forma de hacerlo k sea menos "garrula", como verás actualizo el contenido del almacen  con el contenido de las cajas de texto en donde el usuario ha escrito... ufff, un poco liosillo...)

Muchas gracias de antemano  :lol:
ahi va eso:
[CODE]
'-------------------------------------------------------------------------------------------
If fraArticulo(0).Visible = True Then
   
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla1") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades1") = adcArticulos.Recordset.Fields("Unidades1") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
   
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla2") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades2") = adcArticulos.Recordset.Fields("Unidades2") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla3") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades3") = adcArticulos.Recordset.Fields("Unidades3") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla4") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades4") = adcArticulos.Recordset.Fields("Unidades4") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla5") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades5") = adcArticulos.Recordset.Fields("Unidades5") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla6") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades6") = adcArticulos.Recordset.Fields("Unidades6") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla7") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades7") = adcArticulos.Recordset.Fields("Unidades7") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla8") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades8") = adcArticulos.Recordset.Fields("Unidades8") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla9") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades9") = adcArticulos.Recordset.Fields("Unidades9") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla10") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades10") = adcArticulos.Recordset.Fields("Unidades10") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla11") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades11") = adcArticulos.Recordset.Fields("Unidades11") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla12") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades12") = adcArticulos.Recordset.Fields("Unidades12") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla13") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades13") = adcArticulos.Recordset.Fields("Unidades13") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla14") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades14") = adcArticulos.Recordset.Fields("Unidades14") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla15") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades15") = adcArticulos.Recordset.Fields("Unidades15") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla16") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades16") = adcArticulos.Recordset.Fields("Unidades16") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
   
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla17") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades17") = adcArticulos.Recordset.Fields("Unidades17") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla18") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades18") = adcArticulos.Recordset.Fields("Unidades18") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
   
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla19") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades19") = adcArticulos.Recordset.Fields("Unidades19") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If
   
    If Text13(0).Text = adcArticulos.Recordset.Fields("Talla20") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades20") = adcArticulos.Recordset.Fields("Unidades20") - Val(Text14(0).Text)
        adcArticulos.Recordset.Update
       
    End If

End If

If fraArticulo(1).Visible = True Then

    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla1") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades1") = adcArticulos.Recordset.Fields("Unidades1") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
   
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla2") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades2") = adcArticulos.Recordset.Fields("Unidades2") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla3") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades3") = adcArticulos.Recordset.Fields("Unidades3") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla4") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades4") = adcArticulos.Recordset.Fields("Unidades4") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla5") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades5") = adcArticulos.Recordset.Fields("Unidades5") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla6") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades6") = adcArticulos.Recordset.Fields("Unidades6") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla7") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades7") = adcArticulos.Recordset.Fields("Unidades7") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla8") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades8") = adcArticulos.Recordset.Fields("Unidades8") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla9") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades9") = adcArticulos.Recordset.Fields("Unidades9") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla10") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades10") = adcArticulos.Recordset.Fields("Unidades10") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla11") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades11") = adcArticulos.Recordset.Fields("Unidades11") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla12") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades12") = adcArticulos.Recordset.Fields("Unidades12") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla13") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades13") = adcArticulos.Recordset.Fields("Unidades13") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla14") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades14") = adcArticulos.Recordset.Fields("Unidades14") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla15") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades15") = adcArticulos.Recordset.Fields("Unidades15") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla16") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades16") = adcArticulos.Recordset.Fields("Unidades16") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
   
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla17") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades17") = adcArticulos.Recordset.Fields("Unidades17") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla18") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades18") = adcArticulos.Recordset.Fields("Unidades18") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
   
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla19") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades19") = adcArticulos.Recordset.Fields("Unidades19") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If
   
    If Text13(1).Text = adcArticulos.Recordset.Fields("Talla20") Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields("Unidades20") = adcArticulos.Recordset.Fields("Unidades20") - Val(Text14(1).Text)
        adcArticulos.Recordset.Update
       
    End If

End If
'----------------------------------------------------------------------------------------------
...solo los perdedores alegan haber hexo lo k han podido...

Sagutxo

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Procedimiento Demasiado Largo?
« Respuesta #3 en: Jueves 23 de Diciembre de 2004, 17:09 »
0
Es posible que tengas demasiados if prueba a ponerlos con un
SELECT case Text13(0).Text

case patatin

case patatan

   Comento, tengo la sensacion de que hay excesivo codigo ademas veo que en el campo de comprobacion if solo cambia el último número lo que supuestamente hace mas facil la reducción del codigo. Me encantaría orientarte, pero hasta ahora no me ha hecho falta utilizar el evento .fields en mis aplicaciones, y no tengo ni idea de que es lo que hace. si puedo luego telo miro.

Suerte.Agur.
Mi mujer tiene un físico bárbaro!!!. Einstein.

_vgt_

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Procedimiento Demasiado Largo?
« Respuesta #4 en: Jueves 23 de Diciembre de 2004, 18:51 »
0
Con el adc.recordset.fields ("nombre del campo") haces referencia a un campo de una base de datos... x ejemplo en el codigo ese k he puesto lo k estoy haciendo es meter en el campo unidades1 el valor de una caja de texto...  yo suelo usarlo muxo xk no me gusta enlazar las cajas de texto (x ejemplo) a la base de datos... no se, pa gustos colores... soy un poco raro programando y mis profesores dicen k a veces me rallo demasiado xD

Saludos y gracias !!
...solo los perdedores alegan haber hexo lo k han podido...

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Procedimiento Demasiado Largo?
« Respuesta #5 en: Jueves 23 de Diciembre de 2004, 21:04 »
0
A ver, te hago el mismo comentario que hace Sagutxo, intenta utilizando una estructura de decisión Select Case... End Case en tu procedimiento. Además, no creo que el uso de esta línea de código sea el correcto:

Citar
   If Text13(0).Text = adcArticulos.Recordset.Fields("Talla1") Then

Me explico, adcArticulos.Recordset.Fields("Talla1") le indica a VB, por decirlo de alguna manera, que tome en cuenta un campo determinado ya sea para leer de él algún dato o para escribir en el mismo. En el caso de que desees leer un valor de ese campo tienes que indicarlo mediante alguna instrucción (creo que me hice un lío tratando de expresar la idea. Lo que quiero decir es que dicha instrucción no dice sobre qué registro específico deseas hacer la lectura del valor).

Tu código podría ser algo como esto:

Código: Text
  1.  
  2. Select Case Text13(0).Text
  3.  
  4.    Case "Talla1"
  5.  
  6.    Case "Talla2"
  7.  
  8.    .
  9.    .
  10.    .
  11.    Case "TallaN"
  12.  
  13. End Select
  14.  
  15.  


Espero que sea de alguna utilidad.


DiabloRojo

_vgt_

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Procedimiento Demasiado Largo?
« Respuesta #6 en: Jueves 23 de Diciembre de 2004, 21:12 »
0
Muxas gracias DiabloRojo... tomo buena nota  :lol:
...solo los perdedores alegan haber hexo lo k han podido...

desarrollo

  • Miembro activo
  • **
  • Mensajes: 74
    • Ver Perfil
Re: Procedimiento Demasiado Largo?
« Respuesta #7 en: Jueves 23 de Diciembre de 2004, 21:41 »
0
Hola vgt  :lol: ,

la verdad esta un poco extenso el codigo pero lo que quieres es algo en comun.... (como las tallas y sus unidades) lo que pienso que haces en barrerte toda la tabla y solo comparar el campo "talla" y modificar sus "unidades"

Mira lo que yo hize al observar tu codigo es resolver de cierta manera el control adodc (si es que lo utilizas...  :unsure: )

For y = 1 To 20    'determino que tienes 20 tallas
    x = "Talla" & y
    xx = "Unidades" & y
    If Text13(1).Text = adcArticulos.Recordset.Fields(x) Then
        adcArticulos.Recordset.Edit
        adcArticulos.Recordset.Fields(xx) = adcArticulos.Recordset.Fields(xx) - Val(Text14(1).Text)
        adcArticulos.Recordset.Update

    End If
Next y

observar que lo tienes que hacer para cada control del arreglo (osea 2 veces)... ojala te salga - yo no lo probe tal vez sea esa la solucion...

PD: otra manera de llamar a un campo de "adcArticulos.Recordset.Fields(nombrecampo)" puede ser "adcArticulos.Recordset!nombrecampo"  (gracias claudia x ayuda...)

suerte desarrollo  :comp:

_vgt_

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Procedimiento Demasiado Largo?
« Respuesta #8 en: Jueves 23 de Diciembre de 2004, 23:53 »
0
Muxisimas gracias Desarrollo... voy a ver si me kito esas salvajadas de codigo xD

Muchas gracias a todos :lol:
...solo los perdedores alegan haber hexo lo k han podido...

jhonilson

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Procedimiento Demasiado Largo?
« Respuesta #9 en: Miércoles 29 de Diciembre de 2004, 18:44 »
0
:comp: Yo tuve ese problema y por desgracia mi codigo no se podia resumir y lo hice  fue lo siguiente: pique el codigo en dos uno mas grande que el otro lo suficiente como para que no me arrojase el error:Procedimiento demasiado largo(este error se debe a que dentro de un control el codigo no debe exceder de los 64 kb), luego agregue otro command2 con la propiedad visible=false y el trozo que le quite a mi codigo se lo agregue a este. Despues solo te queda llamar a este asi: call command2_click y este ejecutara el codigo.
   Observa que para esto debes saber muy bien donde vas a picar tu codigo, por ejemplo: si tienes un pocoton de condicional, entonces en algunos condicionales(en los que esten sobrando y dandote errores por ocupar tanto espacio) coloca el evento Call command2_click(). Yo no he leido tu codigo porque me da flojera, pero ten por seguro te esto te va a funcionar a la perfeccion, ya que conmigo funciono, alguna preguntaal respecto no dudes en preguntarme.

_vgt_

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Procedimiento Demasiado Largo?
« Respuesta #10 en: Miércoles 29 de Diciembre de 2004, 23:25 »
0
Muchas gracias jhonilson siempre es bueno tener un plan B x si acaso no hubiera forma de reducir el codigo  :lol:  De todas formas conseguí reducirlo y ahora me estoy dedicando a kitar chorizos de esos de codigo de la aplicacion...  :whistling:

Muchas gracias de nuevo !!   :hola:
...solo los perdedores alegan haber hexo lo k han podido...