654380491
hola@carlosdk.com
Login
[miniorange_social_login]

Login with your site account

Lost your password?

Carlos DK Carlos DK
  • Inicio
  • Kit digital
  • Universo Dk
  • Blog
  • Contacto
Back
  • Inicio
  • Kit digital
  • Universo Dk
  • Blog
  • Contacto
  • Home
  • Blog
  • Tutoriales formativos
  • Bucle For-Next en Visual Basic 6 (vb6)

Tutoriales formativos

06 May

Bucle For-Next en Visual Basic 6 (vb6)

  • By Carlos Dk
  • In Tutoriales formativos
  • 0 comment

Bienvenidos a Ver Tutoriales.com, en esta ocasión voy a exponer el código de un bucle for next en visual basic 6 (vb6).

He recibido un par de correos diciendome en el post anterior que no expuse el código de visual basic 6 (vb6), es cierto, pasé por alto ese detalle suponiendo que no tendrían problema en adaptarlo, pero cierto es, que me equivoqué ya que no todos tenemos el mismo nivel, ni el mismo conocimiento. Y aquí estamos para ayudar, así que para que todos aprendamos…

Este breve artículo va dirigido a Roberto y Capuchón dos iniciados en Vb6 con muchas ganas de aprender y que me están siguiendo desde hace tiempo.

Bueno vamos al lio. Voy a exponer el código “base”:

For contador = inicio to fin [Step]

[exit for]

Next

Vamos a ver paso por paso que es cada elemento del bucle for:

– contador, es la variable de control, es donde se irá almacenando cada una de las vueltas del bucle,

– inicio, el valor inicial del bucle.

– fin, el valor donde ha de terminar

– step (opcional), el valor del sumatorio (puede ser negativo)

– exit for (opcional) para romper el flujo del bucle y salir directamente.

Con esto quedaría explicado el bucle tal y como hicimos en Flex. Aún así pondré un ejemplo con valores para dejarlo más claro:

For contador = 0 to 10 step 2

‘ hacemos cosas repitiendose

Next contador

En este caso utilizamos step por que vamos a ir de 2 en 2, si fuera de 1 en 1 no habría que ponerlo aunque no daría error al utilizarlo con 1. Cerramos con Next contador, que aunque tampoco hace falta poner el nombre de la variable de control del bucle, es aconsejable ponerla.

Espero que quede aclarada la duda. Tambien os pediría que si os surgen dudas con respecto al artículo que lo comenteis en vez de enviarme el correo, así nos ahorramos tiempo y tambien lo compartimos con todos.

Un saludo!

Tags:codigoProgramacionvb6
  • Share:
Carlos Dk

You may also like

Crear categorías y configurar menú en WordPress en 4 min.

  • marzo 3, 2019
  • by Carlos Dk
  • in Tutoriales formativos
