Essayer de construire une requête dans Access 2007. L'une des colonnes a le type de données "Mémo". Parfois, la dernière version est renvoyée et pour d'autres, l'affichage est vide. Seulement si je clique avec le bouton droit de la souris et sélectionne "Afficher l'historique des colonnes" sur chaque ligne, puis-je voir l'ensemble des données dans cette colonne. Existe-t-il un moyen à travers le concepteur de requêtes ou SQL que ces données peuvent être récupérées dans son intégralité?Comment interroger l'historique des colonnes à partir d'un champ "mémo" dans Access 2007?
Répondre
Vous avez trouvé la réponse en définissant une fonction VBA qui renvoie l'historique des colonnes sous forme de chaîne. Ensuite, cette fonction est utilisée dans la requête "Field". Faites un clic droit sur la cellule "Champ" dans le générateur de requête et sélectionnez "Construire" dans le menu contextuel. Ici vous pouvez trouver la fonction VBA. Le constructeur d'expression ressemblera à quelque chose comme ceci:
Expr1: GetHistory([ID])
Voici la fonction VBA:
Public Function GetHistory(rowID As Integer) As String
On Error Resume Next
Dim sHistory As String
sHistory = Application.ColumnHistory("Table Name", "Column Name", "ID=" + CStr(rowID))
GetHistory = sHistory
End Function
lecture utiles:
Un autre lien utile: http://msdn.microsoft.com/en-us/library/bb242869%28office.12%29.aspx –
Je crois que ces nouveaux champs de mémo à ajout seulement (nouveau dans A2007) sont une erreur - il s'agit de données dénormalisées, et chacune des modifications individuelles doit être un enregistrement dans une table séparée. De plus, gardez à l'esprit que ceux-ci (avec les champs à valeurs multiples et le champ de pièce jointe, qui fonctionnent tous sur le principe de cacher une structure N: N derrière l'interface utilisateur) ont été introduits dans Access pour la compatibilité avec Sharepoint. En dehors de ce contexte, je pense que je les éviterais. –
La base de données Access nécessitant une requête basée sur ce champ "Mémo" a été créée via SharePoint. Je suis d'accord qu'ils valent la peine d'être évités, mais il s'agissait d'une base de données préexistante et la direction a demandé à la direction d'obtenir ces données dans un rapport d'accès. Des moments de plaisir. –
serait curieux si vous trouvez une solution décente à cela. Ma solution dans le passé était d'exporter tout dans un csv et de l'importer dans mssql (utilisé un champ de texte). Des points supplémentaires à toute personne qui comprend «désinstaller MS Access» dans leur réponse;) – Twelfth