Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Guardar resultado consulta vb access

Estas en el tema de Guardar resultado consulta vb access en el foro de Bases de Datos General en Foros del Web. Hola! Estoy haciendo un mini programita muy sencillo en visual basic con access y necesito añadirle código para hacer una cosa que no sé ni ...
  #1 (permalink)  
Antiguo 16/08/2006, 09:17
 
Fecha de Ingreso: diciembre-2004
Ubicación: La Rioja
Mensajes: 336
Antigüedad: 19 años, 4 meses
Puntos: 2
Guardar resultado consulta vb access

Hola!

Estoy haciendo un mini programita muy sencillo en visual basic con access y necesito añadirle código para hacer una cosa que no sé ni por dónde empezar. Creo que es algo sencillo pero mis conocimientos son entre mínimos y nulos.

Explico el asunto:

El programita en cuestión es una base de datos access 2002 con un módulo que realiza unas acciones muy sencillas: ejecuta consultas ya creadas, exporta tablas, añade registros, modifica campos...

Una de las tablas de mi base de datos, tiene un campo que es la ruta de unas fotografías que están ubicadas en mi equipo. He creado una consulta que me devuelve algunos registros de esa tabla.

Lo que necesito es eliminar las fotografías de los registros que me devuelve la consulta. Es decir, quiero hacer un bucle que recorra el resultado de la consulta y elimine de mi equipo el archivo cuya ruta es el campo "ruta" del registro. En definitiva, eliminar todas las rutas que devuelve la consulta.

Buscando por ahí he llegado a esto:

Dim Db As Database 'Variable para las Bases de Datos
Set Db = OpenDatabase("C:\Webs\Gran vía\BBDD\datos2.mdb")

Dim SQLTmp As String
Dim MySnap As Recordset

SQLTmp = "select * from Fotografias" 'Aquí me da igual ejecutar una consulta ya creada que la sentencia sql como aparece

Set MySnap = Db.OpenRecordset(SQLTmp, dbOpenSnapshot)

Y aquí me faltaría el bucle con el comando kill para ir eliminando los archivos. Uno de los problemas es que lo que yo quiero no es abrir otra base de datos, sino ejecutar una consulta sobre una tabla de esta base de datos donde está el módulo con el código. Pero con esto me obliga a que sea otra base de datos porque si no se queja de que está abierta de modo exclusivo, con lo que he tenido que hacer un duplicado de la base de datos para poder probarlo. Quizás es cuestión de que no se abra de modo exclusivo pero no sé si hay forma.

Por otra parte, tal y como lo tengo ahora, me lanza el error 13 en la última linea. Creo que una vez consiga tener el recorset con los datos, no tendré problema en el bucle, pero no consigo guardar el resultado para poder recorrerlo después.

Muchas gracias por su ayuda y por su tiempo
Un saludo
  #2 (permalink)  
Antiguo 17/08/2006, 03:08
 
Fecha de Ingreso: diciembre-2004
Ubicación: La Rioja
Mensajes: 336
Antigüedad: 19 años, 4 meses
Puntos: 2
Bueno, lo de no tener que abrir otra base de datos se solucionaría con esto:

Dim db2 As Database
Dim rs As Recordset
Set db2 = CurrentDb()

Dim SQL As String
SQL = "SELECT ruta from Fotografias"

Set rs = db2.OpenRecordset("SELECT ruta from Fotografias", dbOpenDynaset)

Pero me sigue lanzando el error 13 al abrir el recordset.

Por favor, alguna sugerencia?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:30.