Access - Guardar exportaciones .html en carpeta definida

 
Vista:
sin imagen de perfil

Guardar exportaciones .html en carpeta definida

Publicado por carlos (66 intervenciones) el 10/05/2024 05:42:37
Tengo una aplicación pequeña para captar una información, que se exporta en formato html, y que es guardada en una carpeta definida

Sucede que necesito que esa exportación se guarde en esa carpeta donde sea usada la aplicación, porque como es pequeña se puede usar desde una usb, en este momento está perdeterminada con el camino al disco F:\SGRADIO-CAPTACIONESv1.0\SGRADIOv1.0 EXPORTACIONES (la usb) y como el fronteend se vincula dinámicamente al backend para que se use desde donde se ubiquen las bd necesito que así mismo sea las exportaciones de esos ficheros .html

El códio actual es

Private Sub ExpProgEmit_Click()
Dim Tbl_Temp As DAO.Recordset
Set Tbl_Temp = CurrentDb.OpenRecordset("Select FProg FROM ProgramaEmitidoFecha", , dbReadOnly)
Tbl_Temp.MoveFirst
Do Until Tbl_Temp.EOF
DoCmd.OutputTo acOutputQuery, "ProgramaEmitido", "HTML(*.html)", "D:\SGRADIO-CAPTACIONESv1.0\SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"
Tbl_Temp.MoveNext
Loop
Tbl_Temp.Close
Set Tbl_Temp = Nothing

ExpProgEmit_Exit:
Exit Sub
End Sub

le hice un cambio así

Private Sub ExpProgEmit_Click()
Dim Tbl_Temp As DAO.Recordset
Set Tbl_Temp = CurrentDb.OpenRecordset("Select FProg FROM ProgramaEmitidoFecha", , dbReadOnly)
Tbl_Temp.MoveFirst
Do Until Tbl_Temp.EOF
DoCmd.OutputTo acOutputQuery, "ProgramaEmitido", "HTML(*.html)", (CurrentProject.Path) & "\" & "SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"
Tbl_Temp.MoveNext
Loop
Tbl_Temp.Close
Set Tbl_Temp = Nothing

ExpProgEmit_Exit:
Exit Sub
End Sub

Pero me da este error

Se ha producido el error '2302' en tiempo de ejecución:

SGRAdiov2.0 np puede guardar los datos en el archivo que ha seleccionado.

(No pongo la imagen porque no deja subirla)

El error es en esta línea:

DoCmd.OutputTo acOutputQuery, "ProgramaEmitido", "HTML(*.html)", (CurrentProject.Path) & "\" & "SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"
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
Imágen de perfil de Joan
Val: 414
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Guardar exportaciones .html en carpeta definida

Publicado por Joan (100 intervenciones) el 10/05/2024 09:57:24
Prueba así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub ExpProgEmit_Click()
 
Dim Tbl_Temp As DAO.Recordset
Dim vRuta As String
 
Set Tbl_Temp = CurrentDb.OpenRecordset("Select FProg FROM ProgramaEmitidoFecha", , dbReadOnly)
Tbl_Temp.MoveFirst
Do Until Tbl_Temp.EOF
 
vRuta = Application.CurrentProject.Path & "\SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0\" & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"
 
DoCmd.OutputTo acOutputQuery, "ProgramaEmitido", "HTML(*.html)", vRuta
Tbl_Temp.MoveNext
Loop
Tbl_Temp.Close
Set Tbl_Temp = Nothing
 
ExpProgEmit_Exit:
Exit Sub
End Sub

El fallo lo tienes seguro en la ruta que estás indicando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Guardar exportaciones .html en carpeta definida

Publicado por carlos (66 intervenciones) el 10/05/2024 13:35:58
Gracias. Sigue el error


Sin-titulo[code]
Sin-titulo2
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
Imágen de perfil de Joan
Val: 414
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Guardar exportaciones .html en carpeta definida

Publicado por Joan (100 intervenciones) el 10/05/2024 16:38:02
Prueba a poner la ruta completa en la variable vRuta:

"D:\SGRADIO-CAPTACIONESv1.0\SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html," es en la que te funcionaba.

vRuta = Application.CurrentProject.Path & "\SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0\" & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"

Yo veo diferencias entre la primera ruta que sí te funciona, y la nueva, supongo que donde tienes la base de datos corriendo es en la carpeta SGRADIO-CAPTACIONESv1.0.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Guardar exportaciones .html en carpeta definida

