Creación de tablas temporales

Hola llodax buen día, cada vez me surgen nuevos problemas, el que te voy a plantear creo que es difícil, tengo en un formulario un cuadro combinado, como hago para que cuando seleccione cualquier registro en este cuadro, me elimine una tabla de nombre rut y me cree nuevamente una tabla de nombre rut, pero solamente con el registro seleccionado en el cuadro combinado, ej si selecciono en el cuadro combinado 1012 al oprimir un botón de comando me elimine y después me cree la tabla pero solamente con el registro 1012, agradezco tu ayuda en este tema, pero por favor explicame de la manera más sencilla y que lo pueda entender

1 Respuesta

Respuesta
1
Joder... después de escribir una respuesta larga, se colgó la página... Bueno, la repito esquemáticamente.
Si quieres quedarte sólo con un registro de la tabla... ¿por qué no borras los que no necesitas en lugar de montar ese tinglado?
Nota sobre la peligrosidad de las tablas temporales: solo consigues aumentar ficticiamente el tamaño de tu bdd. A la larga te va a dar problemas... a no ser que utilices bdd externas temporales.
Finalmente decirte que, en lugar de preguntarme como hacer eso, seria mejor que me contaras el objetivo, porque es posible (intuyo) que exista una forma más adecuadad de hacerlo.
Hola buen día, mira el objetivo de esto es el siguiente, tengo unas tablas con unas rutas ej CARPETA\SUB CARPETA\NOMBRE DEL ARCHIVO. PDF la idea era que el usuario desde un formulario escribriera o seleccionara la unidad donde se encentran los archivos c:\, d:\ o la que fuera, unir estos dos campos en una consulta y el resultado, que viene siendo la ruta completa c:\CARPETA\SUB CARPETA\NOMBRE DEL ARCHIVO. PDF lo arroje en otro formulario, trate de hacerlo uniendo estos dos campos pero se concatenaba con todas las unidades que estaban en la tabla, trate de hacerlo con solo un registro escribiendo la unidad, pero al escribir la primera me dejaba crear más registros, el resultado de esto es igual al anterior, en este formulario le puse NO en las propiedades permitir agregar, pero el formulario al momento de abrirlo aparece completamente bloqueado y no me muestra nada, por lo tanto el usuario no podrá escribir la unidad deseada, ¿cómo podría realizar esto? Explicame de la manera más fácil, soy muy novato en access.
Pues no se si te entendí...
Para empezar... ¿dónde están los documentos?
Si la carpeta raíz de esos documentos cuelga de la misma carpeta dónde se ejecuta la aplicación, puedes saber la ruta utilizando CurrentProject. Path.
Si la carpeta de los documentos esta situada en un servidor, lo adecuado seria utilizar una ruta lógica (\\server\carpeta\sucarpeta) en lugar de la unidad de disco asociada en la máquina a esa ubicación de red.
Si el problema está en que el usuario puede tener los documentos en una unidad de disco físico (unidad externa, usb) que no tiene nada que ver con la instalación de la aplicación ni un servidor, yo utilizaría una tabla de configuración de usuario.
Ese tipo de tablas las utilizo casi siempre. Me permiten definir varias variables de entorno propias del usuario y sirven para múltiples propósitos. Esa tabla se guarda en la propia base de datos. Ojo, se supone que utilizas un sistema FrontEnd-BackEnd para ese sistema.
En esa tabla guardaríamos la unidad dónde el usuario guarda los documentos.
En el momento de necesitar una ruta concreta, recuperaría la unidad del usuario y la concatenaría con la ruta que tienes en las tablas.
Pero insisto que no se si te entendí
Xavi
Hola buen día, mira los archivos se encuentran guardados en este momento en el servidor, pero en otras terminales se deben guardar en c, cuando necesiten llevar la información en una usb, todos los equipos no la reconocen como la misma unidad, me explico, hay unos equipos, que la reconocen como unidad f, otros como unidad e, y otros con g, se presentan varios eventos a la vez para esta única base, lo que se pretende es que exista en cada unidad una única carpeta con toda la información y el usuario final seleccione la unidad donde se encuentre esta carpeta, para que al momento de seleccionar la unidad concatene la unidad seleccionada con el resto de la ruta que se encuentra en las tablas, no se si fui lo suficientemente claro, si tienes una mejor opción te lo agradecería
Yo ya te planteé, desde mi punto de vista, la mejor opción pero también existen otras en función de dónde quieras hacer eso (que no me quedó muy claro).
Por ejemplo no sé si los datos de las tablas están en servidor (y todos acceden a las mismas tablas) o es una aplicación que trabaja independientemente.
Tampoco sé si se trata de un único formulario o lo quieres hacer en varios.
Una opción es que el usuario, al entrar en la aplicación defina la unidad. Esa unidad la puedes guardar en una variable publica y recuperarla en cualquier momento.
En el momento de presentar la lista de documentos, debes concatenar la variable con la ruta relativa que tienes en la tabla. Dado que una consulta no puede utilizar variables, existe un truco que te permite utilizarlas en las consultas.
En un módulo independiente creas una función que devuelva ese valor:
Public Function DameUnidad() As String
  DameUnidad = pubUnidad ' es la variable que guarda el valor que el usuario seleccionó
End Function
Después, en el diseño de la consulta, concatenas esa función con la ruta relativa y es lo que muestras en realidad. La SQL podría quedar, más o menos, así:
SELECT DameUnidad & [tabla]![RutaRelativa] As RutaCompleta FROM tabla;
Eso si, el resultado de esa consulta no es editable por el usuario.
La verdad,! No entendí !, es una base que trabaja independiente, las tablas se encuentran en la misma base y el resultado se visualiza en un único formulario,, se me ocurre otra manera, como podría hacer para que cuando se abra un formulario, siempre elimine el primer registro automáticamente, con que fin, para que cuando quieran cambiar una unidad deben entrar a este formulario al momento de entrar la base automáticamente elimine el primer y único registro, así ellos podrán escribir la unidad deseada y no tendré problemas que graben varias unidades
Si explicáramos todas las cosas desde un principio y no lo dejáramos a la imaginación de los que contestamos, las cosas serian más fáciles.
No entiendo lo de borrar el primer registro...
Pero si vas a utilizar un único formulario, añade un cuadro de texto dónde el usuario deba introducir la letra de la unidad y un botón para mostrar los registros.
Si el usuario no mete una letra de unidad, no le muestres los datos.
Si el usuario mete una letra de unidad, cambia la SQL para que te muestre el campo concatenado y muéstrale el listado.
Me.RecordSource = "SELECT '" & Me!txtLetra & "' & [Tabla]![CampoRuta] AS RutaCompleta FROM Tabla;"
La verdad es que, con las distintas opciones y formas de hacerlo, ya deberías tener la solución o poder trabajar con las distintas opciones hasta encontrarla por tu cuenta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas