Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

error de complicion: Procedimiento demasiado largo

Estas en el tema de error de complicion: Procedimiento demasiado largo en el foro de Visual Basic clásico en Foros del Web. Cita: error de complicion: Procedimiento demasiado largo me sale ese error etiendo que es es muy largo el codigo, pero no se como se soluciono, ...
  #1 (permalink)  
Antiguo 11/05/2010, 20:03
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación error de complicion: Procedimiento demasiado largo

Cita:
error de complicion: Procedimiento demasiado largo

me sale ese error etiendo que es es muy largo el codigo, pero no se como se soluciono, espero su respuesta explicada con manzanas


muuuchas gracias denuevo
  #2 (permalink)  
Antiguo 11/05/2010, 20:08
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 11 meses
Puntos: 10
Respuesta: error de complicion: Procedimiento demasiado largo

Seguro estas llamando a un sub dentro de otro varias veces, lo que puedes hacer es reducir y optimizar codigo por que recuerdo haber leido otros post similares y no se solucionaron.

Coloca el codigo para que ver que es lo que estas haciendo, quizar redundas codigo o tienen bucles sin terminar o que se yo.

saludos
  #3 (permalink)  
Antiguo 11/05/2010, 20:15
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: error de complicion: Procedimiento demasiado largo

hay esta lo que alcanzo pero el resto es mas de lo mismo, son varios if como este. No se me ocurrio otra forma:
Cita:
login.C7 = Combo7.Text
For i = o To 9
List1(i).Clear
Next

If Not IsNull(DTPicker1.Value) And login.C4 <> "" And login.C5 <> "" And login.C6 <> "" And login.C7 <> "" Then
If login.est = True Then
login.rst.Close
Else
End If

login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
While login.rst.EOF = False
List1(0).AddItem login.rst(0)
login.rst.MoveNext
Wend
login.rst.Close
login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
While login.rst.EOF = False
List1(1).AddItem login.rst(1)
login.rst.MoveNext
Wend
login.rst.Close
login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
While login.rst.EOF = False
List1(2).AddItem login.rst(2)
login.rst.MoveNext
Wend
login.rst.Close
login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
While login.rst.EOF = False
List1(3).AddItem login.rst(3)
login.rst.MoveNext
Wend
login.rst.Close
login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
While login.rst.EOF = False
List1(4).AddItem login.rst(4)
login.rst.MoveNext
Wend
login.rst.Close
login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
While login.rst.EOF = False
List1(5).AddItem login.rst(5)
login.rst.MoveNext
Wend
login.rst.Close
login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
While login.rst.EOF = False
List1(6).AddItem login.rst(6)
login.rst.MoveNext
Wend
login.rst.Close
login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
While login.rst.EOF = False
List1(7).AddItem login.rst(7)
login.rst.MoveNext
Wend
login.rst.Close
login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
While login.rst.EOF = False
List1(8).AddItem login.rst(8)
login.rst.MoveNext
Wend
login.rst.Close
login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
While login.rst.EOF = False
List1(9).AddItem login.rst(9)
login.rst.MoveNext
Wend

End If

muuuchas gracias
  #4 (permalink)  
Antiguo 12/05/2010, 01:46
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: error de complicion: Procedimiento demasiado largo

en este enlace sale una posible solucion, pero no se como se hace, me pueden ayudar porfavor
http://www.forosdelweb.com/f69/error...3/#post1219668
  #5 (permalink)  
Antiguo 13/05/2010, 01:19
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación Respuesta: error de complicion: Procedimiento demasiado largo

Cita:
Iniciado por franko1809 Ver Mensaje
Seguro estas llamando a un sub dentro de otro varias veces, lo que puedes hacer es reducir y optimizar codigo por que recuerdo haber leido otros post similares y no se solucionaron.

Coloca el codigo para que ver que es lo que estas haciendo, quizar redundas codigo o tienen bucles sin terminar o que se yo.

