Hola,Juan,muy buen tutorial , gracias por tu aporte, eres muy bueno explicando. Te escribo porque tengo un pequeño problema y llevo varias semanas intentando resolverlo, te explico: Son varias tablas(equipos,productos,fabricantes) y otras más, pero me piden que haga un formulario para la gestión del inventario de la empresa, de la tabla equipos y que ponga 2 botones(listas desplegables),donde al seleccionar por ejemplo el producto, me filtre en una lista desplegable solamente los fabricantes y en otro botón o lista desplegable al momento de seleccionar el fabricante , me aparezcan sus productos y viceversa. y si el producto no existe o el fabricante, lo pueda dar de alta. Ejemplo: Producto lista desplegable Fabricante lista desplehable en donde por ejemplo si selecciono el fabricante Apple me filtre solo los productos de apple para seleccionarlos de la lista. Soy nuevo en esto de vba , asi que no tengo muchos conocimientos, por no decir, ninguno(me he visto varios de tus tutoriales del curso de acces). Agradezco de antemano tu ayuda!!!
Profesor. Continuando mi reciente comentario, quiero poner en su conocimiento que, en uno de esos intentos que uno hace sólo por probar algo más y distinto a lo anteriormente hizo y sin ninguna razonabilidad aparente, probé el ejercicio desechando la etiqueta anterior, generando una nueva y dejando como nombre el sugerido por el editor VBA. Pués, estoy perplejo, ¡Todo ha funcionado correctamente! Quizás pueda servir que aclare que el nombre que había utilizado era: lbl_Aviso_Sección. Perdón por insistir en mi pedido anterior, pero ahora, sería más interesante aún contar con su invalorable ayuda. Cordiales saludos.
Estimado Profesor Juan, muy buenos días. Una vez más, deseo felicitarle por sus excelentes vídeos, tanto en la calidad de los contenidos como en su claridad en exponerlos. Haciendo referencia a su Curso VBA Access. Eventos III. Vídeo 19, publicado el 02/01/2014, en el minuto 20:12, donde muestra cómo cambiar la propiedad visible de un control, en este caso, la etiqueta "Aviso_Sección" y habiendo escrito el código tal y cual Ud. lo indica, ocurre permanentemente el error de compilación "No se ha definido la variable". Solicito de su gentileza pueda ayudarme sobre este particular. Muy cordiales saludos.
Gracias profe, entiendo que el ejemplo es para aplicar lo aprendido, solo quiero aportar indicando que cambiando el evento en lugar de AlHacerClic a DespuesDeActualizar basta con este código para tener los mismos resultados: ''' Private Sub ddlFiltro_AfterUpdate() lblAvisoSeccion.Visible = True lblAvisoSeccion.Caption = "Estas viendo " & ddlFiltro.Value DoCmd.ApplyFilter ("SELECT * FROM PRODUCTOS WHERE SECCiÓN = '" & ddlFiltro.Value & "'") End Sub ''' Saludos ;)
Para los que tenemos ganas de aprender desde 0 y poco tiempo para acudir a clases presenciales estos videos son nuestra salvación. GRACIAS, GRACIAS, GRACIAS! Tengo un problema que llevo intentando resolver varios días y me he dado por vencida. Si alguien puede ayudarme...Basándome en el video (minuto 14 aprox). He intentado hacer un filtro para que muestre (en un formulario "fm_prueba" los registros de una sencilla tabla cuyo campo "num" coincidan con un valor introducido por el usuario en un cuadro de txt llamado "buscar", uso el siguiente código: Private Sub Comando4_Click() Dim sentencia As String MsgBox ("Verás registros con número = " & buscar) sentencia = "select * from fm_prueba where num = buscar " DoCmd.ApplyFilter sentencia End SubAl ejecutarlo me aparece el msgbox con el valor que yo le he introducido pero después no hace el filtro y se lanza un cuadro "Introduzca el parámetro buscar". Si en "select....where num=buscar" sustituyo buscar por 1 (por ejemplo) todo va de maravilla y me muestra los registros con num=1.Estoy segura de que es un problema de sintaxis pero por más que le he dado vueltas....
+elisages G Hola!! Gracias por el comentario. Prueba a guardar el valor del cuadro de texto en una variable de la siguiente forma: Dim nombre_var=buscar.value Después utiliza nombre_var para la instrucción sql concatenando: "SELECT * FROM FM_PRUEBA WHERE NUM=" & nombre_var Un saludo
Hola, ¿qué tal? Estoy siguiendo tus tutoriales y estoy aprendiendo mucho pero tengo una pregunta algo relacionada con el vídeo. Si tengo tres formularios y quiero elegir cuál formulario abrir a partir de un valor seleccionado en el combobox ¿cómo debería hacer? Según el ejemplo podría usar un If de la siguiente forma: Private Sub btnforms_Click() If Me.cboform.Value = "AUXILIO VIAL" Then DoCmd.OpenForm "AUX_VIA" End If End Sub
En verdad es que hay un error tipografico, me faltó la "p". Gracias por la ayuda pues he solucionado el problema. Parece que tenemos algo en común "Escribir saltandose algunas letras".
Estupendos tutoriales, te felicito. Aprovecho para preguntarte como se podrían quitar desde VBA el filtro q has aplicado anteriormente. Se me ocurre algo como ElseIf filtra_secciones.Value = "limpiar filtros" Then sentencia = "SELECT * FROM PRODUCTOS" Sin embargo no funciona. Alguna idea?
+Luis Sacristan Pues debería de funcionar.... hace tiempo que grabé estos vídeos y la verdad no recuerdo de qué hablaba en este. Si me dices minuto y segundo donde aparece el filtro te digo algo
Hola Juan. Me preguntaba si podrías indicarme o darme una referencia sobre unos fundamentos de SQL para tener un manejo un poco mejor de dicha herramienta. Gracias
Diego Armando Gomez Marquez Bufff dar unos fundamentos de SQL no es sencillo y menos hacerlo por aquí, en esta pequeña caja de comentarios. En un par de meses empezaré un curso de SQL en el canal. SQL es un lenguaje universal de acceso a datos estructurado compuesto por claúsulas, comandos y modificadores. Dicho esto te habrás quedado igual que entes. Es un tema complejo. Un saludo
Pues esperare tus tutoriales, mientras tendré que buscar por algún lado algo para empezar, puesto que necesito avanzar en las cuestiones de mi tesis que te había comentado hace unas semanas. Mil gracias, un saludo desde Colombia.
hola excelentes tutoriales, y una sugerencia ¿quedaría más practico si se pone como variable el seccion=filtra_secciones y la variable ponerla en el sql con menos lineas de código?
Estimado Profe Juan, en primer lugar lo felicito por todos sus videos los cuales nos han ensñado mucho, y por la manera tan agradable de traspasar todo el conocimiento.Pero hoy tengo una inquietud: He desarrollado todo este ejercicio pero el combo Box no me funciona, ya que siempre pregunata por la seeción aunque ésta se encuentra en el código, y si se vuelve a poner marca error y se sale. Revisando el video me he percatado que los asos se han desarrollado en dos formularios diferentes (Producto y Producto1) mientra que yo lo he hecho todo en uno solo. Agradecere una explicación al respecto, pues al hacerlo tambien en dos formularios el problea no existe. Por todo muchas gracias.
+Daniel Maturana Hola !! Si te pregunta siempre por la sección como si fuera una consulta paramétrica suele ser porque hay un error de sintaxis en el campo del criterio. Revisa que has escrito bien el campo del criterio en el código VBA. Y no entiendo bien qué quieres decir con los "asos" que comentas un poco más adelante. Un saludo!!
Perdón por mi ignorancia, ¿cómo se hace para que al crear tanto tablas como formularios, se creen y se abran en modo ventana, en plan acDialog? He probado tu tabla de ejemplos y sale genial, pero me gustaría saber como hacerlo.. Supongo que lo explicarás en alguno de tus vídeos, pero no he encontrado donde... Muchas gracias.. y un saludo..
+TaNo Hola !! Imagino que preguntas desde VBA. El método Open del objeto table admite el parámetro acDialog para abrir la tabla. Solo tienes que incluir el parámetro. Un saludo!!
No sé sinceramente si es por código, ya que parece más implementado en el access como tal, tal vez no me haya explicado correctamente.. En la Base de datos que estás manipulando, que es la misma que nosotros descargamos. A la hora de crear un formulario o una tabla, no lo he probado con informes.. Se crea con una ventana por defecto.. También me he fijado que aparece un nuevo apartado llamado ventana, en "Inicio/ventana" Donde tiene por opciones, "Ajustar al formulario" y "Cambiar ventanas". Me gustaría saber como conseguir esto en una .ACCDB por defecto. Si no es mucha molestia, gracias :)
k bien maestro, recorri a este video para preguntarle como seria para hacer un contaje de registros al tener selecionado una determina sección, o sea, k contara todos los registros encontrados de una sección cdo es aplicado un filtro, pero k ese fuera resaltado en una caja de texto, como es este de aqui, [ etiqueta ] " Encontados" - [caja de texto ] " 10 registros", creo k utilizando list.count seria possible? gracias por todo, abrazos
Rodolfo Romero Hola !! Muchas gracias por el comentario. Utilizo Camtasia Studio para editar y zoomit (gratuito) para todo el tema de señalizaciones, escrituras, zoom en vivo etc Un saludo
tengo un problema y no encuentro la solución, estoy acompañando el curso, y gracias que es muy bueno lo explicas muy bien, hare otros cursos en tu canal, ahora con lo de mi problema, tengo una tabla TAlmacen y en ella tengo varios campos, pues bien, necesito un formulario donde encontrar el registro escaneando el CÓDIGO DE BARRAS y que muestre el PRODUCTO PVP y el IVA solo a modo lectura o visualización!!! no se como hacerlo, alguna ayudita por favor? jeje, saludos seguiré haciendo el curso y a profundizare mas al respecto.
Hola estoy siguiento tu curswo y gracias. en el ejemplo: Private Sub FILTRA_SECCIONES_Click() Dim sentencia As String If FILTRA_SECCIONES = "DEPORTES" Then sentencia = " select * productos where sección='DEPORTES'" End If DoCmd.ApplyFilter sentencia End Sub no me funciona pero si cambio en la definicion de la variable string por variant si, y no se porqué. Gracias por escucharme.
Se podría simplificar bastante: Dim sentencia, escogido As String escogido = filtrar_seccion.Value sentencia = "SELECT * FROM PRODUCTOS WHERE SECCIÓN=" & "'" & escogido & "'" DoCmd.ApplyFilter sentencia aviso.Visible = True aviso.Caption = "Estas viendo " & escogido PERO me imagino que lo alargaste para practicar las estructuras de control.
brother lo e resuelto, lo que sucedio fue que estaba usando mal el ElseIf.. Yo puse ElseIf y estaba saltando a poner mi codigo aqui abajo.. pero el elseif tiene que llevar el codigo a continuacion.. Gracias por tu ayuda.. se que parece sin sentido mi problema, pero estoy enpezando a esto... Lo siento mi hermano y gracias.... saludos +1
Hola Juan, sigo todos tus cursos. Son excelentes y eres muy bueno explicándolos. He visto un fallito en este video y es que al quitar el filtro del formulario la etiqueta se queda colgada con el titulo del ultimo filtro, esto se podría arreglar no? que quede claro que no es ninguna critica sino una pequeña aportación para mejorar el formulario. Un saludo y sigue así
***** Gracias por el comentario !!! Todo tiene arreglo. En ese caso habría que programar en el evento activar registro del formulario algo así como filtro.value="" siendo filtro el nombre del desplegable. De esta forma después de hacer cualquier operación con los registros, el desplegable quedará en blanco. Un saludo
+Irasema Torres Hola !! Hace mucho tiempo que grabé estos vídeos y no recuerdo exactamente de qué hablaba en este, pero imagino que te refieres a realizar un segundo filtro utilizando docmd.applyfilter. Si quieres hacer un segundo filtro sobre los resultados filtrados no tienes más que utilizar una segunda instrucción docmd.applyfilter en un control diferente bajo el evento correspondiente. Un saludo
Distinguido Juan, necesito de tu gran ayuda una vez más...He creado un formulario en Access 2013, el cual tiene un cuadro combinado que quiero que después de actualizarlo se completen otros cuadros de textos. Buscando en internet encontré la función Dlookup que resolvería mi problema porque funciona como la función Vlookup de excel. Sucede que al crear el procedimiento me está dando un error 2471 y no sé a qué se refiere y no sé que anda mal. Ver código más abajo el código: Private Sub Cliente_AfterUpdate() Nombre = DLookup("[Nombre]", "[Tabla2]", "Cliente=" & Cliente) End Sub Mil gracias
comprimela en zip y envíala a cursos@pildorasinformaticas.es. En el mail redáctame de nuevo la duda. Recibo muchos y se me olvida de que iba cada duda. Un saludo
Quiza esto solucione algún problema para quitar el filtro y reducir el código, hice el curso de VBA excel y parte del de SQL, os los recomiendo con muchas +++ y cuando lo juntas todo se pueden hacer cosas divertidas, aquí lo dejo (he cambiado algunos nombres de etiquetas y filtro pero creo que es fácil saber que es cada cosa): Option Compare Database Private Sub Form_Open(Cancel As Integer) DoCmd.Maximize ETIQUETA_SECCION.Visible = False End Sub Private Sub FILTRO_SECCION_Click() Dim SENTENCIA_SQL As String SENTENCIA_SQL = " SELECT * FROM PRODUCTOS WHERE SECCIÓN ='" & FILTRO_SECCION.Value & "'" DoCmd.ApplyFilter SENTENCIA_SQL With ETIQUETA_SECCION .Visible = True .Caption = "ESTAS VIENDO " & FILTRO_SECCION.Value & " ¿QUITAR FILTRO?" End With End Sub Private Sub ETIQUETA_SECCION_Click() SENTENCIA_SQL = " SELECT * FROM PRODUCTOS WHERE SECCIÓN LIKE '*'" DoCmd.ApplyFilter SENTENCIA_SQL ETIQUETA_SECCION.Visible = False End Sub
He realizado esta rutina usando el valor del combo para crear el filtro: Private Sub cboFiltrarSeccion_Click() Dim sentencia As String Dim miSeccion As String If cboFiltrarSeccion.Value "" Then miSeccion = cboFiltrarSeccion.Value 'Ojo con las comillas simples sentencia = "Select * From Productos where seccion='" & miSeccion & "'"
pildorasinformaticas es para encerrar la comilla simple entre dos dobles, eso es lo que me pasa siempre en Access. yo lo que hago es pasarla al bloc de notas y con letra courier estudiar mejor las expresiones sino no se ve nada. jeje.
no me jodas mi pana, yo pariendo literalmente por programar en vba y tu me dices q facilito... se entiende !!! no no ni de vaina, necesito filtrar un formulario...
cesar gonzalez Hola !! Nunca podrás filtrar un formulario desde VBA si no tienes conocimientos SQL. De igual forma que no se puede correr una maratón si antes no has aprendido a caminar. Un saludo!!
Buen día, felicitaciones son buenos tutoriales por su claridad. Tengo una inquietud y es que al realizar el ejercicio del video 19 me sale error en tiempo de ejecución "2533", revise paso a paso elcódigo pero no logro encontrar el error, me podrias ayudar a aclarar esta situacion. Gracias y buena suerte.
pildorasinformaticas Digamos como en Twitter: va contando hacia atrás los que faltan para llegar al límite de 140. En este caso necesito mostrar "Se han usado X caracteres de Y". Y el "X" se actualice a cada caracters ingresado (sea texto, número, espacio, letra acentuada, etc.).
ahhhh ok ya entiendo. Pues debes utilizar el evento "Al cambiar" del textbox. El código tendría que pensarlo. Se me antoja complicado porque además habría que refrescar el formulario...pero seguro que es posible. Haz pruebas con el evento al cambiar del textbox donde estés escribiendo caracteres. Un saludo
Private Sub filtrar_seccion_Click() Dim sentencia As String aviso_seccion.Visible = True If filtrar_seccion.Value = "DEPORTES" Then sentencia = "select * from PRODUCTOS WHERE SECCIÓN='DEPORTES'" aviso_seccion.Caption = "Estas viendo deportes" ElseIf filtrar_seccion.Value = "FERRETERÍA" Then sentencia = "select * from PRODUCTOS WHERE SECCIÓN='FERRETERÍA'" aviso_seccion.Caption = "Estas viendo deportes" ElseIf filtrar_seccion.Value = "CONFECCIÓN" Then sentencia = "select * from PRODUCTOS WHERE SECCIÓN='CONFECCIÓN'" aviso_seccion.Caption = "Estas viendo confeccion" ElseIf filtrar_seccion.Value = "JUGUETERÍA" Then sentencia = "select * from PRODUCTOS WHERE SECCIÓN='JUGUETERÍA'" aviso_seccion.Caption = "Estas viendo jugueteria" ElseIf filtrar_seccion.Value = "CERÁMICA" Then sentencia = "select * from PRODUCTOS WHERE SECCIÓN='CERÁMICA'" aviso_seccion.Caption = "Estas viendo Ceramica" End If DoCmd.ApplyFilter sentencia End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.Maximize aviso_seccion.Visible = False End Sub
Muchas gracias y enhorabuena por tu trabajo son unos tutoriales excelentes.
Hola,Juan,muy buen tutorial , gracias por tu aporte, eres muy bueno explicando.
Te escribo porque tengo un pequeño problema y llevo varias semanas intentando resolverlo, te explico:
Son varias tablas(equipos,productos,fabricantes) y otras más, pero me piden que haga un formulario para la gestión del inventario de la empresa, de la tabla equipos y que ponga 2 botones(listas desplegables),donde al seleccionar por ejemplo el producto, me filtre en una lista desplegable solamente los fabricantes y en otro botón o lista desplegable al momento de seleccionar el fabricante , me aparezcan sus productos y viceversa.
y si el producto no existe o el fabricante, lo pueda dar de alta.
Ejemplo:
Producto lista desplegable
Fabricante lista desplehable
en donde por ejemplo si selecciono el fabricante Apple me filtre solo los productos de apple para seleccionarlos de la lista.
Soy nuevo en esto de vba , asi que no tengo muchos conocimientos, por no decir, ninguno(me he visto varios de tus tutoriales del curso de acces).
Agradezco de antemano tu ayuda!!!
Muchas gracias por seguir esta capacitación. Excelente trabajo, sigue adelante y un muy Feliz Año Nuevo
Feliz Año Nuevo !! Saludos
estupendo como siempre!!!!
Me encanta aprender con tus videos
Gracias. Un saludo
Profesor. Continuando mi reciente comentario, quiero poner en su conocimiento que, en uno de esos intentos que uno hace sólo por probar algo más y distinto a lo anteriormente hizo y sin ninguna razonabilidad aparente, probé el ejercicio desechando la etiqueta anterior, generando una nueva y dejando como nombre el sugerido por el editor VBA. Pués, estoy perplejo, ¡Todo ha funcionado correctamente! Quizás pueda servir que aclare que el nombre que había utilizado era: lbl_Aviso_Sección.
Perdón por insistir en mi pedido anterior, pero ahora, sería más interesante aún contar con su invalorable ayuda. Cordiales saludos.
Estimado Profesor Juan, muy buenos días. Una vez más, deseo felicitarle por sus excelentes vídeos, tanto en la calidad de los contenidos como en su claridad en exponerlos.
Haciendo referencia a su Curso VBA Access. Eventos III. Vídeo 19, publicado el 02/01/2014, en el minuto 20:12, donde muestra cómo cambiar la propiedad visible de un control, en este caso, la etiqueta "Aviso_Sección" y habiendo escrito el código tal y cual Ud. lo indica, ocurre permanentemente el error de compilación "No se ha definido la variable".
Solicito de su gentileza pueda ayudarme sobre este particular.
Muy cordiales saludos.
Gracias profe, entiendo que el ejemplo es para aplicar lo aprendido, solo quiero aportar indicando que cambiando el evento en lugar de AlHacerClic a DespuesDeActualizar basta con este código para tener los mismos resultados:
'''
Private Sub ddlFiltro_AfterUpdate()
lblAvisoSeccion.Visible = True
lblAvisoSeccion.Caption = "Estas viendo " & ddlFiltro.Value
DoCmd.ApplyFilter ("SELECT * FROM PRODUCTOS WHERE SECCiÓN = '" & ddlFiltro.Value & "'")
End Sub
'''
Saludos ;)
Es correcto. Gracias por tu apreciación. U saludo.
Para los que tenemos ganas de aprender desde 0 y poco tiempo para acudir a clases
presenciales estos videos son nuestra salvación. GRACIAS, GRACIAS, GRACIAS!
Tengo un problema que llevo intentando resolver varios días y me he dado por vencida. Si alguien puede ayudarme...Basándome en el video (minuto 14 aprox). He intentado hacer un filtro para que muestre (en un formulario "fm_prueba" los registros de una sencilla tabla cuyo campo "num" coincidan con un valor introducido por el usuario en un cuadro de txt llamado "buscar", uso el siguiente código:
Private Sub Comando4_Click()
Dim sentencia As String MsgBox ("Verás registros con número = " & buscar)
sentencia = "select * from fm_prueba where num = buscar "
DoCmd.ApplyFilter sentencia
End SubAl ejecutarlo me aparece el msgbox con el valor que yo le he introducido pero después no hace el filtro y se lanza un cuadro "Introduzca el parámetro buscar".
Si en "select....where num=buscar" sustituyo buscar por 1 (por ejemplo) todo va de maravilla y me muestra los registros con num=1.Estoy segura de que es un problema de sintaxis pero por más que le he dado vueltas....
+elisages G Hola!! Gracias por el comentario. Prueba a guardar el valor del cuadro de texto en una variable de la siguiente forma:
Dim nombre_var=buscar.value
Después utiliza nombre_var para la instrucción sql concatenando:
"SELECT * FROM FM_PRUEBA WHERE NUM=" & nombre_var
Un saludo
Hola, ¿qué tal?
Estoy siguiendo tus tutoriales y estoy aprendiendo mucho pero tengo una pregunta algo relacionada con el vídeo. Si tengo tres formularios y quiero elegir cuál formulario abrir a partir de un valor seleccionado en el combobox ¿cómo debería hacer?
Según el ejemplo podría usar un If de la siguiente forma:
Private Sub btnforms_Click()
If Me.cboform.Value = "AUXILIO VIAL" Then
DoCmd.OpenForm "AUX_VIA"
End If
End Sub
En verdad es que hay un error tipografico, me faltó la "p". Gracias por la ayuda pues he solucionado el problema.
Parece que tenemos algo en común "Escribir saltandose algunas letras".
+Daniel Maturana Así es..... un infierno. Un saludo!!
Estupendos tutoriales, te felicito. Aprovecho para preguntarte como se podrían quitar desde VBA el filtro q has aplicado anteriormente. Se me ocurre algo como
ElseIf filtra_secciones.Value = "limpiar filtros" Then
sentencia = "SELECT * FROM PRODUCTOS"
Sin embargo no funciona. Alguna idea?
+Luis Sacristan Pues debería de funcionar.... hace tiempo que grabé estos vídeos y la verdad no recuerdo de qué hablaba en este. Si me dices minuto y segundo donde aparece el filtro te digo algo
+pildorasinformaticas Ya lo solucioné con algo que encontré por google
Me.Filter = ""
Hola Juan.
Me preguntaba si podrías indicarme o darme una referencia sobre unos fundamentos de SQL para tener un manejo un poco mejor de dicha herramienta.
Gracias
Diego Armando Gomez Marquez Bufff dar unos fundamentos de SQL no es sencillo y menos hacerlo por aquí, en esta pequeña caja de comentarios. En un par de meses empezaré un curso de SQL en el canal. SQL es un lenguaje universal de acceso a datos estructurado compuesto por claúsulas, comandos y modificadores. Dicho esto te habrás quedado igual que entes. Es un tema complejo. Un saludo
Pues esperare tus tutoriales, mientras tendré que buscar por algún lado algo para empezar, puesto que necesito avanzar en las cuestiones de mi tesis que te había comentado hace unas semanas. Mil gracias, un saludo desde Colombia.
hola excelentes tutoriales, y una sugerencia ¿quedaría más practico si se pone como variable el seccion=filtra_secciones y la variable ponerla en el sql con menos lineas de código?
Sí, es otra forma de hacerlo y efectivamente en este caso ahorrarías código. Un saludo
Estimado Profe Juan, en primer lugar lo felicito por todos sus videos los cuales nos han ensñado mucho, y por la manera tan agradable de traspasar todo el conocimiento.Pero hoy tengo una inquietud: He desarrollado todo este ejercicio pero el combo Box no me funciona, ya que siempre pregunata por la seeción aunque ésta se encuentra en el código, y si se vuelve a poner marca error y se sale. Revisando el video me he percatado que los asos se han desarrollado en dos formularios diferentes (Producto y Producto1) mientra que yo lo he hecho todo en uno solo. Agradecere una explicación al respecto, pues al hacerlo tambien en dos formularios el problea no existe. Por todo muchas gracias.
+Daniel Maturana Hola !! Si te pregunta siempre por la sección como si fuera una consulta paramétrica suele ser porque hay un error de sintaxis en el campo del criterio. Revisa que has escrito bien el campo del criterio en el código VBA. Y no entiendo bien qué quieres decir con los "asos" que comentas un poco más adelante. Un saludo!!
Perdón por mi ignorancia, ¿cómo se hace para que al crear tanto tablas como formularios, se creen y se abran en modo ventana, en plan acDialog?
He probado tu tabla de ejemplos y sale genial, pero me gustaría saber como hacerlo..
Supongo que lo explicarás en alguno de tus vídeos, pero no he encontrado donde...
Muchas gracias.. y un saludo..
+TaNo Hola !! Imagino que preguntas desde VBA. El método Open del objeto table admite el parámetro acDialog para abrir la tabla. Solo tienes que incluir el parámetro. Un saludo!!
No sé sinceramente si es por código, ya que parece más implementado en el access como tal, tal vez no me haya explicado correctamente..
En la Base de datos que estás manipulando, que es la misma que nosotros descargamos.
A la hora de crear un formulario o una tabla, no lo he probado con informes..
Se crea con una ventana por defecto..
También me he fijado que aparece un nuevo apartado llamado ventana, en "Inicio/ventana"
Donde tiene por opciones, "Ajustar al formulario" y "Cambiar ventanas".
Me gustaría saber como conseguir esto en una .ACCDB por defecto.
Si no es mucha molestia, gracias :)
Creo que te voy entendiendo... pero no sabría decirte. Debe ser alguna opción de visualización que no se dónde anda
Ok, veré a ver si investigo más y encuentro como hacerlo, gracias :)
k bien maestro, recorri a este video para preguntarle como seria para hacer un contaje de registros al tener selecionado una determina sección, o sea, k contara todos los registros encontrados de una sección cdo es aplicado un filtro, pero k ese fuera resaltado en una caja de texto, como es este de aqui, [ etiqueta ] " Encontados" - [caja de texto ] " 10 registros", creo k utilizando list.count seria possible? gracias por todo, abrazos
Excelentes cursos, soy maestro jubilado y me justaría tener el, o los programas con que se hacen los videos, ¿podría decirme cuales son?
Rodolfo Romero Hola !! Muchas gracias por el comentario. Utilizo Camtasia Studio para editar y zoomit (gratuito) para todo el tema de señalizaciones, escrituras, zoom en vivo etc
Un saludo
tengo un problema y no encuentro la solución, estoy acompañando el curso, y gracias que es muy bueno lo explicas muy bien, hare otros cursos en tu canal, ahora con lo de mi problema, tengo una tabla TAlmacen y en ella tengo varios campos, pues bien, necesito un formulario donde encontrar el registro escaneando el CÓDIGO DE BARRAS y que muestre el PRODUCTO PVP y el IVA solo a modo lectura o visualización!!! no se como hacerlo, alguna ayudita por favor? jeje, saludos seguiré haciendo el curso y a profundizare mas al respecto.
Hola estoy siguiento tu curswo y gracias.
en el ejemplo:
Private Sub FILTRA_SECCIONES_Click()
Dim sentencia As String
If FILTRA_SECCIONES = "DEPORTES" Then
sentencia = " select * productos where sección='DEPORTES'"
End If
DoCmd.ApplyFilter sentencia
End Sub
no me funciona pero si cambio en la definicion de la variable string por variant si, y no se porqué.
Gracias por escucharme.
Hola !! Yo tampoco, excepto por el detalle de que quizás probaría poniendo FILTRA_SECCIONES. value
Un saludo!!
Se podría simplificar bastante:
Dim sentencia, escogido As String
escogido = filtrar_seccion.Value
sentencia = "SELECT * FROM PRODUCTOS WHERE SECCIÓN=" & "'" & escogido & "'"
DoCmd.ApplyFilter sentencia
aviso.Visible = True
aviso.Caption = "Estas viendo " & escogido
PERO me imagino que lo alargaste para practicar las estructuras de control.
Posiblemente. Pero ya no recuerdo. hace años que lo grabé. Un saludo!!
No me deja poner Elseif alguna Idea por que? me marca en rojo el "elseif" y dice "compile:error:" Expected:espresion.
Gracias por tu ayuda ....
+ogir noel d Hola !! Copia y pega por aquí tu código para que te pueda ayudar. Un saludo
brother lo e resuelto, lo que sucedio fue que estaba usando mal el ElseIf..
Yo puse
ElseIf
y estaba saltando a poner mi codigo aqui abajo..
pero el elseif tiene que llevar el codigo a continuacion..
Gracias por tu ayuda.. se que parece sin sentido mi problema, pero estoy enpezando a esto... Lo siento mi hermano y gracias....
saludos +1
Hola Juan, sigo todos tus cursos. Son excelentes y eres muy bueno explicándolos.
He visto un fallito en este video y es que al quitar el filtro del formulario la etiqueta se queda colgada con el titulo del ultimo filtro, esto se podría arreglar no? que quede claro que no es ninguna critica sino una pequeña aportación para mejorar el formulario.
Un saludo y sigue así
***** Gracias por el comentario !!! Todo tiene arreglo. En ese caso habría que programar en el evento activar registro del formulario algo así como filtro.value="" siendo filtro el nombre del desplegable. De esta forma después de hacer cualquier operación con los registros, el desplegable quedará en blanco.
Un saludo
pildorasinformaticas Hola Juan, al hacer esto que me dices queda en blanco el desplegable pero la etiqueta sigue ahí al quitar el filtro
Como puedo hacer un doble filtro a partir de que ya desarrolle un filtro?
+Irasema Torres Hola !! Hace mucho tiempo que grabé estos vídeos y no recuerdo exactamente de qué hablaba en este, pero imagino que te refieres a realizar un segundo filtro utilizando docmd.applyfilter.
Si quieres hacer un segundo filtro sobre los resultados filtrados no tienes más que utilizar una segunda instrucción docmd.applyfilter en un control diferente bajo el evento correspondiente.
Un saludo
Si, ya lo intente y me aparece que la condicion Docmd.applyfilter con se codifica, pero bueno gracias
Distinguido Juan, necesito de tu gran ayuda una vez más...He creado un formulario en Access 2013, el cual tiene un cuadro combinado que quiero que después de actualizarlo se completen otros cuadros de textos. Buscando en internet encontré la función Dlookup que resolvería mi problema porque funciona como la función Vlookup de excel.
Sucede que al crear el procedimiento me está dando un error 2471 y no sé a qué se refiere y no sé que anda mal. Ver código más abajo el código:
Private Sub Cliente_AfterUpdate()
Nombre = DLookup("[Nombre]", "[Tabla2]", "Cliente=" & Cliente)
End Sub
Mil gracias
Robert Munoz La sintaxis parece correcta. Necesitaría ver la BBDD para poderte ayudar con esta duda. Un saludo
pildorasinformaticas Cómo puedo adjuntarte la BBDD?
comprimela en zip y envíala a cursos@pildorasinformaticas.es. En el mail redáctame de nuevo la duda. Recibo muchos y se me olvida de que iba cada duda. Un saludo
pildorasinformaticas Estimado Juan, recibiste mi correo?
Hola !! Sí, lo recibí. En breve te contesto. Tengo cientos de mails esperándome. Un saludo
Quiza esto solucione algún problema para quitar el filtro y reducir el código, hice el curso de VBA excel y parte del de SQL, os los recomiendo con muchas +++ y cuando lo juntas todo se pueden hacer cosas divertidas, aquí lo dejo (he cambiado algunos nombres de etiquetas y filtro pero creo que es fácil saber que es cada cosa):
Option Compare Database
Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
ETIQUETA_SECCION.Visible = False
End Sub
Private Sub FILTRO_SECCION_Click()
Dim SENTENCIA_SQL As String
SENTENCIA_SQL = " SELECT * FROM PRODUCTOS WHERE SECCIÓN ='" & FILTRO_SECCION.Value & "'"
DoCmd.ApplyFilter SENTENCIA_SQL
With ETIQUETA_SECCION
.Visible = True
.Caption = "ESTAS VIENDO " & FILTRO_SECCION.Value & " ¿QUITAR FILTRO?"
End With
End Sub
Private Sub ETIQUETA_SECCION_Click()
SENTENCIA_SQL = " SELECT * FROM PRODUCTOS WHERE SECCIÓN LIKE '*'"
DoCmd.ApplyFilter SENTENCIA_SQL
ETIQUETA_SECCION.Visible = False
End Sub
:)) Gracias por tu aporte. Tienes razón en lo que dices. Combinando todo y echando la imaginación a volar, salen cosas sorprendentes. Un saludo!!
Como has podido meter el COMBO con el asistente, a mi solamente me sale el COMBO ?
He realizado esta rutina usando el valor del combo para crear el filtro:
Private Sub cboFiltrarSeccion_Click()
Dim sentencia As String
Dim miSeccion As String
If cboFiltrarSeccion.Value "" Then
miSeccion = cboFiltrarSeccion.Value
'Ojo con las comillas simples
sentencia = "Select * From Productos where seccion='" & miSeccion & "'"
End If
DoCmd.ApplyFilter sentencia
End Sub
CDEI KNOTICA Perfecto !! ¿No hay más comillas de las debidas en el cierre del select ? Es que no veo...
pildorasinformaticas es para encerrar la comilla simple entre dos dobles, eso es lo que me pasa siempre en Access. yo lo que hago es pasarla al bloc de notas y con letra courier estudiar mejor las expresiones sino no se ve nada. jeje.
me siento en desventaja, trato de aprender vba y me atropellas con sql, no lo puedo hacer con vba?
cesar gonzalez No, no puedes. Un saludo
pildorasinformaticas Bueno, no puedes hacerlo "solo" con VBA
no me jodas mi pana, yo pariendo literalmente por programar en vba y tu me dices q facilito... se entiende !!! no no ni de vaina, necesito filtrar un formulario...
cesar gonzalez Hola !! Nunca podrás filtrar un formulario desde VBA si no tienes conocimientos SQL. De igual forma que no se puede correr una maratón si antes no has aprendido a caminar. Un saludo!!
Buen día, felicitaciones son buenos tutoriales por su claridad. Tengo una inquietud y es que al realizar el ejercicio del video 19 me sale error en tiempo de ejecución "2533", revise paso a paso elcódigo pero no logro encontrar el error, me podrias ayudar a aclarar esta situacion. Gracias y buena suerte.
Yo, molestándote de nuevo. ¿Cómo puedo hacer para contar en tiempo real los caracteres y que se muestren en un label o un textbox?
Я люблю тевя Hola !! ¿Qué caracteres? Un saludo
pildorasinformaticas Digamos como en Twitter: va contando hacia atrás los que faltan para llegar al límite de 140. En este caso necesito mostrar "Se han usado X caracteres de Y". Y el "X" se actualice a cada caracters ingresado (sea texto, número, espacio, letra acentuada, etc.).
ahhhh ok ya entiendo. Pues debes utilizar el evento "Al cambiar" del textbox. El código tendría que pensarlo. Se me antoja complicado porque además habría que refrescar el formulario...pero seguro que es posible.
Haz pruebas con el evento al cambiar del textbox donde estés escribiendo caracteres. Un saludo
Private Sub filtrar_seccion_Click()
Dim sentencia As String
aviso_seccion.Visible = True
If filtrar_seccion.Value = "DEPORTES" Then
sentencia = "select * from PRODUCTOS WHERE SECCIÓN='DEPORTES'"
aviso_seccion.Caption = "Estas viendo deportes"
ElseIf filtrar_seccion.Value = "FERRETERÍA" Then
sentencia = "select * from PRODUCTOS WHERE SECCIÓN='FERRETERÍA'"
aviso_seccion.Caption = "Estas viendo deportes"
ElseIf filtrar_seccion.Value = "CONFECCIÓN" Then
sentencia = "select * from PRODUCTOS WHERE SECCIÓN='CONFECCIÓN'"
aviso_seccion.Caption = "Estas viendo confeccion"
ElseIf filtrar_seccion.Value = "JUGUETERÍA" Then
sentencia = "select * from PRODUCTOS WHERE SECCIÓN='JUGUETERÍA'"
aviso_seccion.Caption = "Estas viendo jugueteria"
ElseIf filtrar_seccion.Value = "CERÁMICA" Then
sentencia = "select * from PRODUCTOS WHERE SECCIÓN='CERÁMICA'"
aviso_seccion.Caption = "Estas viendo Ceramica"
End If
DoCmd.ApplyFilter sentencia
End Sub
Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
aviso_seccion.Visible = False
End Sub