Publicado por carlos (66 intervenciones) el 10/05/2024 23:23:49
Si, hay diferencias, el primer código siempre lo dirige a una ruta específica
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub ExpProgEmit_Click()
Dim Tbl_Temp As DAO.Recordset
Set Tbl_Temp = CurrentDb.OpenRecordset("Select FProg FROM ProgramaEmitidoFechaTI", , dbReadOnly)
Tbl_Temp.MoveFirst
Do Until Tbl_Temp.EOF
    DoCmd.OutputTo acOutputQuery, "ProgramaEmitidoTI", "HTML(*.html)", (CurrentProject.Path) & "\" & "SGRADIO-CAPTACIONESv1.0\SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"
    Tbl_Temp.MoveNext
 
Loop
Tbl_Temp.Close
Set Tbl_Temp = Nothing
 
ExpProgEmit_Exit:
    Exit Sub
End Sub

en el segundo trato de que se guarde en la misma carpeta siempre, esté alojado en cualquier destino, C:\, D:\, E:\, etc y no me sale
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
sin imagen de perfil

Guardar exportaciones .html en carpeta definida

Publicado por carlos (66 intervenciones) el 10/05/2024 23:52:43
haciendo una prueba, paso la carpeta "SGRADIOv1.0 EXPORTACIONES" que es donde debe guardar la exportación, para dentro de la carpeta "SGRADIOv1.0" que es la que contiene los mdb y lo hace bien, porque hasta ahora la carpeta "SGRADIOv1.0 EXPORTACIONES" la tenía fuera de ella, o o sea forma parte de un conjunto de carpetas que están dentro de la principal "SGRADIO-CAPTACIONESv1.0"


explorer1

y el código quedó así
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub ExpProgEmit_Click()
 
Dim Tbl_Temp As DAO.Recordset
Set Tbl_Temp = CurrentDb.OpenRecordset("Select FProg FROM ProgramaEmitidoFechaTI", , dbReadOnly)
Tbl_Temp.MoveFirst
Do Until Tbl_Temp.EOF
    DoCmd.OutputTo acOutputQuery, "ProgramaEmitidoTI", "HTML(*.html)", (CurrentProject.Path) & "\" & "SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"
    Tbl_Temp.MoveNext
 
Loop
Tbl_Temp.Close
Set Tbl_Temp = Nothing
 
ExpProgEmit_Exit:
    Exit Sub
End Sub

cuando la carpeta queda en esta posición

explorer2

pero necesito que quede fuera, como en la primera imagen para que los usuarios no tengan que intervenir en la carpeta que están los mdb
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
sin imagen de perfil

Guardar exportaciones .html en carpeta definida

Publicado por carlos (66 intervenciones) el 10/05/2024 23:24:05
Si, hay diferencias, el primer código siempre lo dirige a una ruta específica
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub ExpProgEmit_Click()
Private Sub ExpProgEmit_Click()
 
Dim Tbl_Temp As DAO.Recordset
Set Tbl_Temp = CurrentDb.OpenRecordset("Select FProg FROM ProgramaEmitidoFechaTI", , dbReadOnly)
Tbl_Temp.MoveFirst
Do Until Tbl_Temp.EOF
    DoCmd.OutputTo acOutputQuery, "ProgramaEmitidoTI", "HTML(*.html)", "D:\SGRADIO-CAPTACIONESv1.0\SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"
    Tbl_Temp.MoveNext
 
Loop
Tbl_Temp.Close
Set Tbl_Temp = Nothing
 
ExpProgEmit_Exit:
    Exit Sub
End Sub

en el segundo trato de que se guarde en la misma carpeta siempre, esté alojado en cualquier destino, C:\, D:\, E:\, etc y no me sale
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub ExpProgEmit_Click()
 
Dim Tbl_Temp As DAO.Recordset
Set Tbl_Temp = CurrentDb.OpenRecordset("Select FProg FROM ProgramaEmitidoFechaTI", , dbReadOnly)
Tbl_Temp.MoveFirst
Do Until Tbl_Temp.EOF
    DoCmd.OutputTo acOutputQuery, "ProgramaEmitidoTI", "HTML(*.html)", (CurrentProject.Path) & "\" & "SGRADIO-CAPTACIONESv1.0\SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"
    Tbl_Temp.MoveNext
 
Loop
Tbl_Temp.Close
Set Tbl_Temp = Nothing
 
ExpProgEmit_Exit:
    Exit Sub
End Sub
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
Imágen de perfil de Joan
Val: 414
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Guardar exportaciones .html en carpeta definida

