2010-02-01 4 views
1

Dans une base de données Access, j'ai une table de requête liée à un formulaire lorsque le formulaire est ouvert et modifié. Comment puis-je lier cette table de requête à Excel afin que lorsque je clique sur un bouton du formulaire dans Access la feuille de calcul dans Excel est ouverte montrant tous les éléments dans la table de requête Access, l'utilisateur peut alors éditer la feuille si nécessaire.Requête d'accès à la feuille de calcul Excel

Tous dans Access/Excel 2003

Répondre

0

(j'utilise 2007, mais en va de même) Dans le cas de clic du bouton (utilisation du constructeur de code, et non macro), le code

Shell "excel.exe " & Chr(34) & "C:\FullPathToYourFile\file.xls" & Chr(34), vbMaximizedFocus

le fera, bien que sans élégance. Manquant le chr(34) casse avec des chemins ou des noms de fichiers avec des espaces en eux, et bien que l'emballage du chemin avec ' devrait fonctionner à sa place, ce n'est pas sur ma version 2007.

Je ne suis pas familier avec la façon de le faire dans les macros, ou si c'est possible.

1

FollowHyperlink peut être un moyen utile d'ouvrir un document de tout type avec son application enregistrée:

FollowHyperlink "C:\SomeDir\BookX.xls" ''Excel 
FollowHyperlink "C:\SomeDir\" ''Explorer 
FollowHyperlink "mailto:[email protected]" ''Default email 

Plus: http://msdn.microsoft.com/en-us/library/aa204494%28office.10%29.aspx

Si vous souhaitez manipuler le fichier Excel après que vous l'avez ouvert, Il est peut-être préférable d'utiliser Automation:

Dim strFileName As String 
    Dim objXL Object 
    Dim wkb As Object 

    ''New instance, GetObject for existing instance 
    Set objXL = CreateObject("Excel.Application") 
    objXL.Visible = True 

    strFileName = "C:\Docs\LTD.xls" 
    Set wkb = objXL.Workbooks.Open(strFileName) 

    ''Do stuff 

    ''Give control to user 
    objXLS.UserControl = True 
+1

Euh, cela ressemble à un extrait de code de liaison tardive incomplètement réécrit pour utiliser une liaison anticipée. Avec la référence, vous n'avez pas besoin de l'instruction CreateObject - vous utiliseriez plutôt le mot-clé New (dans votre déclaration de variable ou dans l'instruction Set). Pour une liaison tardive (c'est-à-dire ne nécessitant aucune référence), vous pouvez conserver le CreateObject et remplacer "As Excel.Application" et "As Excel.Workbook" par "As Object". –

Questions connexes