Access - AYUDA - ABRIR TABLA EXTERNA - DE OTRA BASE DATOS

   
Vista:

AYUDA - ABRIR TABLA EXTERNA - DE OTRA BASE DATOS

Publicado por jose a. (5 intervenciones) el 07/10/2008 15:04:29
SALUDOS :
Tengo una consulta (VER-Vista SQL) que me abre la tabla de PERSONAL de otra base de datos llamada TODO.MDB
que se encuentra en c:

SELECT PERSONAL.*, *
FROM PERSONAL IN 'C:TODO.MDB';

y que funciona correctamente.

pero si quiero definir la dirección en donde se encuentra la tabla mediante un objeto en un formulario me da error
Es decir quiero definirle en un formulario la ruta

[Forms]![Formularionombre]![CAMPOOTEXTO-RUTA]

ENTONCES TEORICAMENTE LO PONDRÍA ASÍ :

SELECT PERSONAL.*, *
FROM PERSONAL IN '[Forms]![Formularionombre]![CAMPOOTEXTO-RUTA] ';


Pero no funciona no reconoce [Forms]![Formularionombre]![CAMPOOTEXTO-RUTA] como un campo de texto

y dice : No se pudo encontrar el archivo 'c:Documents and SettingsusuariomisdocumentosForms!Formularionombre!CAMPOOTEXTO-RUTA'

alguien sabría porque y como solucionarlo

gracias anticipadas.
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

RE:AYUDA - ABRIR TABLA EXTERNA - DE OTRA BASE DATO

Publicado por Enrique (1299 intervenciones) el 07/10/2008 19:06:57
Hola:
Supongo que esto lo quieres para asignarle a un formulario o a un informe como Origen del Registro, la Tabla de una Base externa. En ese caso en lugar de usar una consulta física en la ventana de base de datos, puedes usar una consulta Sql por código dándole valor directamente al Recordsource del objeto (formulario o informe):

Dim Ruta As String
Ruta = Form_Formularionombre.CAMPOTEXTO-RUTA
Me.RecordSource = "SELECT * FROM PERSONAL IN'" & Ruta & "'"

Como es lógico, el formulario "Formularionombre" debe de permanecer abierto, salvo que la variable "Ruta" la definas como Global en un módulo en cuyo caso se puede cerrar el formulario, ya que dicha variable conservará su valor.

Espero que sea esto no que nececitas.

Saludos
Enrique
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:AYUDA - ABRIR TABLA EXTERNA - DE OTRA BASE DATO

Publicado por jose a. (5 intervenciones) el 08/10/2008 13:58:26
Gracias Enrique .

Esto que me comentas funciona en el formulario o en el informe poniendole como origen de datos, más no es ésto lo que persigo.
M explico , al pulsar un boton en un formulario , que se abra una consulta de una tabla de otra base de datos , pero que la ruta figure en un objeto del formulario .

lo he probado poniendo una variable global, tal y como me indicas y no pirula.
la consulta no reconoce la variable

SELECT PERSONAL.*, *
FROM PERSONAL IN ' RUTA';

SELECT PERSONAL.*, *
FROM PERSONAL IN ' " & RUTA & " ';

DE ninguna forma .

bueno seguiré pensando .

de todas formas decirte que algunas de las soluciones enviadas por ti a otros problemas planteados por los foreros las tengo imprimidas, porque la verdad merecen la pena .

gracias de nuevo , un saludo
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:AYUDA - ABRIR TABLA EXTERNA - DE OTRA BASE DATO

Publicado por Enrique (1299 intervenciones) el 08/10/2008 15:38:00
Hola Jose A. :

Ninguna de las dos formas que pones está correcta, no lo estás haciendo como te he dicho. En la primera no pones las comillas dobles a ambos lados ni utilizas el signo "&" para enlazar, y en la segunda te faltan unas comillas dobles al final, en vez del punto y coma.

Debes ponerlo así:
SELECT * FROM PERSONAL IN '" & RUTA & "'"

Donde la variable "Ruta" debe contener la cadena de la Ruta, ya sea directamente o tomándola de un campo de texto, de alguna de estas dos formas:

Ruta = "C:/Documents and Setting/Mis Documentos/BaseExterna.mdb"
o
Ruta = Forms!FormularioNombre!CuadroTexto

Un saludo
Enrique
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:AYUDA - ABRIR TABLA EXTERNA - DE OTRA BASE DATO

Publicado por Enrique (1299 intervenciones) el 08/10/2008 19:20:44
Ahora me doy cuenta que tratas de abrir una Consulta de una Base externa, pero sustituyendo la Ruta FIJA dentro de la vista SQL de dicha consulta, por una ruta que escribes en un cuadro de texto de un formulario y eso ahí no se puede hacer. CreÍa que tratabas de asignar la ruta al RecordSource de otro formulario.

Tienes que hacerlo de esta forma, en el Evento "Al hacer click" de un botón:

Private Sub Comando1_Click()
On Error Resume Next
Dim Consulta As QueryDef
Dim Ruta As String, Parametros As String
DoCmd.DeleteObject acQuery, "Consulta1" ' Elimina la Consulta si ya existe
Ruta = Me.CAMPOTEXTO-RUTA
Set Consulta = CurrentDb.CreateQueryDef("Consulta1")
Parametros = "SELECT * FROM PERSONAL IN'" & Ruta & "'"
Consulta.SQL = Parametros
DoCmd.OpenQuery "Consulta1" ' Abre la Consulta de la Base Externa
End Sub

Private Sub Form_Close()
On Error Resume Next
DoCmd.DeleteObject acQuery, "Consulta1" ' Elimina la Consulta al cerrar el Form.
End Sub

Esto crea la consulta "Consulta1" de forma temporal, para mostrar los datos de la Tabla externa y luego la elimina. Prueba ahora y veras como funciona.

Saludos de nuevo.
Enrique
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:AYUDA - ABRIR TABLA EXTERNA - DE OTRA BASE DATO

Publicado por jose a. (5 intervenciones) el 09/10/2008 09:40:51
Eso es exactamente lo que quería hacer .

Gracias ,Enrique
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:AYUDA - ABRIR TABLA EXTERNA - DE OTRA BASE DATO

Publicado por Enrique (1299 intervenciones) el 09/10/2008 20:24:32
Aunque parece que te vale así, te indico otra forma de hacerlo más sencilla sin necesidad de crear la consulta cada vez ni eliminarla, dejas la consulta tal como la tienes ahora y al formulario le añades otro campo para poner el nombre de la tabla (seguramente se te dará el caso de que el nombre de la tabla cambie al cambiar de mdb):

Private Sub Comando1_Click()
Dim QD As QueryDef

'Seleccionamos la consulta
Set QD = CurrentDb.QueryDefs("Consulta1")

'Le introducimos la nueva sentencia SQL
QD.SQL = "Select * From " & txtTabla & " IN'" & txtRuta & "'"

'Abrimos la Consulta
DoCmd.OpenQuery "Consulta1"
End Sub
-------------------------------------------------------------------------------------------------------
txtTabla = campo donde se escribe el nombre de la tabla de la base externa.
txtRuta = campo donde se escribe la ruta y el nombre de la base mdb externa.

Un saludo
Enrique
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:AYUDA - ABRIR TABLA EXTERNA - DE OTRA BASE DATO

Publicado por jose a. (5 intervenciones) el 10/10/2008 13:43:04
si me sirve, Gracias de nuevo Enrique
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