saludos
porfavor necesito una respuesta urgente
  #6 (permalink)  
Antiguo 13/05/2010, 03:48
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 4 meses
Puntos: 29
Respuesta: error de complicion: Procedimiento demasiado largo

Por que no creas una sub con todo ese código repetido?

loginsql list1(0)
loginsql list1(1)
etc...

Código vb:
Ver original
  1. Sub Loginsql(List as Listbox)
  2.  
  3. login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
  4.  
  5. login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
  6.  
  7. While login.rst.EOF = False
  8.   List.AddItem login.rst(List.Index)
  9.   login.rst.MoveNext
  10. Wend
  11.  
  12. login.rst.Close
  13.  
  14. End Sub

Así reduces código y encuentras mejor los errores.

Suerte
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #7 (permalink)  
Antiguo 13/05/2010, 11:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación Respuesta: error de complicion: Procedimiento demasiado largo

Cita:
Iniciado por pkj Ver Mensaje
por que no creas una sub con todo ese código repetido?

Loginsql list1(0)
loginsql list1(1)
etc...

Código vb:
Ver original
  1. sub loginsql(list as listbox)
  2.  
  3. login.sql = "select distinct * from requerimiento where numero = '" + login.c4 + "' and sucursal '" + login.c5 + "' and depto = '" + login.c6 + "' and funcionario = '" + login.c7 + "' fecha = '" & dtpicker1.value & "'and estado = '" + login.val + "'"
  4.  
  5. login.rst.open login.sql, login.cnn, adopendynamic, adlockoptimistic
  6.  
  7. while login.rst.eof = false
  8.   list.additem login.rst(list.index)
  9.   login.rst.movenext
  10. wend
  11.  
  12. login.rst.close
  13.  
  14. end sub

así reduces código y encuentras mejor los errores.

Suerte
y la condicion??, SON VARIOS IF DISTINTOS, LA VERDAD NO ENTIENDO MUCHO "#
Sub Loginsql(List as Listbox)"

Última edición por carnero; 13/05/2010 a las 12:19
  #8 (permalink)  
Antiguo 13/05/2010, 14:48
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 4 meses
Puntos: 29
Respuesta: error de complicion: Procedimiento demasiado largo

Lo siento si no entiendo las bases de datos y te estoy haciendo perder el tiempo, pero yo no veo comparaciones. Solo veo este código:

login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
While login.rst.EOF = False
List1(7).AddItem login.rst(7)
login.rst.MoveNext
Wend
login.rst.Close

repetido una y otra vez, y donde solo cambia el numero de listbox y otra matriz que no entiendo pero que tiene el mismo indice que el listbox.

Si como dices, el procedimiento es demasiado largo y puedes reemplazar todas esas repeticiones por una línea cortita como "Loginsql list1(7)", podría ser una solución.
Si es el código lo que está mal, tambien sería una forma de encontrar el error mas fácil.

Solo es una sugerencia. Otra cosa no puedo aconsejarte porque ya te digo que las bases de datos ni las conozco ni tengo interés en aprender.

Saludos y que se dé bien.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #9 (permalink)  
Antiguo 13/05/2010, 16:39
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: error de complicion: Procedimiento demasiado largo

la verdad que te entendi lamitad, pero con eso pude llegar a mi solucion

Código vb:
Ver original
  1. Sub Loginsql(List As ListBox)
  2.  
  3.                          For i = 0 To 9
  4.                                List1(i).AddItem login.rst(i)
  5.                           Next
  6.                                 login.rst.Close
  7. End Sub

muchas gracias, no te leia del año pasado jajaajaj

saludos

Última edición por carnero; 13/05/2010 a las 17:14
  #10 (permalink)  
Antiguo 13/05/2010, 19:29
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 11 meses
Puntos: 10
Respuesta: error de complicion: Procedimiento demasiado largo