Publicado por Joan (100 intervenciones) el 11/05/2024 12:56:07
Hola,

He reproducido en código en una base de datos y sí que funciona:

(CurrentProject.Path) & "\" & "SGRADIO-CAPTACIONESv1.0\SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"

El archivo creado lo está guardando en: SGRADIOv1.0 EXPORTACIONES.

El problema lo debes tener al crear la carpeta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Dim strNombreCarpeta As String
Dim strTempCarpeta As String
Dim FSO As Object
 
    strNombreCarpeta = "SGRADIOv1.0 EXPORTACIONES"
    On Error Resume Next
    MkDir Application.CurrentProject.Path & "\" & strNombreCarpeta
 
Dim Tbl_Temp As DAO.Recordset
 
Set Tbl_Temp = CurrentDb.OpenRecordset("Select FProg FROM ProgramaEmitidoFechaTI", , dbReadOnly)
 
Tbl_Temp.MoveFirst
 
Do Until Tbl_Temp.EOF
 
DoCmd.OutputTo acOutputQuery, "ProgramaEmitidoTI", "HTML(*.html)", (CurrentProject.Path) & "\" & "SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"
 
Tbl_Temp.MoveNext
 
Loop
 
Tbl_Temp.Close
 
Set Tbl_Temp = Nothing
 
 
ExpProgEmit_Exit:
 
    Exit Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Guardar exportaciones .html en carpeta definida

Publicado por Anonimo (3330 intervenciones) el 11/05/2024 15:17:26
Joan, si la carpeta donde se ubican los programas y la carpeta donde se guardan las exportaciones tienen el mismo nivel (ambas están ubicadas en otra carpeta de nivel superior), solo hay que tener en cuenta ese detalle al crear la ruta.

Tomando como referencia el 'CurrentProject.Path', con InSrtRev se puede obtener el nivel superior.
Añadiéndole al anterior resultado la carpeta destino mas el nombre y tipo de fichero se obtiene la ruta absoluta deseada.

Disculpas por la intromisión, es tu opción el generar el código y publicarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Guardar exportaciones .html en carpeta definida

Publicado por carlos (66 intervenciones) el 11/05/2024 15:51:15
Gracias, exacto, así es
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
Imágen de perfil de Joan
Val: 414
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Guardar exportaciones .html en carpeta definida

Publicado por Joan (100 intervenciones) el 12/05/2024 12:18:47
Gracias por la apreciación Anónimo, el código de crear las carpetas era solo un ejemplo para que se viera que se guardaba en esas capetas creadas, tal como he dicho en el nuevo post, lo entendí mal desde el principio.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Guardar exportaciones .html en carpeta definida

Publicado por carlos (66 intervenciones) el 11/05/2024 15:42:40
Saludos Joan, sí, los dos códigos funcionan, el tuyo lo que permite es crear la carpeta detro del (CurrentProject.Path) si no existiera, lo que sucede es que, como te comenté, no quisiera que el ususario tenga que intervenir en la carpeta (CurrentProject.Path) para extraer el fichero que debe enviar a quien corresponda, por eso quería crear esa carpeta "SGRADIOv1.0 EXPORTACIONES" dentro de la carpeta general de la aplicación que es esta

explorer1

quiere decir que tanto la carpeta donde está alojadas las mbd como otras creadas con otras informaciones están ubicadas en la carpeta : "SGRADIO-CAPTACIONESv1.0" que es donde he tratado de que se cree el fichero .hmtl en la carpeta "SGRADIOv1.0 EXPORTACIONES" y no me ha salido ya que he previsto que la aplicación se pueda usar en cualquier parte, incluso, en memorias usb.

tal vez, desde cualquiera de los códigos, el tuyo o el mío, pueda mover el fichero a la carpeta que deseo y borrarlo de donde se crea, en el (CurrentProject.Path), y ahí volvería a caer en el problema del camino a ella ya que no es definido a ningún disco directamente si no a donde está ubicada la mbd, no se si me hago entender

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
sin imagen de perfil

Guardar exportaciones .html en carpeta definida

Publicado por carlos (66 intervenciones) el 11/05/2024 22:24:16
Joan, sobre lo que plantea el usuario anónimo, no será esa la solución:

"Joan, si la carpeta donde se ubican los programas y la carpeta donde se guardan las exportaciones tienen el mismo nivel (ambas están ubicadas en otra carpeta de nivel superior), solo hay que tener en cuenta ese detalle al crear la ruta.