Crear categoría y menú WordPress Es indispensable en una nueva instalación de WordPress, crear las...
Instalar tema en WordPress en 2 pasos
febrero 23, 2019
Actualizar MySQL 5.1 a 5.6 en CentOS 6.9 con Plesk como panel
octubre 20, 2018
Recorrer todos los objetos de una capa o del DOM completo con JQuery
diciembre 22, 2014

    Comments

  1. eddys betancourt
    octubre 20, 2010

    hola,soy nuevo en visual 6 no tengo muchos conosimientos en programacion pero lla llebo 2 meses seguidos intentando hacer un programa y me e estancado en algo que quisiera preguntar. para ver si me pueden ayudar
    estoy haciendo mi propio reproductor de mp3 con buscador y lista de reproducion, no es nada nuevo pero lo importante es que lo estoy haciendo yo y eso me sube la moral.
    por ahora solo quiero que me respondan aunque el saludo para poder saber si cuento con ustedes para darme una manito en mi programa

    Responder
    • VideoTutoriales
      octubre 20, 2010

      Hola Eddys!

      Claro que sí, estamos para ayudar.

      Dispara cuando quieras!

      Responder
  2. roberth
    enero 7, 2011

    hola q tal soy estudiante de computacion e informatica de primer ciclo y necito saber mas sobre visual basic por favor necito todo el material relacionado con dicho programa por favor es urgente grasias

    Responder
    • VideoTutoriales
      enero 8, 2011

      ¿Algo en concreto? Visual Basic es amplísimo… si me dices sobre qué quieres programar quizás pueda orientarte.

      Un saludo

      Responder
  3. Gustavo
    febrero 9, 2011

    Estimado, lamento tener que molestarte, pero nesecito solucionar cuanto antes este problema. Te ubico un poco.
    Trabajo en VB6 y tengo un formulario con muchos txt en matriz. los cuales se marcan con una x o vacios. Al momento de actualizar (update) los datos la hace, pero con error, coloca a todos los campos de la tabla el mismo valor. Te dejo una muestra del codigo para que me deis una ayuda.

    Private Sub ActualizaDetalle()
    Dim a As Byte
    For a = 0 To 59

    cnn.Execute “UPDATE ORDENDETALLE set D = ‘” & TxtPD(a) & _
    “‘, C = ‘” & TxtPC(a) & _
    “‘, R = ‘” & TxtPR(a) & _
    “‘, P = ‘” & TxtPP(a) & _
    “‘ where NORDEN = ” & TxtNOrdenRep.Text & “”
    Next a
    End Sub
    Desde ya muchas gracias.

    Responder
    • VideoTutoriales
      febrero 10, 2011

      Veamos, supongo que TxtPC(a) y las siguientes son las cajas, lo que no entiendo es para qué utilizas el index de cada caja de texto, es decir, si tienes un formulario con N cajas, todas las cajas deben de llevar el mismo nombre para que puedas acceder a ellas.

      Ahora mismo con ese código pienso que tienes 4 cajas de texto, TxtPD, TxtPC, TxtPR y TxtPP, y ¿cada una de ellas tienen 60 elementos? si fuera así, tal y como lo tienes estarías guardando el último elemento de las cajas, ya que TxtNOrdenRep.text es invariable, por lo que estás haciendo 60 consultas “where NORDEN = ” TxtNOrdenRep.Text, así que siempre se cumplirá la misma condición para guardar las 60 y por tanto irá guardando una encima de la otra hasta llegar a la última.

      Si me explicas mejor como lo tienes estructurado internamente y como quieres guardarlo te podré ayudar mejor.

      Un saludo!

      Responder
  4. Gustavo
    febrero 10, 2011

    Antes que nada muy agradecido de que respondas y le pongas interes a mi problema. Te cuento, El sistema guarda 60 registros con el mismo numero de una Orden de Trabajo (NORDEN) y con 240 opciones divididas en 4 campos.
    Estas opciones corresponden a partes de un automovil a ser reparado. Copio algunos registros desde la tabla real para ilustrar mejor la idea.
    ID NORDEN DOMINIO ZONA PIEZA D C R P
    122 2 GQN741 D D Paragolpe x x x
    123 2 GQN741 D D Panel de frente
    124 2 GQN741 D D Rejilla de Radiador x x x
    125 2 GQN741 D D Guardabarro Der.
    126 2 GQN741 D D Pasarueda Der.
    y asi hasta llegar a las 60 piezas con las posible reparaciones.

    El formulario tiene 5 matrices TxtPiezas,(TxtPD(0…59), TxtPC(0…59),TxtPR(0…59) , TxtPP(0…59).
    El punto es. Con el sistema puedo guardar en la tabla sin problemas (tal cual el ejemplo anterior) pero en caso de un cambio algunas veces necesito borrar algunas cruces (quitar de la orden de trabajo la reparacion de una pieza), o agregar otras cruces (al momento de la reparacion surgen otras piezas a reparar). y ahi es donde comienza el problema cuando hago un update, me modifica todo y el resultado es nefasto. Te adjunto el codigo que utilizo para grabar en la tabla, quizas te ayuda un poco a entenderme mejor.
    Private Sub GrabaDetalleOr()
    Dim Item As String

    Dim p As Byte

    For p = 0 To 59

    cnn.Execute “INSERT INTO ORDENDETALLE ” & “(NORDEN,DOMINIO,ZONA,PIEZA,D,C,R,P) VALUES(‘” & _
    TxtNOrdenRep & “‘,'” & _
    TxtDominio & “‘,'” & _
    Left(TxtPieza(p), 1) & “‘,'” & _
    TxtPieza(p) & “‘,'” & _
    TxtPD(p) & “‘,'” & _
    TxtPC(p) & “‘,'” & _
    TxtPR(p) & “‘,'” & _
    TxtPP(p) & “‘)”

    Next p

    End Sub
    Otra vez muchas gracias!!!!!!!

    Responder
    • VideoTutoriales
      febrero 10, 2011

      Cuando realizas el update ¿qué es lo que te graba exactamente?

      Una solución rápida sería “delete from ordendetalle where txtnordenrep = ” & norden
      y luego GrabaDetalleOr()

      No es lo más optimo pero se arreglaría, de todas maneras dime qué es lo que te guarda al hacer el update, qué te cambia?

      De todas maneras pensando un poco más, creo que debias de haber separado las piezas en una tabla aparte y las relacionaras por el número de ordenes.

      Ya me cuentas, solo doy posibilidades, no sé por donde llevas el proyecto 🙂

      Responder
  5. Gustavo
    febrero 10, 2011

    Las letras D,C,R,P corresponden a (Desarmar, Cambiar, Reparar, Pintar)
    Cuando yo cargo por primera vez una orden para un vehiculo, el sistema genera En otra tabla (ORDENENCA) los datos del vehiculo y los costos. En una rutina siguiente agrega 60 registros nuevos en la tabla ORDENDETALLE,Marcando con una (x) las casillas correspondientes a la reparacion, y dejando en blanco las que no tienen reparacion. Recien ahi le damos ingreso al vehiculo al taller. Que pasa, en algunos casos luego de comenzar a reparar el auto, surgen cosas nuevas u otras no se reparan, lo que hace que el resultado de la reparcion difiera de la que grabamos en primera instancia.
    Ahora si la pregunta era que resultado arroja la rutina (que esta mal realizada) es el siguiente.
    Si yo borro un x (el error es. pone todos los campos de la tabla en blanco, cuando deberia solo corregir la que yo seleccione)
    Si marco con una x una que estaba en blanco (el error es. pone todos los campos de la tabla con una x, cuando deberia solo corregir la que yo seleccione).
    Si bien la posible solucion que me diste no es lo ideal, por el momento que que es la unica que veo viable, (eliminar todos los registros de la tabla y guardarlos nuevamente).
    Nuevamente muy agradecido por tu dedicacion.

    Responder
    • VideoTutoriales
      febrero 10, 2011

      Según tu consulta de actualización:
      UPDATE ORDENDETALLE set D = ‘” & TxtPD(a) & _
      “‘, C = ‘” & TxtPC(a) & _
      “‘, R = ‘” & TxtPR(a) & _
      “‘, P = ‘” & TxtPP(a) & _
      “‘ where NORDEN = ” & TxtNOrdenRep.Text & “”

      Solo estás tomando NORDEN para definir que cambiar, en cambio deberías de tomar tambien algún campo más, si tienes -> ID NORDEN DOMINIO ZONA PIEZA D C R P
      No puedes solo tomar Norden cuando esa orden la utilizas para diferentes zonas/piezas, tendrás que buscar otro campo que determine que quieres cambiar solo ese campo, lo que estás haciendo es poner el valor a todos los que sean de esa orden. De otra manera y con código:

      “UPDATE ORDENDETALLE set D = ‘” & TxtPD(a) & _
      “‘, C = ‘” & TxtPC(a) & _
      “‘, R = ‘” & TxtPR(a) & _
      “‘, P = ‘” & TxtPP(a) & _
      “‘ where NORDEN = ” & TxtNOrdenRep.Text & “ and zona = ‘Paragolpe’”

      Simplemente tienes que ser más específico.
      No sé si me expliqué bien. Pero me cuentas 🙂

      Responder
  6. Gustavo
    febrero 10, 2011

    Excelente amigo!!!!! a funcionado a la perfeccion!!!! realmente ahora viendolo tal como lo escribiste era un problema realmente muy sencillo, no puedo creer que he estado varios dias con este problema tan simple.
    No se como agrader tu tiempo, tu dedicacion y tan buena onda.
    te dejo mi mail, para lo que pueda ayudarte. gustavocarranza[arroba]gmail.com
    una vez mas muchas gracias!!!!!

    Responder
    • VideoTutoriales
      febrero 11, 2011

      De nada, 4 ojos ven más que 2.

      Puedes twittearme, menearme o facebookearme para agradecermelo.

      Te tomo en cuenta, es posible que podamos hablar, ya que veo que tienes conocimientos en vb6.

      Un saludo!

      Responder
  7. fanny(:
    mayo 26, 2011

    hola! soy estudiante de preparatoria & estamos viendo visual basic D: lo cual para mi es super dificil no compredo muy bien eso y menos lo de los bucles t.t bueno el caso es qe ahora me dejaron hacer un programa que imprima en una caja de texto el cubo de los numeros del 1 al 20 pero no se muy bien como hacerlo, buenoo tego una idea de como empezar pero no se muy bienD: podrian ayudarme?(: por favor! gracias ñ.ñ’

    Responder
    • VideoTutoriales
      mayo 26, 2011

      Bueno, lo primero es saber qué es lo que tienes que hacer, en este caso, el cubo de los números del 1 al 20…
      1 * 1 * 1
      2 * 2 * 2
      …
      20 * 20 * 20

      Entonces a partir de ahí empezamos a verlo para reducir el trabajo y programarlo de manera sencilla. Sabemos que debemos de repetir la operación de 1 a 20 por lo que usaremos un for next y que necesitamos multiplicar la variable del for next y multiplicarla a si misma por tres, primero damos el paso en lenguaje natural

      Repito num = 1; desde 1 a 20
      muestro = num * num * num;
      fin repito

      Creo que con eso ya lo tendrás claro, sino vuelveme a preguntar y vemos donde tienes las dudas.

      Un saludo!

      Responder
  8. hector
    junio 16, 2011

    For I = 1 To I Step 1
    lstordenes.AddItem I
    Next I
    End Sub
    como le hago para k me ponga en una lista 1 2 3 4 ect
    porfas

    Responder
    • VideoTutoriales
      junio 16, 2011

      Buenas Hector

      La metodología está bien, solo que has realizado el bucle con respecto al valor de I

      Hacer I = 1 hasta I (que vale 0) avanza 1
      añade un item con valor I
      repite I

      Como el hasta I vale 0, añadirá solo un valor, para que quede correcto tendrás que cambiar ese valor y poner las veces que quieras, por ejemplo:

      For I = 1 To 4 Step 1
      lstOrdenes.AddItem I
      Next I

      Con esto ya lo tendrías listo

      Responder
  9. adan
    mayo 23, 2012

    hola mi nombre es adan y estudio la preparatoria en informatica y algunas veces me surge problemas para usar while wend y quisiera saber si me podrian dar una ayudadita. y por cierto muy excelentes sus explicaciones para resolver los problemas.

    Responder
    • VideoTutoriales
      mayo 23, 2012

      Buenas Adan

      Lo que tienes que tener en cuenta es que el bucle while – wend, hace la pregunta antes de entrar en el bucle.

      Mientras (ocurra esto)
      secuencia de operaciones/funciones
      repetir

      No sé si te resuelve alguna duda, aunque si estás empezando a programar, te aconsejo que traduzcas a lenguaje natural, te resultará más sencillo entenderlo.

      Un saludo!

      Responder
  10. dani
    junio 5, 2012

    hola buena tarde m puedes dar un ejemplo de for next pero bien estructurado es decir k m diga dim elefante 1 to 5 o algo x el stilo sk n se como va stoy studiando m dejaron investigar 1 ejemp pero no encuentro xfa gracias de ante mano jeje

    Responder
    • VideoTutoriales
      junio 5, 2012

      En el ejemplo lo tenemos con la estructura básica. Lo que me estás comentando de Dim es declaración de variables. Si lo que quieres es copiar y pegar el código, solo tienes que añadir una linea más al segundo código propuesto. Por ejemplo:

      Dim contador as integer

      For contador = 0 to 10 step 2

      msgbox “El valor de contador ahora es: ” & contador

      Next contador

      Espero que resuelva tu duda, sino aquí me tienes para continuar ayudándote 😉

      Responder
  11. Dani
    junio 12, 2012

    mm ps muchas gracias me ayudo mucho y si no es molestia me puedes dar otro jeje x fa 😉

    Responder
    • VideoTutoriales
      junio 13, 2012

      No sé que es lo que quieres que te deje. ¿Algún ejemplo más sobre el bucle en vb6?

      Responder
  12. william
    septiembre 27, 2012

    ¡Gracias! que forma más sencilla de explicarlo realmente fue muy fácil y rápido entenderlo. Te agradezco. Dtb!

    Responder
    • VideoTutoriales
      septiembre 27, 2012

      Me alegro que te sirva 🙂 En realidad un Bucle For next en Vb6 es muy parecido a los diferentes lenguajes que existen.

      Un saludo!

      Responder
  13. Jossue
    octubre 5, 2012

    Hola que tal, me podrias ayudar lo que pasa que me dejaron de tarea hacer una aplicacion donde pueda comparar 20 numeros y me diga cual es el numero mayor y cual el menor, todo esto usando el for, porfavor ando atoradisimo

    Responder
    • VideoTutoriales
      octubre 5, 2012

      Buenos días Jossue, viendo que me estaba extendiendo mucho, he decidido escribirte un artículo para explicarlo:
      http://www.vertutoriales.com/index.php/saber-si-un-numero-es-mayor-y-menor-de-una-lista/

      Un saludo!

      Responder
  14. Ruben
    noviembre 1, 2012

    Bueno quisiera que me ayudara con este problema:
    Elaborar un programa que imprima todos los números primos que se encuentran entre dos valores, así mismo imprimir la suma respectiva.Muy agradecido si lo respondiera…

    Responder
  15. VideoTutoriales
    noviembre 2, 2012

    Al ser una respuesta extensa, creé un nuevo tuto:
    http://www.vertutoriales.com/index.php/saber-numeros-primos-entre-dos-valores-dados-metodologia/

    Espero que te sirva. Un saludo!

    Responder
  16. oneyda
    noviembre 22, 2012

    hola muy buenos tus comentarios y kiero k me ayudes como hacer un programa que muestre los datos de un cliente y aparezcan en una lista plis te lo agradecere.

    Responder
  17. oneyda
    noviembre 22, 2012

    en este programa tenemos que agregarle msgbox,inputbox y no se como aser estoy confundida

    Responder
  18. sandi
    octubre 18, 2013

    hola sera que me podrian ayudar hacer un for , pero que me tire estos numeros 1 3 5 7 9 11 etc en celdas de excel . siempre y cuando programando en visual basic de excel.

    Responder
    • VideoTutoriales
      octubre 18, 2013

      Buenas, pues tal y como lo tienes aquí te valdría, solo poniendo que
      for x = 1 to n step 2
      //aquí el codigo de inserción en excel con el valor de x
      next n

      Responder
  19. ChGarcia
    enero 20, 2015

    Amigo Buen dia.
    Espero me explique.
    Tengo una tabla elaborada y en la primera columna estan las claves (por ej BA001, MA001, MO001, BA002, MA002 ……….mo0100), Con Find encuentro las que comienza con “BA” y me dice por ejemplo que encontro 15, en la ventana que despliega. El asunto es que lo quiero llevar a otra tabla digamos de resumen donde nada mas estan los “BA”,uedo poner la que encontro primera ……….el problema es como le hago para pongas las “siguientes ” (Next) “BA”. For….. Next no me ha funcionada. Puede ayudarme ??
    Te dejo la secuencia. Me repite el mismo.
    For i = 1 To 30
    i = 1 + i
    Cells.Find(What:=”BA”, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
    True, SearchFormat:=False).Activate
    Cells.FindNext(After:=ActiveCell).Activate
    Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 5)).Select
    Selection.Copy
    Range(“AA5”).End(xlDown).Offset(1, 0).Select
    ActiveSheet.Paste Link:=True
    Range(ActiveCell.Offset(0, 3), ActiveCell.Offset(0, 4)).Select
    Selection.ClearContents
    Range(“AA4”).Select
    Next i

    Responder
    • videotutoriales
      enero 20, 2015

      Por lo que estoy viendo, ¿estás utilizando VBA no? O en su caso estás accediendo a una tabla de Excel… veamos, no te puedo dar el código exacto ya que no entiendo exactamente lo que estás haciendo, pero una forma que podrías hacer sería la siguiente:

      Para utilizar el bucle for-next deberás primero saber cuantos registros aparecen (comentas que te devuelve 15) Entiendo que es con Cells.Find(What:=”BA”), Así que el bucle sería for i = 0 to 15. A continuación estás poniendo un i = i + 1, esto no puedes utilizarlo o no debes utilizarlo, ya que el propio bucle for-next ya te incrementa 1 automáticamente en cada iteración.

      Luego lo que deberás recorrer son los registros devueltos por esa búsqueda que estás utilizando con cells.findNext. Te dejo el ejemplo en pseudocódigo:

      registrosConBA = cells.find(BA)

      for x = 1 to TotalRegistrosConBa
      guardaEnOtraTabla siguiente registrosConBA
      next x

      Espero que te ayude. Cualquier nueva consulta por aquí me tienes.
      Un saludo!

      Responder
  20. sara
    abril 2, 2016

    hola en realidad me urge un concepto concreto de el ciclo for .. alguien puede ayudarme gracias

    Responder
    • Carlos Dk
      abril 4, 2016

      Si lanzas la pregunta… sobre el bucle for…

      Responder

Leave A Reply Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Busca en la web

Recomiendo

Software ERP empresarial

Categorías

  • Miscelanea (129)
  • Tutoriales formativos (622)

Ponte en contacto

+34 654380491

hola@carlosdk.com

Torre del Mar (Málaga)

Enlaces rápidos

  • Universo Dk
  • Contacto
  • Blog

Soy social

  • Twitter
  • Linkedin
  • Youtube

Newsletters

Suscríbete para enterarte de lo último que estoy haciendo. No lo usaré para enviarte SPAM inútil 😉

Esta web la he diseñado con cariño en Andalucía por Carlos Dk