Importer des différents fichiers excel MS Access 2010 automatiquement des tables
Je voudrais importer tous les fichiers Excel (avec des données différentes et des colonnes) à partir d'un répertoire dans MS Access 2010 de la base de données, la création d'une nouvelle table pour chaque fichier. J'ai trouvé le code pour importer des fichiers dans une table:
Option Compare Database
Option Explicit
Function DoImport()
Dim strPathFile As String, strFile As String, strPath As String
Dim strTable As String
Dim blnHasFieldNames As Boolean
' Change this next line to True if the first row in EXCEL worksheet
' has field names
blnHasFieldNames = True
' Replace C:\Documents\ with the real path to the folder that
' contains the EXCEL files
strPath = "C:\Documents and Settings\myName\My Documents\Access Test\"
' Replace tablename with the real name of the table into which
' the data are to be imported
strTable = "tablename"
strFile = Dir(strPath & "*.xls")
Do While Len(strFile) > 0
strPathFile = strPath & strFile
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
strTable, strPathFile, blnHasFieldNames
' Uncomment out the next code step if you want to delete the
' EXCEL file after it's been imported
' Kill strPathFile
strFile = Dir()
Loop
End Function
Mais j'ai besoin de créer un nouveau tableau à chaque fois. Est-il possible en VBA?
- re: "je serais très reconnaissant si quelqu'un peut fournir exemple étape par étape sur la création de boutons, de modules et en cours d'exécution." - Wow. Si ce n'est pas "trop large" je ne sais pas ce que c'est.
- J'ai été surfer sur le web depuis assez longtemps, mais n'ai pas trouvé des exemples sur la façon de créer le bouton et le lien avec le module. Je crois qu'il ne faudra pas longtemps pour donner un guide rapide. De toute façon, mon problème principal est sur la création de nouvelles tables dans la boucle.
- Comment voulez-vous que les nouvelles tables de nom?
- selon les noms de fichiers.
Vous devez vous connecter pour publier un commentaire.
Je pense que tout ce que vous devez faire est de changer la destination nom de la table (la valeur de
strTable
) à chaque fois avant de vous faireDoCmd.TransferSpreadsheet
.Dans un commentaire que vous avez dit que vous voulez le nom de la table pour être dérivé du nom de fichier de classeur. Et, à chaque fois par le biais de votre boucle, une autre variable (
strFile
) contient le nom de fichier. Donc, je pense que vous pourriez tranche de l'extension de fichier de ce nom de fichier et l'utiliser comme l'Accès nom de la table.Ici est une fenêtre d'exécution l'exemple qui démontrent la façon dont cela peut être fait ...
Si cette approche est bien adaptée, de la révision de la boucle dans votre code VBA comme ceci (non testé) extrait de code ...
J'ai utilisé pour être un MOS Access 2003. Maintenant tout le monde est à l'aide de 2010, mais beaucoup de choses n'ont pas changé.
Lorsque vous faites un manuel d'importation ou d'exportation, vous pouvez enregistrer la mise en page comme une spécification.
Ce processus peut être automatisé grâce à une macro.
Consultez le lien ci-dessous pour plus de détails et les étapes.
http://office.microsoft.com/en-us/access-help/run-a-saved-import-or-export-operation-HA001226020.aspx?CTT=5&origin=HA001226307
Comme pour les autres trucs, des boutons, des modules, etc, veuillez lire l'aide en ligne /documentation.
Nous sommes ici pour aider, mais pas faire le travail pour vous.
J
Ok, je ne sais pas si c'est un problème avec mon ordinateur n'étant pas sur le siège actuel de CU.
http://msdn.microsoft.com/en-us/library/office/ff192475(v=office.14).aspx
Voici un lien pour comment utiliser l'ImportExport de Macro. Utilisation de la macro section.
Je n'ai lu que vous aviez à faire confiance à l'emplacement. J'ai donc essayé les deux, mon emplacement c:\msdn plus la valeur par défaut pour les wizards.
N'était pas encore en mesure d'avoir l'option de venir.
J'ai essayé de créer un cahier des charges pour voir si l'un a été nécessaire pour que l'option d'affichage, pas de dés.
Cependant, il y a un DoCmd.Transférertexte et DoCmd.Transférerfeuillecalcul.
À la fois vous permettra d'importer.
Créer une fonction. Appel de la fonction à partir d'une macro (Exécutercode). Une autre façon est de créer un formulaire menu principal. Disposent d'un bouton. Sur le clic de commande, exécutez le code.
S'il vous plaît dites-moi si vous en avez la ImportExportData Macro pour afficher. Je pense que c'est un bug. J'ai besoin de faire tomber les dernières Mises à jour Cumulatives et essayez à nouveau.