COMO ACUMULAR VALORES EN MS ACCESS - DO WHILE - VBA

Поделиться
HTML-код
  • Опубликовано: 8 фев 2025
  • Si este video te ha sido de utilidad, te dejo este link para donaciones y asi seguir subiendo contenido:
    www.paypal.com... #DOWHILE #MICROSOFTACCESS #VBA
    Acumular el valor numérico de un campo recorriendo la tabla con do while
    Suscribete a mi canal: / @davidsamuelhn
    Videos mas recientes: / @davidsamuelhn
    Donativos al canal: www.paypal.com...
    Comunidad en facebook (Microsoft Access Latinoamerica): / 590344261832647
    Curso MS SQL Server basico: • Clase #1 Curso SQL Ser...
    Sistema facturación desde cero MS Access + VBA + MS SQL Server: • Parte 1 Sistema de f...

Комментарии • 31

  • @pablog.moralesconcepcion1612
    @pablog.moralesconcepcion1612 3 года назад +1

    Gracias David, exquisita explicación, mejor imposible, gracias desde Barranquilla.

  • @oscargarzon
    @oscargarzon 2 года назад +1

    Buena clase de Access Maestro Vainas Saludos

  • @mamaducande2715
    @mamaducande2715 2 года назад +2

    Excelente mientras cuentas lecciones!
    Lo siento, señor. David, había tomado un curso de facturación que se convirtió en parte de compras. Y falta la parte de ventas. Mi pregunta y petición es, ¿cuándo nos vas a ayudar a terminar ese proyecto de facturación?
    Muchas gracias y feliz año nuevo!!!

  • @jamesmartinez9069
    @jamesmartinez9069 3 года назад +3

    David un excelente video muy sencillo y bien explicado. Le agradezco su generosidad al compartir su conocimiento con esta comunidad. Diez mil gracias por todo.
    Un saludo desde Colombia la tierra del café y las esmeraldas. Dios lo Bendice ahora y siempre
    Pd Seguimos pendientes de la culminación del sistema de facturación en Access + VBA

    • @DavidSamuelHn
      @DavidSamuelHn  3 года назад

      Amen..!! Bendiciones a ud también, gracias por el apoyo en mi canal, claro, el sistema de facturación transmitiré en vivo el siguiente video este fin de semana, saludos

  • @pedrosoria3619
    @pedrosoria3619 2 месяца назад

    Buenas tardes David, es un gusto saludarte y mencionar que tienes una experiencia en el manejo de SQL y por obvias razones, en access, tienes magnificos tutoriales
    Te comento que soy nuevo en realizar algunos formularios en access y he estado armando un pequeño sistemas con varias de tus recomendaciones
    Este video me ayudo mucho, para poder realizar el acumulado de minutos que tengo en una tabla de Incidencias, pero ahora se me complico un poco, ya que de las claves de incidencias, unas claves deben ser excluidas del acumulado y no deben considerarse, pero al crear otro IF, me sigue arrastrando el valor del registro que no deben considerarse, pido de tu ayuda, para que de favor eches un vistazo a mi problema y me puedas indicar, como se debe evitar el arrastre del valor excluido y no sumarlo. De antemano te agradezco la ayuda que me puedas proporcionar.. Saludos y Gracias .....

  • @MrWilycom
    @MrWilycom 2 года назад

    gracias por sus enseñanzas, ya habia olvidado programacion del do while.

  • @samuelfranciscogarcia1440
    @samuelfranciscogarcia1440 3 года назад +2

    Me gustó mucho, ya que lo explicaste y lo hiciste paso a paso.gracias 💨⛈🌧🎂🥂🇲🇽

  • @waltermancillaguasace6051
    @waltermancillaguasace6051 6 месяцев назад

    Excelente explicación maestro..jna pregunta Si pudiera explicar como armar una base de datos para control de credito donde muestre un fechas de vencimiento ya sea diario ,semanal ,quincenal o mensual .. cosa que permita mostrar en un informe el extracto de su crédito.... con eso quedaría la salsa a los tacos de maravilla....gracias

  • @rodolfopineda3586
    @rodolfopineda3586 3 года назад

    Excelente video y la frase salsa a los tacos muy bueno le da sabor a los videos ....y eso q apenas voy a la mitad del video muy buena explicacion y solucion en el codigo.....

    • @DavidSamuelHn
      @DavidSamuelHn  3 года назад +1

      hahaha gracias, saludos estimado Rodolfo

  • @vicentesignes8219
    @vicentesignes8219 3 года назад

    Buenas tardes David:
    En primer lugar agradecer enormemente el aporte tan didáctico.
    En segundo, me ha sabido mal no estar en el directo, pero la diferencia horaria no ayuda y hubo una pregunta del compañero Tango, en cuanto a acceder a access vía web, que me resultó interesante.
    En esta semana había cambiado de estrategia y estaba realizando pruebas en SQL Server y contador secuencial con ROW_NUMBER, aunque creo que eso ya es matar moscas a cañonazos.
    De hecho, tras ver este vídeo me replanteo hacer los procesos en Access y enviar la tabla definitva a SQL Server, a modo de histórico, ya que cada fichero que me puede llegar de cada cliente, puede tener entre 50 y 100 mil registros y no creo que access tenga problema para nada en hacerlos. Luego ya guardo la tabla resultante en SQL Server y accedo a ella desde Access, para recuperar determinado grupo de registros.
    Repito mi agradecimiento, suscribo la técnica de Feynman y saludos desde España.

    • @DavidSamuelHn
      @DavidSamuelHn  3 года назад +1

      Muchos saludos Vicente, que bien que puede servir de guía mi video, en efecto, esa cantidad de registros Access los maneja muy bien, con un rendimiento alto, que la pases bien, saludos hasta España

    • @vicentesignes8219
      @vicentesignes8219 3 года назад

      @@DavidSamuelHn Buenos días David y compañeros:
      He adaptado el código a la tabla que estoy tratando y haciendo una prueba con dicha tabla de 9.160 registros, he observado que me daba un error.
      El código funcionaba bien en todos los registros excepto en uno, que además siempre era diferente. Era como aleatorio, pues he hecho distintas comprobaciones y no seguía un patrón.
      Al final me dio por pensar si era provocado por alguna interrupción en el proceso y me vino a la cabeza el quitar "On Error Resume Next", obteniendo el siguiente error:
      "Se ha producido el error '3052' en tiempo de ejecución: Se excedió el número de bloqueos de archivos compartidos. Aumente el valor de la entrada MaxLocksPerFile del Registro."
      He buscado y habría que cambiar el RegEdit.exe (su valor predeterminado es de 9500) o el método SetOption.
      No obstante, he reducido a la mitad el número de registros en la tabla (en torno a 5.500) y sin el "On Error Resume Next", no me ha dado ningún aviso de error y corrió la tabla correctamente, sin dejarse ningún registro por actualizar, con lo que he confirmado que el registro erróneo aleatorio se producía por la interrupción interna del proceso y su reanudación inmediata.
      Como no he querido modificar el archivo de registro de Windows, he utilizado un método que temporalmente aumenta el número predeterminado de bloqueos, por lo que he añadido el siguiente código al principio del procedimiento: 'DAO.DBEngine.SetOption dbMaxLocksPerFile, 15000' con lo que me ha funcionado a la perfección recorriendo todos los registros de la tabla y actualizándolos y sin activar el "On Error Resume Next".
      Luego he comprobado el archivo de registro y seguía estando en 9500, que es su valor predeterminado.
      Disculpad el rollo pero he pensado que esto le podía servir a alguien.
      Echando un poquito más de salsa a los tacos.

    • @DavidSamuelHn
      @DavidSamuelHn  3 года назад +1

      @@vicentesignes8219 jaja excelente aporte, buena experiencia, de esa manera se enriquecen los conocimientos, enhorabuena

    • @vicentesignes8219
      @vicentesignes8219 3 года назад

      @@DavidSamuelHn Buenas tardes David. Estoy a vueltas con una aplicación en la que me baso en el código de este vídeo. El problema que me están dando access es que tras lanzar el código, la base de datos se queda como "enganchada" con el usuario admin. He quitado lo de compactar y reparar bd al salir y lo que hace es que la base de datos se cierra, pero no así access. Al mirar los ficheros, el del login sigue abierto, aunque la aplicación ya no lo esté. Es como si corriera en segundo plano, abierta por el usuario admin. Cuando voy a hacer alguna modificación me advierte de que puede que no guarde nada, ya que hay otro usuario que tiene abierta la bd.
      Al final, si utilizo el código, tengo que cerrarla desde el administrador de tareas.
      Esto no me pasa si hago otros procesos y no utilizo el módulo vba.
      Se les ocurre qué puede estar pasando?
      Gracias de antemano y saluodos.

  • @oscargarzon
    @oscargarzon 3 года назад

    Buen video Maestro Vainas Saludos :)

  • @dnnla7460
    @dnnla7460 2 года назад +1

    Buenas tardes Maestro, cuál sería la mejor forma para manejar una tabla donde tengo id, fecha inicio,fecha fin, tipo y lo que quiero es generar con un do while o foreach un registro por fecha ? gracias por sus detalladas explicaciones

  • @albertomarcosig8734
    @albertomarcosig8734 3 года назад

    Excelente Video Felicitaciones

  • @komicabrera9160
    @komicabrera9160 3 года назад +1

    David, me podrias ayudar en como hacer para capturar valores de una consulta de una tabla y poder rellenar con esos datos otras tablas, eje, buscar el nombre de una persona mediante su ID y que sus datos mostrados se almacenen junto con otros datos adicionales. se podra?

  • @ricardovargascastro3492
    @ricardovargascastro3492 6 месяцев назад

    Hola ingeniero yo quiero es acumular solo cantidades cuando agregue productos desde la tabla más compras

  • @oscarbit
    @oscarbit 3 года назад

    Hola David, excelente como siempre. No llegué al directo pero me hubiera gustado comentarle la conveniencia de usar "DoEvents" en los procesos de bucle para evitar colapsar el sistema en bases con gran cantidad de registros, y en tal caso ¿Donde se coloca esta instrucción?
    Saludos

    • @DavidSamuelHn
      @DavidSamuelHn  3 года назад +1

      Gracias, si DoEvents es clave, sobre todo cuando el ciclo Do interactúa con controles del formulario como textbox, el DoEvents refresca todo el form, gracias por la acertada observación

  • @edilgutierreztani9666
    @edilgutierreztani9666 3 года назад

    Muy Buenas estimado David Samuel
    Cuando continúa con el curso de facturación? Ya no esta subiendo videos

    • @DavidSamuelHn
      @DavidSamuelHn  3 года назад

      Si se va a seguir, he estado mal de salud

    • @edilgutierreztani9666
      @edilgutierreztani9666 3 года назад

      @@DavidSamuelHn oh que pena David Samuel, espero estés mejorando saludos un abrazo enorme.
      Dios te Bendiga 🙏

  • @rodolfopineda3586
    @rodolfopineda3586 3 года назад

    Una consulta este procedimiento o codigo bucles do while o for next se puede utilizar para actualizar registros desde mi listbox n cantidad de item ejemplo nombres de campos de la tabla access
    Remision status
    107001700 pendiente
    Cuando ejecute el codigo pase a lo siguiente
    Remisio status
    107001700 entregado
    O que sugerencia me daria para que la actualizacion sea mas optima o correcta y no trabar el procesador del computador como cuando se trabo el video pero me gusto la solucion
    Perdon pero no tengo mucho conocimiento en access.. gracias .
    Y sus videos son muy buenos bendiciones .....

    • @DavidSamuelHn
      @DavidSamuelHn  3 года назад +1

      Una consulta de actualización bastaría en ese caso, el rendimiento siempre será mejor que con un recorrido do while

    • @rodolfopineda3586
      @rodolfopineda3586 3 года назад

      @@DavidSamuelHn muchas gracias

    • @rodolfopineda3586
      @rodolfopineda3586 3 года назад

      Estare pendientes de sus videos y muy agradecido por tomarse el tiempo pra responder nuestros comentarios
      Y access es muy complejo en el uso de ambito de trabajo y sus funciones
      Y su persona nos da a conocer como programar en el mismo

  • @marcoantonioalvaradolopez9582
    @marcoantonioalvaradolopez9582 2 года назад +1

    Saludos David, gracias por enseñarnos tus conocimientos, realice una modificación al mismo para adaptarla a un requerimiento en una base de datos sencilla para pruebas, te agradeceré si me puedes decir si observas algún error o mejora al mismo ó algún compañero que sepa al respecto, a continuacion se las comparto:
    Sub do_while3()
    Dim sql, y As Integer
    Dim x As Currency
    Dim z As Currency
    Dim dt As DAO.Recordset

    sql = "Select * from Movimientos order by codigo asc, fecha asc, id asc"
    Set dt = CurrentDb.OpenRecordset(sql, dbOpenDynaset, dbSeeChanges)

    dt.MoveFirst
    x = dt!Abono
    y = dt!Codigo
    z = dt!Cargo

    With dt
    Do While Not dt.EOF
    If !Codigo = y Then
    .Edit
    !Saldo = x - z
    .Update
    x = !Saldo
    y = !Codigo
    .MoveNext
    On Error Resume Next
    x = x + !Abono - !Cargo
    Else
    x = dt!Abono
    y = dt!Codigo
    End If
    Loop
    End With
    End Sub