Tomando como referencia el 'CurrentProject.Path', con InSrtRev se puede obtener el nivel superior.
Añadiéndole al anterior resultado la carpeta destino mas el nombre y tipo de fichero se obtiene la ruta absoluta deseada.

Disculpas por la intromisión, es tu opción el generar el código y publicarlo."

aunque realmente no sabría como hacerlo, me has ayudado otras veces con tus soluciones y aunque no lo he dicho soy aprendíz de programador, jajajaja, no lo había dicho, no me apena decirlo, pero se me fue, perdón

gracias
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
Imágen de perfil de Joan
Val: 414
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Guardar exportaciones .html en carpeta definida

Publicado por Joan (100 intervenciones) el 12/05/2024 12:11:50
Creo que lo he entendido mal desde el principio.

Quieres buscar una unidad USB que contenga la carpeta de exportación, por lo tanto, has de buscar las unidades USB que contengan esos datos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim unidades As Object
Set unidades = fso.Drives
 
Dim carpetaexportacion As String
Dim nombrearchivo As String
Dim vRuta As String
Dim unidadUSB As String
Dim nombrecarpetausb As String
 
nombrecarpetausb = "SGRADIO-CAPTACIONESv1.0\SGRADIOv1.0 EXPORTACIONES"
nombrearchivo = "ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"
 
For Each unidad In unidades
If unidad.IsReady And unidad.DriveType = 1 Then
unidadUSB = unidad.Path
 
carpetaexportacion = unidadUSB & "\" & nombrecarpetausb & "\"
 
If fso.FolderExists(carpetaexportacion) Then
vRuta = carpetaexportacion & nombrearchivo
 
DoCmd.OutputTo acOutputQuery, "ProgramaEmitidoTI", "HTML(*.html)", vRuta
 
Exit For
End If
End If
 
Next unidad
 
If Dir(carpetaexportacion) = "" Then
MsgBox "No se ha encontrado la carpeta de exportación."
End If
 
Set fso = Nothing

Es un código para buscar unidades extraíbles en el PC.

Si ya no es esto lo que intentas ya no damos para más.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Guardar exportaciones .html en carpeta definida

Publicado por carlos (66 intervenciones) el 12/05/2024 14:19:03
amigo, gracias por todo, funciona muy bien, solo me queda por decirte que en realidad lo que necesitaba es que trabajara tanto en usb como en una pc, que el código buscara los caminos en dependencia de donde estuviera ubicado y que la carpeta donde está ubicada la mdb esta dentro de una superior llamada SGRADIO-CAPTACIONESv1.0, es así:
SGRADIO-CAPTACIONESv1.0 -----SGRADIOv1.0 (donde está la mdb)
SGRADIOv1.0 EXPORTACIONES ( a donde van las exportaciones)
SGRADIOv1.0 INFORMES INCIDENTAL (para informes)
SGRADIOv1.0 INFORMES PROGRAMAS (para informes)

la vinculación con la base de datos si me salió bien, se vincula tanto en una usb como en una pc, en las exportaciones es deonde tuve el problema y es porque (CurrentProject.Path) busca hasta SGRADIOv1.0 (donde está la mdb) y no alcanza a SGRADIO-CAPTACIONESv1.0 que es donde debería buscar SGRADIOv1.0 EXPORTACIONES ( a donde van las exportaciones)

Gracias por tu tiempo y tu ayuda, que por cierto no es la primera vez pues en otros momentos me has ayudado a dar soluciones.

Bendiciones
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

Guardar exportaciones .html en carpeta definida

Publicado por Anonimo (3330 intervenciones) el 12/05/2024 19:56:45
Añadir esta línea para obtener la ruta de la carpeta destino:
1
Dim Ruta: Ruta = CurrentProject.Path: Ruta = Left(Ruta, InStrRev(Ruta, "\")) & "SGRADIOv1.0 EXPORTACIONES\"

Línea original:
1
DoCmd.OutputTo acOutputQuery, "ProgramaEmitido", "HTML(*.html)", "D:\SGRADIO-CAPTACIONESv1.0\SGRADIOv1.0 EXPORTACIONES\ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"

Se modificaría así:
1
DoCmd.OutputTo acOutputQuery, "ProgramaEmitido", "HTML(*.html)", Ruta & "ProdMusicalv1.0 " & DLookup("FProg", "ProgramaEmitidoFecha") & ".html"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Guardar exportaciones .html en carpeta definida

Publicado por carlos (66 intervenciones) el 14/05/2024 00:41:14
Amigo, gracias por todo, quedó muy bien ese código en mi aplicación.

Gracias nuevamente y bendiciones
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