Plantillas de tablas y plantillas de Sharepoint en Access 2007
Este artículo es continuación del anterior y fue publicado en El rincón del experto en febrero.
En Access 2007 disponemos de una serie de plantillas para crear tablas específicas con todos sus campos con sólo un par clics de ratón. También disponemos de plantillas para crear directamente listas de Sharepoint de la misma manera. Si nos fijamos, comprobamos que ambas listas de plantillas coinciden casi por completo y, como veremos más adelante, no se trata de pura coincidencia; también veremos que usar las plantillas nos proporciona más funcionalidades que la simple creación automática de una tabla
WSSTemplateID y WSSFieldID
Ya nos habíamos fijado en un artículo anterior en que, al crear una tabla usando la plantilla de «Contactos», tenemos la posibilidad de añadir funcionalidades de importar o exportar desde «Contactos» de Outlook utilizando los comandos acCmdAddFromOutlook y acCmdSaveAsOutlookContact o las macros equivalentes. También habíamos visto que la tabla tenía una propiedad WSSTemplateID con valor 105 y que casi cada campo de la tabla tenía una propiedad WSSFieldID indicando con qué campo de la plantilla se corresponde; las tablas creadas con la plantilla tienen esas propiedades pero también se las podemos asignar usando VBA a las tablas que queramos y obtendremos el mismo resultado.
¿Ocurrirá lo mismo con el resto de las plantillas? Podemos probar.
Podemos crear una tabla usando la plantilla «Eventos» y, luego, comprobar sus propiedades WSSTemplateID y WSSFieldID utilizando el siguiente código:
Public Function fPropCampos(Tabla As String) As String
Dim i As Integer
Debug.Print «Plantilla: » & CurrentDb.TableDefs(Tabla).Properties(«WSSTemplateID»)For i = 0 To CurrentDb.TableDefs(Tabla).Fields.Count – 1
On Error Resume Next
Debug.Print CurrentDb.TableDefs(Tabla).Fields(i).Properties(«WSSFieldID»)
Err.Clear
Next iEnd Function
Llamando a la función pasando el nombre de la tabla, obtenemos en la ventana de inmediato la siguiente relación:
Plantilla: 106
Title
EventDate
EndDate
Location
Description
Attachments
Es decir, que sí que existen esas propiedades en las demás plantillas de tabla, pero ¿Para qué sirven? El prefijo WSS del nombre de las propiedades nos da una pista: Se refieren a Windows Sharepoint Services; o sea, que son plantillas e ID de campo de Sharepoint. Más adelante probaremos a crear una lista de Sharepoint usando las plantillas y veremos que, al importarla, tiene las mismas propiedades que la tabla que hemos creado en Access más alguna otra específica de Sharepoint, pero, de momento vamos a centrarnos en para qué sirven estas propiedades en la tabla que hemos creado en Access.
Cabe pensar que, lo mismo que pasa con los contactos, podríamos exportar/importar datos de nuestra tabla de eventos o de tareas a su equivalente de Outlook, pero de momento no es así. Esperemos que en futuras versiones lo contemplen.
Probar nuestra tabla en Sharepoint
Sin embargo, si disponemos de un servidor Sharepoint, sí que le podemos encontrar alguna utilidad. Exportar nuestra tabla es bastante sencillo
Sólo hay que elegir la opción correspondiente en la opción «Lista de Sharepoint», del grupo «Datos externos» de la cinta de opciones, o, aún más sencillo, usando el menú contextual que aparece al pulsar con el botón derecho del ratón sobre la tabla que queremos exportar, como se muestra en la imagen superior. Luego sólo hay que indicarle al asistente en que sitio de Sharepoint queremos ubicar la lista.
Al abrir la lista que hemos creado al exportar nuestra tabla, vemos que Sharepoint la ha tratado de una manera especial: Ha reconocido que se trata de un calendario y nos la muestra en una vista que recuerda mucho al calendario de Outlook.
Conectar con Outlook
¿De Outlook hemos dicho? Vaya, si parece que se pone interesante… Vemos que entre las posibles acciones tenemos la de conectar con Outlook. Pues probemos:
Al seleccionar la opción, el asistente nos abre Outlook y nos pregunta si queremos conectar el calendario
Naturalemente, decimos que sí y !Eureka! ya tenemos nuestro calendario añadido en Outook, y vamos a probarlo ahora mismo añadiendo una cita
Después de refrescar nuestra ventana de Sharepoint, comprobamos que la cita que acabamos de escribir en Outlook ya es visible desde Sharepoint
Es decir, que podemos tener sincronizado nuestro calendario de Outlook con el de Sharepoint. Pero estábamos hablando de Access ¿Está sincronizado el calendario con nuestra tabla de Access? Evidentemente, no, puesto que hemos exportado la tabla, de manera que nuestra BD no guarda ninguna relación con la lista de Sharepoint, pero podemos probar a vincularla y es lo que vamos a hacer.
Vincular la lista de Sharepoint a Access 2007
Borramos la tabla Eventos de nuestra de BD de Access y vinculamos la lista de Sharepoint que estamos manejando. Con los asistentes es muy fácil.
Al abrir la tabla vinculada, vemos que ya está nuestra anotación y, además, vamos a probar a meter otra
En Sharepoint los cambios se reflejan en cuanto refrescamos la ventana
¿Y en Outlook? ¡También! Le voilá!
Aún hay más. En Outlook, podemos, por ejemplo, poner alarmas y en Sharepoint hacer que se nos notifique por correo electrónico cada vez que nuestra lista cambie y, como la tenemos vinculadas desde Access, significa que modificando la tabla eventos desde Access, se generarán alarmas en Outlook y se enviará un correo avisando desde Sharepoint.
Otras plantillas
De manera parecida ocurre si en, vez de Eventos, hubiéramos exportado Tareas. Sharepoint la habría tratado de una forma especial, con una vista específica, y podríamos haberla conectado con las tareas de Outlook. Con otras plantillas, aunque no tengan conectividad con Outlook, siguen teniendo un tratamiento específico en Sharepoint, puesto que precisamente se trata de eso, de plantillas de Sharepoint, para las que esta aplicación tiene preparadas vistas específicas.
Más plantillas de Sharepoint
Las plantillas de Sharepoint no se limitan a las que se muestran en los desplegables de Access 2007. Cuando creamos una lista desde el sitio de Sharepoint tenemos bastante más posibilidades y, si las exportamos a Access 2007 y comprobamos sus propiedades como hacíamos al principio, vemos que todas ellas tienen sus propiedades WSSTemplateID y WSSFieldID. He aquí unas cuantas plantillas de Sharepoint con el valor de su WSSTemplateID
WSSTemplateID Template 100 Custom List 101 Document Library 102 Survey 103 Links 104 Announcements 105 Contacts 106 Events 107 Tasks 108 Discussion Boards 109 Picture Library 112 User Information 115 Form Library 119 Wiki Page Library 120 Custom List in DataSheet View 150 Project Tasks 1100 Issue Tracking
Algunas de ellas coinciden con nuestras plantillas de Access, pero si las creamos en Sharepoint y probamos a importarlas, podemos comprobar que tienen algunos campos más.
La mayoría de esos campos adicionales son de uso interno de Sharepoint y no son necesarios en Access; es más, si comprobamos la lista de «Eventos» que antes hemos creado en Access, exportado a Sharepoint y luego vuelta a vincular a Access, vemos que tiene más campos que los originales, sin que hayamos tenido que intervenir, lo cual nos tranquiliza: Aunque nuestras tablas en Access no incluyan esos campos, ya los creará Sharepoint cuando los necesite.
Si, desde una tabla importado de una lista, creamos un formulario automáticamente, veremos que la mayoría de esos campos adicionales no se muestran en el formulario. La explicación está en que tienen otra propiedad, más: ColumnHidden = True.
Hay otros campos que no coinciden y que sí que se muestran al crear el formulario. Se trata de campos que no son de uso interno pero que en Access tienen menos funcionalidad, por ejemplo, porque no existe una herramienta para mostrar el calendario de eventos.
Conclusiones
Las plantillas de tablas de Access son algo más que simples asistentes para crear unas pocas tablas: añaden a estas tablas una serie de propiedades que serán útiles para integrarlas con otras aplicaciones y nos dan pistas para una mayor integración en el futuro.
Hay que empezar a conocer Sharepoint. Por un lado, se está convirtiendo en eje de la integración entre las distintas aplicaciones de Office, por otro, como back end de Access añade a esta aplicación posibilidades antes impensables.
2 Responsesso far
Impresionante, muchas gracias por esa aportación de mezcla de outlook, sharepoint y access….
De nada, paisano 🙂