Visual Basic - Borrar una tabla de Access desde Visual

Life is soft - evento anual de software empresarial
 
Vista:

Borrar una tabla de Access desde Visual

Publicado por Marina (13 intervenciones) el 10/09/2008 09:29:31
Hola! Quiero borrar una tabla que tengo en Access que se llama zonaTabla. El código que escribo es el siguiente, pero no me funciona:

Private Sub BORRAR_Click()
Dim conexionAccess As Workspace
Dim dbsSocios As Database
Dim rst1 As Recordset

Set conexionAccess = CreateWorkspace("nuevoWorkSpaceAccess", "admin", "", "dbUseAcces")
Set dbsSocios = conexionAccess.OpenDatabase("socios.mdb")

Set rst1 = dbsSocios.OpenRecordset("DELETE * FROM zonaTabla")

rst1.Close
dbsSocios.Close
conexionAccess.Close

El problema creo que lo tiene la consulta, porque escribo otro tipo de consulta, una SELECT por ejemplo, y si que me funciona desde Visual; y pruebo el DELETE en Access y también me funciona; asi que he llegado a la conclusión de que me falla algo al pasar la consulta a Visual. ¿Cómo lo puedo solucionar?

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Te sobra el *

Publicado por Yo (29 intervenciones) el 10/09/2008 16:48:23
La instrucción "DELETE" no lleva asterisco: "DELETE FROM zonaTabla"
El asterisco se usa con el Select para indicar TODOS los campos de la tabla.
(A ver qué opina el maestro "Vengador", porque seguramente saldrá con una babosada de las suyas)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Te sobra el *

Publicado por marchand (59 intervenciones) el 10/09/2008 18:13:45
Esa afirmación es totalmente erronea, se puede utilizar DELETE con o sin asterisco.

Marina:
Ataca directamente a la base de datos, sin espacios de trabajo ni recordsets

Dim dbsSocios As DAO.Database
Set dbsSocios = OpenDatabase(App.Path & "socios.mdb", False, False, ";" & "pwd=TuPassword;")

dbsSocios.Execute "Delete * From ZonaTabla"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Te sobra el *

Publicado por marchand (59 intervenciones) el 10/09/2008 18:16:27
antes de " socios.mdb" tienes que poner una barra invertida que aquí, uaunque la escribas, no la visualiza.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Te sobra el *

Publicado por pacopaz (173 intervenciones) el 10/09/2008 19:16:08
Intenta solo con "DELETE zonaTabla"
El standart de borrado en sql es mencionar solo la tabla sin asterisco y sin from.
Aunque reconozco que el standat de sql no aplica para Access, debería funcionar.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Te sobra el *

Publicado por marchand (59 intervenciones) el 10/09/2008 19:37:49
¿Sin asterisco y sin from?

Si lo pone como dices, le va a dar un error se síntasis en la instrucción DELETE.

¿Porqué antes de contestar, no comprobais lo que decís?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Te sobra el *

Publicado por pacopaz (173 intervenciones) el 10/09/2008 20:02:15
Y me disculpo.
Normalmente no ocupo para nada Access, así que esperaría que funcionara.
Como veo que no, espero que Marina no tome en cuenta mi sugerencia y se ahorre algo de tiempo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solución correcta

Publicado por Marina (13 intervenciones) el 11/09/2008 08:24:40
Hola!
Al final he econtrado la solución con lo que me habeis dicho, la sentencia correcta es (por lo menos la que me funciona correctamente):

Set conexionAccess = CreateWorkspace("nuevoWorkSpaceAccess", "admin", "", "dbUseAcces")
Set dbsSocios = conexionAccess.OpenDatabase("socios.mdb")

dbsSocios.Execute ("DELETE * FROM zonaTabla;")

dbsSocios.Close
conexionAccess.Close

Gracias por todo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Aclarando

Publicado por Yo (29 intervenciones) el 11/09/2008 16:44:43
Puies ni tanto así como "totalmente erronea", porque intenta hacerlo con una tabla de MySQL y te dará error de sintaxis; pero tienes razón en que Access sí lo soporta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar