Quelqu'un sait-il comment modifier une spécification d'importation existante dans Microsoft Access 2007 ou 2010? Dans les anciennes versions, il existait un bouton Avancé présenté lors de l'assistant d'importation qui vous permettait de sélectionner et de modifier une spécification existante. Je ne vois plus cette fonctionnalité mais j'espère qu'elle existe toujours et qu'elle vient d'être déplacée ailleurs.
Je peux utiliser cette fonctionnalité sur ma machine avec MS Access 2007.
Pour ce que ça vaut, j'utilise Access 2007 SP1
Je ne crois pas qu'il existe un moyen de soutien direct. Toutefois, si vous êtes désespéré, sélectionnez Options d'affichage pour afficher les objets système dans les options de navigation. Ensuite, dans votre liste de tables, les tables système apparaîtront. Deux tables sont intéressantes ici: MSysIMEXspecs et MSysIMEXColumns. Vous pourrez modifier les informations d'importation et d'exportation. Bonne chance!
La réponse de Tim Lentine semble être vraie, même dans la version complète. Il y a juste une autre chose que je voudrais mentionner.
Si vous terminez votre importation sans passer par "Avancé ..." et en enregistrant la spécification, mais que vous sauvegardez l'importation pour la réutiliser à la fin de l'Assistant (nouvelle fonctionnalité AFAIK), vous ne pourrez plus revenir en arrière et l'éditer. spec. Il est intégré à "l’importation enregistrée". C’est peut-être à cela que Knox faisait allusion.
Vous pouvez cependant faire un travail partiel autour de:
Vous trouverez ci-dessous trois fonctions que vous pouvez utiliser pour modifier et utiliser la spécification d'importation MS Access 2010. Le troisième sous change le nom d'une spécification d'importation existante. Le second sous vous permet de changer n'importe quel texte XML dans la spécification d'importation. Ceci est utile si vous devez modifier les noms des colonnes, les types de données, ajouter des colonnes, modifier l'emplacement du fichier d'importation, etc. Tout ce que vous souhaitez modifier pour une spécification existante est essentiellement essentiel. Le premier sous-programme est une routine qui vous permet d'appeler une spécification d'importation existante, de la modifier pour un fichier spécifique que vous tentez d'importer, d'importer ce fichier, puis de supprimer la spécification modifiée, en conservant la spécification d'importation "modèle" intacte et intacte. Prendre plaisir.
Public Sub MyExcelTransfer(myTempTable As String, myPath As String)
On Error GoTo ERR_Handler:
Dim mySpec As ImportExportSpecification
Dim myNewSpec As ImportExportSpecification
Dim x As Integer
For x = 0 To CurrentProject.ImportExportSpecifications.Count - 1
If CurrentProject.ImportExportSpecifications.Item(x).Name = "TemporaryImport" Then
CurrentProject.ImportExportSpecifications.Item("TemporaryImport").Delete
x = CurrentProject.ImportExportSpecifications.Count
End If
Next x
Set mySpec = CurrentProject.ImportExportSpecifications.Item(myTempTable)
CurrentProject.ImportExportSpecifications.Add "TemporaryImport", mySpec.XML
Set myNewSpec = CurrentProject.ImportExportSpecifications.Item("TemporaryImport")
myNewSpec.XML = Replace(myNewSpec.XML, "\\MyComputer\ChangeThis", myPath)
myNewSpec.Execute
myNewSpec.Delete
Set mySpec = Nothing
Set myNewSpec = Nothing
exit_ErrHandler:
For x = 0 To CurrentProject.ImportExportSpecifications.Count - 1
If CurrentProject.ImportExportSpecifications.Item(x).Name = "TemporaryImport" Then
CurrentProject.ImportExportSpecifications.Item("TemporaryImport").Delete
x = CurrentProject.ImportExportSpecifications.Count
End If
Next x
Exit Sub
ERR_Handler:
MsgBox Err.Description
Resume exit_ErrHandler
End Sub
Public Sub fixImportSpecs(myTable As String, strFind As String, strRepl As String)
Dim mySpec As ImportExportSpecification
Set mySpec = CurrentProject.ImportExportSpecifications.Item(myTable)
mySpec.XML = Replace(mySpec.XML, strFind, strRepl)
Set mySpec = Nothing
End Sub
Public Sub MyExcelChangeName(OldName As String, NewName As String)
Dim mySpec As ImportExportSpecification
Dim myNewSpec As ImportExportSpecification
Set mySpec = CurrentProject.ImportExportSpecifications.Item(OldName)
CurrentProject.ImportExportSpecifications.Add NewName, mySpec.XML
mySpec.Delete
Set mySpec = Nothing
Set myNewSpec = Nothing
End Sub
Lorsque je souhaite examiner ou modifier une spécification d'importation/exportation, j'interroge les tables dans MS Access où la spécification est définie.
SELECT
MSysIMEXSpecs.SpecName,
MSysIMexColumns.*
FROM
MSysIMEXSpecs
LEFT JOIN MSysIMEXColumns
ON MSysIMEXSpecs.SpecID = MSysIMEXColumns.SpecID
WHERE
SpecName = 'MySpecName'
ORDER BY
MSysIMEXSpecs.SpecID, MSysIMEXColumns.Start;
Vous pouvez également utiliser une instruction UPDATE ou INSERT pour modifier des colonnes existantes ou insérer et ajouter de nouvelles colonnes à une spécification existante. Vous pouvez créer des spécifications entièrement nouvelles à l'aide de cette méthodologie.
Une autre bonne option est le logiciel gratuit V-Tools addin pour Microsoft Access. Parmi d'autres outils utiles, il dispose d'un formulaire pour éditer et sauvegarder les spécifications d'importation/exportation.
Remarque: Depuis la version 1.83, il existe un bogue dans l'énumération des pages de code sous Windows 10. (Apparemment, en raison d'une fonction API manquante/modifiée dans Windows 10). Les outils fonctionnent toujours très bien, il vous suffit de commenter quelques lignes de code ou pas après elle dans la fenêtre de débogage.
Cela a été une véritable bouée de sauvetage pour moi en modifiant une spécification d'importation complexe pour nos commandes en ligne.
Pourquoi si compliqué?
Il suffit de vérifier les objets système dans Access-Options/Base de données actuelle/Options de navigation/Afficher les objets système
Ouvrez la table "MSysIMEXSpecs" et changez selon vos besoins - facile à lire ...
Je viens de découvrir un bogue apparent dans l'ensemble de la configuration d'importation/XML enregistrée dans Access. Également frustré par la rigidité du système d'importation sauvegardée, j'ai créé des formulaires et écrit du code pour séparer le XML dans lequel les spécifications d'importation sauvegardée sont stockées, au point que je pouvais utiliser cet outil pour créer une importation enregistrée à partir de zéro via codé. examen d'un classeur Excel source.
Ce que j’ai découvert, c’est que même si Access importe correctement une feuille de calcul en fonction des modifications apportées aux paramètres par défaut de l’utilisateur (par exemple, il aime prendre n'importe quelle colonne dont le nom d’en-tête se termine par "ID" et en faire un champ indexé dans la liste). la table résultante, mais vous pouvez l'annuler pendant le processus d'importation), et s'il crée également correctement le XML en fonction des modifications apportées par l'utilisateur, si vous supprimez la table et utilisez Importation enregistrée pour réimporter la feuille de calcul, le fichier XML est ignoré. import spec et revient à utiliser ses propres valeurs par défaut, du moins dans le cas des colonnes "ID".
Vous pouvez l'essayer vous-même: importez une feuille de calcul Excel avec au moins un nom d'en-tête de colonne se terminant par "ID" ("ID de commande", "ID d'utilisateur" ou tout simplement "ID"). Au cours du processus, assurez-vous de définir "Indexé" sur Non pour ces colonnes. Exécutez l'importation et cochez la case "Enregistrer les étapes d'importation" dans la fenêtre de dialogue finale. Si vous inspectez la conception de la table résultante, vous verrez qu'il n'y a pas d'index sur le (s) champ (s) en question. Supprimez ensuite la table, recherchez l’importation sauvegardée et exécutez-la à nouveau. Cette fois, ces champs seront définis comme étant indexés dans la conception de la table, même si le XML ne spécifie toujours pas d'index.
Je me tirais les cheveux jusqu'à ce que je découvre ce qui se passait, en comparant le XML que j'ai construit à partir de rien avec des exemples créés avec l'outil Access.
La réponse de Tim Lentine fonctionne si vous avez vos spécifications sauvegardées. Votre question ne spécifiait pas cela, elle indiquait seulement que vous aviez importé les données. Sa méthode ne sauverait pas vos spécifications de cette façon.
Pour sauvegarder les spécifications de cette importation actuelle, vous devez rouvrir l’importation en appuyant sur "apend", ce qui vous permettra d’utiliser vos paramètres d’importation actuels que MS Access a récupérés. ( Ceci est utile si vous souhaitez conserver les spécifications d'importation d'un format Excel sur lequel vous avez travaillé avant l'importation dans MS Access. )
Une fois que vous êtes dans l'option apend, utilisez les instructions de Tim, qui utilise l'option avancée et "Enregistrer sous". À partir de là, il vous suffit de cliquer sur Annuler pour importer toutes les données similaires dans différentes tables, etc.