Discussion:
Importar archivo de texto a Access
(demasiado antiguo para responder)
Gemma
2005-09-21 21:07:29 UTC
Permalink
Hola a todos:
Al querer realizar una importación de datos de un archivo ttx. a Access, me
encuentro con que me da error, al no encontrar el archivo Empresa.ttx que
está en la carpeta Mis Documentos.
El código que aplico es el siguiente:

Private Sub command1_click()
'**********************************************
'Private Sub Importar_EjerTexto()
Dim StrTablaOrigenTexto As String


'===========================================================================
==================
' IMPORTO el ARCHIVO DE TEXTO.TXT A ACCESS

'===========================================================================
==================

' La conexion la he realizado a través de variable pública instalada
' en módulo bas.

On Error GoTo salir
Set Conexion = New ADODB.Connection
Conexion.ConnectionString = ConexionBDatos
Conexion.Open

'Identificamos la tabla de origen.
StrTablaOrigenTexto = "''[TEXT; DATABASE=" & App.Path & "]"
'StrTablaOrigenTexto = "'" & App.Path & "''TEXT;'"

'Importamos los datos, creando una nueva tabla
Conexion.Execute "SELECT * INTO Tabla_Importacion_Texto FROM
[Empresa#txt] IN " & StrTablaOrigenTexto

' Cerramos la conexión
Conexion.Close

salir:
If Err.Number <> 0 Then
StrMensaje = Err.Description
WMensajeError = MsgBox(StrMensaje, , "Aviso")
End If

End Sub

Y el mensaje de error: El motor de datos de Microsoft Jet no pudo encontrar
el objeto 'Empresa.txt'. Asegúrese de que
el objeto existe y que ha escrito el nombre y la ruta de acceso del objeto
correctamente.

Bueno, si alguno de vosotros me puede indicar que hago mal, le quedaré muy
agradecida como siempre.
Un saludo.
Gemma.
SoftJaén
2005-09-22 13:56:50 UTC
Permalink
Post by Gemma
Al querer realizar una importación de datos de un archivo ttx. a Access,
me encuentro con que me da error, al no encontrar el archivo
Empresa.ttx que está en la carpeta Mis Documentos.
Hola, Gemma:

Y el archivo ttx, ¿qué extensión física tiene? ¿Empresa.txt o Empresa.ttx?

Por el error que indicas, parece ser que no se encuentra el archivo
[Empresa#txt], y lo primero que te pregunto es, ¿has escrito bien la
extensión del archivo? ¿No te habrás equivocado al escribir la extensión del
archivo, en la consulta SQL de creación de tabla? :-)

Se comprende que el archivo de texto se encuentra ubicado en la carpeta
devuelta por la propiedad «Path» del objeto «App», que según tus
comentarios, se corresponde con la carpeta «Mis documentos».

Un saludo
--
Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Gemma
2005-09-22 16:07:58 UTC
Permalink
Hola Enrique: Es que te he respondido pero no se donde ha ido a parar la
respuesta, bueno te lo vuelvo a comentar.
Lo del archivo ttx es un error a la hora de escribir el mensaje, ya que en
la SQL está correcto, he copiado desde el código la sentencia y son txt, es
que estoy trabajando con informes en ttx y me he equivocado. Bueno, también
el archivo Empresa.txt está en Mis documentos, pero no entiendo porqué dá
error, ya que lo he copiado de las indicaciones de tus libros.
En fin Enrique, si ves que he hecho mal me lo indicas.
Recibe como siempre un fuerte abrazo.
Gemma.
Post by SoftJaén
Post by Gemma
Al querer realizar una importación de datos de un archivo ttx. a Access,
me encuentro con que me da error, al no encontrar el archivo
Empresa.ttx que está en la carpeta Mis Documentos.
Y el archivo ttx, ¿qué extensión física tiene? ¿Empresa.txt o Empresa.ttx?
Por el error que indicas, parece ser que no se encuentra el archivo
[Empresa#txt], y lo primero que te pregunto es, ¿has escrito bien la
extensión del archivo? ¿No te habrás equivocado al escribir la extensión del
archivo, en la consulta SQL de creación de tabla? :-)
Se comprende que el archivo de texto se encuentra ubicado en la carpeta
devuelta por la propiedad «Path» del objeto «App», que según tus
comentarios, se corresponde con la carpeta «Mis documentos».
Un saludo
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
SoftJaén
2005-09-22 16:58:20 UTC
Permalink
Post by Gemma
Lo del archivo ttx es un error a la hora de escribir el mensaje, ya que en
la SQL está correcto, he copiado desde el código la sentencia y son txt, es
que estoy trabajando con informes en ttx y me he equivocado. Bueno, también
el archivo Empresa.txt está en Mis documentos, pero no entiendo porqué dá
error, ya que lo he copiado de las indicaciones de tus libros.
¿Estamos hablando de un archivo de texto plano delimitado?

Pues no lo entiendo Gemma. La consulta SQL está bien construida, y si el
archivo «Empresa.txt» se encuentra en la unidad y carpeta especificada por
el valor de la propiedad «App.Path», no deberías de obtener el error que
comentas. Suponiendo que la carpeta «Mis documentos» se encuentre en la
unidad C:\, la consulta SQL sería así:

SELECT * INTO Tabla_Importacion_Texto FROM [Empresa#txt]
IN ''[TEXT; DATABASE=C:\Mis documentos]

La única duda que me queda, es conocer la cadena de conexión que guarda la
variable «ConexionBDatos», que me imagino será una cadena de conexión válida
a la base de datos Microsoft Access, que es donde deseas importar el archivo
de texto.

Lo siento, pero por ahora no veo donde puede estar el problema, si tal y
como comentas, existe el archivo «Empresa.txt» en la carpeta «X:\Mis
documentos».
--
Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.
Gemma
2005-09-23 06:29:48 UTC
Permalink
Hola Enrique:
La cadena de conexión está hecha a través de módulo bas y es la siguiente:
ConexionBDatos = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\gemmafin.mdb;Persist Security
Info=False;Jet OLEDB:Database Password=18GM05"
Para mí el error está que no encuentra en Mis Documentos el archivo
Empresa.txt. Cuando entro en propiedades del archivo txt, su ubicación es
C:\Documents and Settings\Gemma\Mis documentos, y para mí creo que el error
está en la ruta, y no se como poner en tu instrucción esta ruta, ya que la
aplicación es para ser distribuida.
El error que da es que el motor Jet no pudo encontrar el objeto
'Empresa.txt'. Asegúrese de que el objeto existe, y que ha escrito el nombre
y la ruta de acceso al objeto correctamente.
Bueno Enrique, si crees que el problema es de la ruta, ¿sabes como la tengo
que poner para que me la reconozca en cualquier ordenador, siempre que el
archivo *.txt esté en Mis Documentos?.
Un saludo.
Gemma.
Post by Gemma
Post by Gemma
Lo del archivo ttx es un error a la hora de escribir el mensaje, ya que en
la SQL está correcto, he copiado desde el código la sentencia y son txt,
es
Post by Gemma
que estoy trabajando con informes en ttx y me he equivocado. Bueno,
también
Post by Gemma
el archivo Empresa.txt está en Mis documentos, pero no entiendo porqué dá
error, ya que lo he copiado de las indicaciones de tus libros.
¿Estamos hablando de un archivo de texto plano delimitado?
Pues no lo entiendo Gemma. La consulta SQL está bien construida, y si el
archivo «Empresa.txt» se encuentra en la unidad y carpeta especificada por
el valor de la propiedad «App.Path», no deberías de obtener el error que
comentas. Suponiendo que la carpeta «Mis documentos» se encuentre en la
SELECT * INTO Tabla_Importacion_Texto FROM [Empresa#txt]
IN ''[TEXT; DATABASE=C:\Mis documentos]
La única duda que me queda, es conocer la cadena de conexión que guarda la
variable «ConexionBDatos», que me imagino será una cadena de conexión válida
a la base de datos Microsoft Access, que es donde deseas importar el archivo
de texto.
Lo siento, pero por ahora no veo donde puede estar el problema, si tal y
como comentas, existe el archivo «Empresa.txt» en la carpeta «X:\Mis
documentos».
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.
SoftJaén
2005-09-24 13:13:33 UTC
Permalink
Post by Gemma
Para mí el error está que no encuentra en Mis Documentos el archivo
Empresa.txt. Cuando entro en propiedades del archivo txt, su ubicación es
C:\Documents and Settings\Gemma\Mis documentos, y para mí creo que el
error está en la ruta, y no se como poner en tu instrucción esta ruta, ya
que la aplicación es para ser distribuida.
Bueno Enrique, si crees que el problema es de la ruta, ¿sabes como la
tengo que poner para que me la reconozca en cualquier ordenador,
siempre que el archivo *.txt esté en Mis Documentos?.
Pues ahí es donde está el problema. ¿Qué valor devuelve App.Path? Si dicha
propiedad devuelve la carpeta «Mis documentos» del usuario que ha iniciado
la sesión (por ejemplo, C:\Documents and Settings\Gemma\Mis documentos), no
tendrás ningún problema, siempre y cuando el archivo de texto exista en
dicha carpeta.

Para conocer la carpeta «Mis documentos» del usuario que ha iniciado la
sesión, puedes consultar el valor de la variable de entorno «UserProfile»,
por lo que deberás de modificar el código para que se quede de la siguiente
manera:

'Identificamos la tabla de origen.
StrTablaOrigenTexto = "''[TEXT; DATABASE=" & _
Environ("UserProfile") & "\Mis documentos]"

Pero no se yo si es una buena elección ubicar el archivo en dicha carpeta,
porque cada usuario tiene su correspondiente carpeta «Mis documentos», y
para que todos los usuarios puedan acceder al archivo, entiendo que lo mejor
es colocarlo en alguna carpeta que pueda ser utilizada por todos aquellos
que inicien una sesión en el equipo.

En resumidas cuentas, para importar el archivo, debes de indicar la ruta
completa de la carpeta donde se encuentre localizado el archivo de texto.
--
Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Gemma
2005-09-26 20:54:36 UTC
Permalink
Hola Enrique::
Esta última solución ha solucionado el problema. LA conexión y la creación
de la tabla funciona perfectamente. Ahora nada más me queda montar el
esquema del archivo schema y yá lo tengo solucionado.
Te respondí el mismo día que me enviaste la última respuesta, pero no sé
porque a veces no me sale la respuesta.
Bueno, ya está solucionado que era lo importante.
Enrique recibe un beso de tu amiga, aunque ahora no hablemos tanto, siempre
estás ahí.
Gemma.
Post by SoftJaén
Post by Gemma
Para mí el error está que no encuentra en Mis Documentos el archivo
Empresa.txt. Cuando entro en propiedades del archivo txt, su ubicación es
C:\Documents and Settings\Gemma\Mis documentos, y para mí creo que el
error está en la ruta, y no se como poner en tu instrucción esta ruta, ya
que la aplicación es para ser distribuida.
Bueno Enrique, si crees que el problema es de la ruta, ¿sabes como la
tengo que poner para que me la reconozca en cualquier ordenador,
siempre que el archivo *.txt esté en Mis Documentos?.
Pues ahí es donde está el problema. ¿Qué valor devuelve App.Path? Si dicha
propiedad devuelve la carpeta «Mis documentos» del usuario que ha iniciado
la sesión (por ejemplo, C:\Documents and Settings\Gemma\Mis documentos),
no tendrás ningún problema, siempre y cuando el archivo de texto exista en
dicha carpeta.
Para conocer la carpeta «Mis documentos» del usuario que ha iniciado la
sesión, puedes consultar el valor de la variable de entorno «UserProfile»,
por lo que deberás de modificar el código para que se quede de la
'Identificamos la tabla de origen.
StrTablaOrigenTexto = "''[TEXT; DATABASE=" & _
Environ("UserProfile") & "\Mis documentos]"
Pero no se yo si es una buena elección ubicar el archivo en dicha carpeta,
porque cada usuario tiene su correspondiente carpeta «Mis documentos», y
para que todos los usuarios puedan acceder al archivo, entiendo que lo
mejor es colocarlo en alguna carpeta que pueda ser utilizada por todos
aquellos que inicien una sesión en el equipo.
En resumidas cuentas, para importar el archivo, debes de indicar la ruta
completa de la carpeta donde se encuentre localizado el archivo de texto.
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Continúe leyendo en narkive:
Loading...