Création d'une macro Microsoft Access qui colle les résultats d'une requête dans Excel peut être fait par un lien vers l'accès à partir d'Excel , ou par l'application du code de macro pour contrôler directement Excel accès
note: . tous, mais les trois dernières étapes s'appliquent aux utilisateurs de l'accès (et Excel ) 2007 . Si vous avez une version antérieure d'Access , passez à l' antépénultième étape . Choses que vous devez
Microsoft Excel et Access
Voir Plus Instructions
1
Dans Access, créer une table de données d'échantillons : entrez les données suivantes dans un nouveau tableau :
le touriste accidentel, 12/1/2009 , 6,01 $
le touriste accidentel, 12/3/2009 , 7,98 $
fer john, 12 /5/2009 , 4,98 $
fer john, 12/6/2009 , 5,98 $
2
Double -cliquez sur les en-têtes de colonne ( par exemple \\ " Champ1 \\") et remplacer chacun de ces têtes , dans cet ordre:
livre, datesold , netsale
Enregistrez la table (\\ " contrôle -s \\" ) avec le nom \\ " livres. \\"
3
Créer une requête de la table et appuyez sur le " \\ Echap" \\ dans le "show tableau \\ boîte de dialogue \\ " . Faites un clic droit sur l'onglet de la requête et sélectionnez \\ " vue SQL \\ ". Tapez la commande suivante dans la fenêtre de code : .
Livres SELECT * INTO queryresults
D' livres
WHERE ( ( ( books.book ) Like ' * acc * '))
GO
Enregistrez la requête (\\ " contrôle -s \\ ") et nommez-le \\" vbaquery . \\ "
4
Ouvrez Excel et appuyez sur la barre d'outils de \\ " les données> de l'accès \\ " icône. Sélectionnez l'option " queryresults \\" tableau \\ dans le répertoire \\ boîte de dialogue "Select \\ Table" . Cliquez sur \\ "OK \\" sur la boîte de dialogue \\ "Importer des données \\" et notez les résultats de la requête : seul le \\ " Iron John \\" livres sont présentés . Enregistrez le fichier Excel avec n'importe quel nom , et fermez-le .
5
Rouvrir le \\ " livres \\" base de données dans Access. Ouvrez le \\ " vbaquery \\" et \\ " revoir ses critères : \\" champ de lire \\ " Like ' * acc * ' \\" ( Ne tapez pas les guillemets Ne tapez l' intérieur, unique. guillemets). Enregistrez à nouveau la requête.
6
créer une nouvelle requête . Tapez l'instruction SQL suivante dans la vue " SQL \\" fenêtre \\ , puis enregistrez la requête en tant que \\ " \\" dropqueryresults :
DROP queryresults de table;
7
pénétrer dans l'environnement de développement intégré Visual Basic (IDE ) en appuyant sur \\ " alt- f11 , \\ ", puis sélectionnez \\ "Insertion> Module . \\" Coller le code suivant dans le code vierge du nouveau module fenêtre :
RunQuery public Sub ()
« supprimer les résultats première table
On Error GoTo DO_QUERY
RunQueryForExcel (\\" dropqueryresults \\ ")
DO_QUERY :
RunQueryForExcel (\\" vbaquery \\ ")
End Sub
< br /> public Sub RunQueryForExcel ( qName As String )
DoCmd.SetWarnings Faux CurrentDb.Execute qName
DoCmd.SetWarnings vrai End Sub
8
Placez le curseur n'importe où dans le " RunQuery \\" \\ sous-programme et appuyez sur \\ "F5 \\" pour exécuter la requête . Rouvrez le classeur Excel vous avez déjà ouvert et notez les données mises à jour : votre macro a remplacé les \\ " \\" Iron John rangées avec les \\ " \\" Accidental Tourist lignes. ( Access 2007 ou plus tard, les utilisateurs peuvent s'arrêter là. )
9
( Pour les utilisateurs d' Access 2003 et versions antérieures) . Utilisez l'étape 7 pour coller le code suivant dans un nouveau module dans l'IDE de Visual Basic :
'''''''' '''''' '''''' '''''' '''''''' '''''''' '''''''' '''''' '
public Sub pasteToExcel ()
< br /> Const qName = \\ " vbaquery \\"
db As DAO.Database
recset As DAO.Recordset
Dim s As String
; appXL As Excel.Application
ro Dim, co
'''''''' '''''''' '''''' ' ''
Set appXL = CreateObject (\\ " Excel.Application \\")
appXL.Workbooks.Add
Set db = CurrentDb < br /> Set recset = db.OpenRecordset ( qName )
s = \\ " livre \\" et \\ ", \\" et \\ " dateddsold \\" et \\ " ; , \\ " et \\ " netsale \\ "& vbCr
appXL.ActiveSheet.Cells (1, 1 ) = s
ro = 2
co = 1 < , br /> s = \\ "\\"
Ne While Not recset.EOF
s = s & recset [ livre ] & \\ ", \\" & ! ; ! recset [ datesold ] & \\ ", \\" & recset [ netsale ] & vbCr
appXL.ActiveSheet.Cells (ro , co) = s
recset.MoveNext < , br /> ro = ro + 1
s = \\ "\\"
boucle recset.Close
db.Close ; appXL.ActiveWorkbook.SaveAs (\\ " c: \\ \\ dataFromAccess.xls \\")
appXL.Quit
End Sub '' '''''''' '''''''' '''''''' '''''''' '''''' '''''' '''''' '''' '
Choisir \\ " Outils> Références \\ " et cochez la \\ " Bibliothèque Microsoft Excel Objects. \\"
10
retourner à l'accès et à faire les étapes 1 à 3. Cependant, pour l'étape 3, collez ce code SQL dans la fenêtre de code SQL : .
Livres SELECT * FROM livres
Où ( ( (livres . book) Like ' * acc * '));
11
retour à l' IDE Visual Basic. Placez le curseur à l'intérieur de la \\ " pasteToExcel \\" la fonction et appuyez sur \\ "F5 \\" pour exécuter la fonction . Ouvrez le fichier Excel \\ "c: \\ \\ dataFromAccess.xls \\" . Pour afficher les résultats