OBJETIVO: El objetivo de este foro es el de divulgar MS Access y ayudar a los usuarios en la solución de dudas y consultas, siempre indicando el camino, para que el usuario aprenda, estudie y consiga caminar con las propias piernas. No espero nada a cambio (quizás tan sólo un gracias, ya que nadie me paga por hacer esto: gastar conexión, interpretar dudas, ubicar respuestas, en sintesis perder tiempo y/o dinero, sólo por la voluntad de ayudar) e intento siempre motivar al usuario a aprender, dando sólo guías o pistas y en algunos casos algún código completo. No soy de aquellos que gusta dar el código desarrollado y comentado, por el simple hecho de que eso lleva tiempo (no me sobra, ya que trabajo) y mi deseo es incentivarte a aprender.
El hecho que exista este site gratuíto y que lo mantenga en forma diaria, no me obliga a contestar la dudas de los usuarios, y menos aún la de tener que dedicar mi tiempo a desarrollar códigos completos por la falta de delizadeza o exceso de abuso de algunos. Cómo mencioné anteriormente el objetivo es mostrarte el camino...
"No soy favorable de dar pescado (leáse desarrollar código), sino de enseñar a pescar (leáse mostrar cómo desarrollar el código) , ya que así, sí tienes hambre sabrás pescar (leáse voluntad de aprender y crear tus propias aplicaciones) "
Si no te gusta nuestra postura, eres libre de irte y no volver, ya que nada perderás (no has pagado nada). En cambio si lo que deseas es aprender y valorar el esfuerzo y tiempo de otros, estás convidado de por vida por acá!!!
Alextroy (no login) de la dirección IP 147.84.254.200
Por favor alguien sabe como podria almacenar el resultado de una select en una variable para luego trabajar con ello. La select solo me devuelve un valor.Seria algo parecido a:
dim codigo as String
codigo=SELECT num FROM tabla;
Pero obviamente no es asi.¿Alguien puede escharme una mano? gracias
Lo que quieres es que el conjunto de registros ( y sus campos) que surgen de una consulta (Select) sean concatenados en un \unico string??? Al go así como:
01,Zapato,8.45,02,Jeans,7.30... etc???
Para ello deberá abrir el recordset (Select ...)mediante el método OpenRecordset y una vez abierto el mismo recorrer uno a uno los registros concatenado sus valores.
te recomiendo verificar en el F1 dicho método y sus ejemplos
Hola, lo siento pero no era eso lo que yo pretendia. Voy a ver si me puedo explicar mejor.
Tengo un formulario con 3 tablas (pcs, impresoras, monitores). En cada una de las tablas hay un campo llamado "codigo".
Lo que pretendo es hacer en el formulario un campo de texto (llamado "campo_busqueda") y un botón de llamada a un informe de la tabla. Hasta aqui bien.
Lo que yo pretendo es introducir manualmente un numero (que seria el codigo) en el campo de texto, y generar un codigo que me compare ese numero con el campo "codigo" de las tres tablas, para asi saber en que tabla se encuentra y que me llame a un informe de dicha tabla. Para ello quiero hacer una select e introducir el resultado de la select en una variable para poder trabajar con el facilmente (el resultado de la select será un solo código). Voy a poner el código que mas o menos pretendo utilizar.
------------------------------------------------------
dim cod as recordset
cod = ("SELECT codigo FROM pc WHERE codigo = forms! formulario!campo_busqueda")
----[con esto lo que pretendo es almacenar el resultado de la Select en "cod", obviamente asi no es como se hace. Es lo que pretendo averiguar]-----
if cod<>"" then
stDocName = "Lista_pc"
DoCmd.OpenReport stDocName, acPreview
else
cod = ("SELECT codigo FROM monitores WHERE codigo = forms!formulario!campo_busqueda")
en if
if if cod<>"" then
stDocName = "Lista_monitores"
DoCmd.OpenReport stDocName, acPreview
else
cod = ("SELECT codigo FROM impresoras WHERE codigo = forms! formulario!campo_busqueda")
if
if cod<>"" then
stDocName = "Lista_impresoras"
DoCmd.OpenReport stDocName, acPreview
else
msgbox ('Ese codigo no pertenece a ningun recurso')
end if
------------------------------------------------------
No se si esta muy claro, de todas formas resumiendo lo que hago es introducir el resultado de la SELECT en "cod" y luego comprobar si "cod" esta, vacio. Si no lo está me llama al informe correspondiente, es decir, el de la tabla en la que la select si ha devuelto algun valor, y si "cod" está vacio me realiza la misma select pero en otra tabla, y asi repitiendo la operación.
Epero que alguien pueda entender lo que he escrito porque sinceramente no lo entiendo muy bien ni yo. Pero en fin, agradeceria vuesta ayuda. Hasta pronto.
Utilizadno le método OpenRecordset puedes abrir esa consulta y mediante el métodos FindFirst ubicas si existe le registro deseados Con NoMatch verifica si hubo o no coinidencia. Si hubio abre el informe , sino pasa al siguiente
+ Fácil te creas 3 consultas con su criterio respectivo y mediante DCount verificas cual devuelve un resultado > 0
Muchas gracias R.Roca pero tendras que explicarmelo un poco mas claro. Yo antes sabia hacerlo con VB6 pero de eso ya hace algún tiempo y tengo que refrescarme la memoria. Ademas creo recordar que cuando manejaba el VB6 no era del todo igual al editor que trae Access ¿o me equivoco?. Bueno, el caso esque no se como crear el Openrecordset, ni el recordset en Access. si me lo pudieses decir de forma clara o con algun ejemplo te lo agradeceria.
Muchas gracias R.Roca pero tendras que explicarmelo un poco mas claro. Yo antes sabia hacerlo con VB6 pero de eso ya hace algún tiempo y tengo que refrescarme la memoria. Ademas creo recordar que cuando manejaba el VB6 no era del todo igual al editor que trae Access ¿o me equivoco?. Bueno, el caso esque no se como crear el Openrecordset, ni el recordset en Access. si me lo pudieses decir de forma clara o con algun ejemplo te lo agradeceria.
Ok, por fin he conseguido meter el valor de la select en una variable. Ha sido muy facil usando la funcion "Dlookup". Ahora se me presenta otro problema, y esque si el valor de lo que me devuelve el Dlookup es nulo me da un error. Sabriais decirme como solucionarlo??? Esta es la linea que he escrito.
"Los mayores best sellers son los Manuales y Archivos de Ayuda, pero ellos son como los libros de Stephen Hawking: muchos compran, pocos leen y muchos menos entienden alguna cosa."