Plantillas de tablas y plantillas de Sharepoint en Access 2007

Publicado: 1 de Febrero de 2008
José Bengoechea

Entre tanto ingeniero, yo me considero un albañil de software. No soy informático ni de profesión ni de formación; soy funcionario, mi formación es humanística y soy autodidacta. Sin embargo tengo bastante oficio a base de mucha experiencia porque, durante años, Access ha sido mi gran amor, mi herramienta en el trabajo y mi secretaria. En mi juventud, después de algún escarceo con GWBasic, viví un romance apasionado con QuickBasic, una relación fría y formal con dBase, inicié un noviazgo con VB y, finalmente, me casé con Access.

*

Valoración
123456789

Vote el Artículo
1 2 3 4 5 6 7 8 9
[----]   [+++]

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 es por casualidad. 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 habíamos observado en un artículo anterior 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 llamada 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 a las tablas que queramos usando VBA 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 i

End 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 de lista y plantillas 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 tareasa su equivalente de Outlook, pero no es así. Esperemos que en futuras versiones lo contemplen.

Principio de la páginaPrincipio de la página

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, usar 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 qué 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

Naturalmente, decimos que sí y ¡Eureka! ya tenemos nuestro calendario añadido en Outook. 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 el sitio.

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, éste 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 y nos olvidamos de la tabla Eventos de nuestra de BD de Access y vinculamos la lista de Sharepoint con el mismo nombre que estamos manejando. Con los asistentes es muy fácil.



Al abrir la tabla vinculada, vemos que ya está visible 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 podemos 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 ocurriría 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

WSSTemplateIDTemplate

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 "Eventos" que antes hemos creado en Access, exportado a Sharepoint y luego vuelto 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 y el asistente la tiene en cuenta a la hora de generar el formulario.

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.

Como desarrolladores en Access, debemos 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.


Página del autor: http://jbengoechea.com/


Principio de la páginaPrincipio de la página