Que tal codigo menos mal que lo solucionaste.
Código vb:
Ver original
  1. login.C7 = Combo7.Text
  2. For i = o To 9
  3.     List1(i).Clear
  4. Next
  5.  
  6. If Not IsNull(DTPicker1.Value) And login.C4 <> "" And login.C5 <> "" And login.C6 <> "" And login.C7 <> "" Then
  7.    If login.est = True Then
  8.       login.rst.Close
  9.    Else
  10.    End If
  11.  
  12.    login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
  13.    login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
  14.    While login.rst.EOF = False
  15.      List1(0).AddItem login.rst(0)
  16.      login.rst.MoveNext
  17.    Wend
  18.    login.rst.Close
  19.  
  20.    login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
  21.    login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
  22.    While login.rst.EOF = False
  23.      List1(1).AddItem login.rst(1)
  24.      login.rst.MoveNext
  25.    Wend
  26.    login.rst.Close
  27.  
  28.    login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
  29.    login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
  30.    While login.rst.EOF = False
  31.      List1(2).AddItem login.rst(2)
  32.      login.rst.MoveNext
  33.    Wend
  34.    login.rst.Close
  35.  
  36.    login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
  37.    login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
  38.    While login.rst.EOF = False
  39.      List1(3).AddItem login.rst(3)
  40.      login.rst.MoveNext
  41.    Wend
  42.    login.rst.Close
  43.  
  44.    login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
  45.    login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
  46.    While login.rst.EOF = False
  47.      List1(4).AddItem login.rst(4)
  48.      login.rst.MoveNext
  49.    Wend
  50.    login.rst.Close
  51.  
  52.    login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
  53.    login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
  54.    While login.rst.EOF = False
  55.      List1(5).AddItem login.rst(5)
  56.      login.rst.MoveNext
  57.    Wend
  58.    login.rst.Close
  59.  
  60.    login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
  61.    login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
  62.    While login.rst.EOF = False
  63.      List1(6).AddItem login.rst(6)
  64.      login.rst.MoveNext
  65.    Wend
  66.    login.rst.Close
  67.  
  68.    login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
  69.    login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
  70.    While login.rst.EOF = False
  71.      List1(7).AddItem login.rst(7)
  72.      login.rst.MoveNext
  73.    Wend
  74.    login.rst.Close
  75.  
  76.    login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
  77.    login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
  78.    While login.rst.EOF = False
  79.      List1(8).AddItem login.rst(8)
  80.      login.rst.MoveNext
  81.    Wend
  82.    login.rst.Close
  83.  
  84.    login.SQL = "SELECT DISTINCT * FROM requerimiento where numero = '" + login.C4 + "' and sucursal '" + login.C5 + "' and depto = '" + login.C6 + "' and funcionario = '" + login.C7 + "' fecha = '" & DTPicker1.Value & "'and estado = '" + login.val + "'"
  85.    login.rst.Open login.SQL, login.cnn, adOpenDynamic, adLockOptimistic
  86.    While login.rst.EOF = False
  87.      List1(9).AddItem login.rst(9)
  88.      login.rst.MoveNext
  89.    Wend
  90.  
  91. End If
  #11 (permalink)  
Antiguo 13/05/2010, 21:52
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 17 años, 4 meses
Puntos: 20
Respuesta: error de complicion: Procedimiento demasiado largo

Hasta se me hace que lo podrias solucionar directamente con SQL y un INSERT INTO en vez de es WHILE, pero bueno no entiendo bie tu codigo
  #12 (permalink)  
Antiguo 13/05/2010, 22:14
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: error de complicion: Procedimiento demasiado largo

es que la idea es que vea las distintas posibilidades y con la solucion que esta postiada mas arriba, no es necesario que haga una consulta para llenar cada lista ( son 9 ), con una sola consulta lleno las 9 y todo funciona bien

Etiquetas: largo, procedimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:47.