windows - son - Almacenamiento de plantillas de Excel en mi base de datos de Access
plantillas bases de datos access gratis (2)
Lo que quiero:
Estoy trabajando con una base de datos de MS Access para producir un informe para la Junta de Acreditación de la Universidad de Ingeniería Profesional de Ontario. Los PEO tienen sus plantillas en MS Excel y DEBO usar su formato exacto.
Quiero enviar los datos de Access DB a la hoja de Excel (bastante fácil), pero quiero copiar su formato cuando produzca un nuevo archivo. (NO quiero mantener un archivo de plantilla vacío y copiarlo cada vez).
Así que esencialmente estoy buscando de alguna manera almacenar la plantilla en el código. (¡Otras sugerencias son bienvenidas!)
Lo que he intentado:
Algunos de ustedes leerán esto y pensarán que soy un idiota. Pero lo que probé fue obtener los datos de excel en el portapapeles MS a través del código API y almacenar el DataObject como (esperaba) algún tipo de cadena.
Pero no pude preservar el formato o el sombreado de la plantilla original de MS Excel.
¿Alguna sugerencia?...
Lo que tendrá que hacer primero es exportar todos los datos a una nueva hoja de una plantilla vacía, luego vincular todos los datos al lugar correcto en la plantilla y luego eliminar la hoja con todos los datos, manteniendo los datos en el modelo.
Por lo que yo sé, no hay una forma más rápida de hacerlo, pero aquí hay un ejemplo: http://www.rogersaccesslibrary.com/forum/topic350.html
Será todo un trabajo, pero posible, si la plantilla está bien configurada.
Puede almacenar las plantillas de Excel dentro de la base de datos creando una tabla que incluya un campo Attachment
crear un registro y guardar la plantilla de Excel como un archivo adjunto a ese registro
y luego usar un código VBA como este para guardar una nueva copia del documento de Excel en el disco cada vez que lo necesite:
Option Compare Database
Option Explicit
Public Sub SaveReportTemplateToFile()
Dim cdb As DAO.Database, rowRst As DAO.Recordset, attachRst As DAO.Recordset2, attachField As DAO.Field2
Set cdb = CurrentDb
Set rowRst = cdb.OpenRecordset("SELECT TemplateFile FROM ReportTemplates WHERE ID=1")
Set attachRst = rowRst.Fields("TemplateFile").Value
Set attachField = attachRst.Fields("FileData")
attachField.SaveToFile "C:/Users/Gord/Desktop/" & attachRst.Fields("FileName").Value
Set attachField = Nothing
attachRst.Close
Set attachRst = Nothing
rowRst.Close
Set rowRst = Nothing
Set cdb = Nothing
End Sub