Bonjour,
je sais que nombre de sujets ont déjà été créés par rapport à ça, mais ça fait 2 jours que je fouille ici et la, sans trouver vraiment de solution à mon problème.
J'ai un fichier Excel, ou plutôt une feuille Excel, que je voudrais mettre sous Access, lancer une requête dessus (la table et la requête est déjà créée), et exporter le résultat de cette requête dans Excel, dans une feuille nommée "résultat".
Au départ, je suis parti sur le process de silkyroad (ici), où pour ma part j'ai écrit ça :
Déja, ça ne marche que moyennement (comme j'ai mis dans le post de Silky), car j'ai un problème a priori de bases de données par défaut et ça m'ouvre Business Objects.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub DoCmdRunSQL(ByVal sql As String, ByVal rDest As Range) Dim db As DAO.Database Dim rs As DAO.Recordset MsgBox Len(ActiveWorkbook.FullName) Set db = DAO.OpenDatabase(ActiveWorkbook.FullName, False, False, "Excel 8.0;HDR=YES;") Set rs = db.OpenRecordset(sql, dbOpenSnapshot) rDest.CopyFromRecordset rs Set rs = Nothing Set db = Nothing End Sub Sub testSQL() DoCmdRunSQL "SELECT * FROM [ExtractWithGoodTitle$A1:AF3917] WHERE SoldtoParty = 12236", Sheets("Resultat").Range("A2") End Sub
De plus, j'ai essayer sur un autre poste (ordi plutot), et ça marche carrément pas, a priori il y aurait un problème d'activeX du coup je ne pourrait pas l'envoyer à quelqu'un pour qu'il fasse tourner le programme, vu que ça marche pas.
Je me suis donc rabattu à me dire qu'il faudrait que je réussisse à piloter Access depuis Excel.
Donc il faudrait que je puisse mettre mes données dans une table déjà connue, puis que j'exporte le résultat de ma requête dans ma feuille "Résultat".
J'ai regardé ici et la, sans vraiment trouver ce qui j'avais besoin.
Sur le deuxième lien, vous parlez d'ajouter un enregistrement dans une table, or moi ce n'est pas ce que je voudrais. Je voudrais mettre toute ma feuille dans ma table, et non ajouter un enregistrement (car les enregistrement déja existants dans ma table doivent être supprimés (comment faire ? un DELETE ?). De plus, dans mon fichier, j'ai 27 colonnes, et je me vois mal faire un Insert INTO avec les 27 colonnes (enfin en tout cas je pense qu'il y a meilleure solution, mais je ne la trouve pas.)
J'ai vu dans le sliens qu'on pouvais lancer des macros a partir d'excel dans Access. Est-ce ça qu'il faut que j'utilise pour faire ce qu eje veux faire, en fait ?
Je pense que pour exporter la requête, il faut utiliser ça :
Par contre, ça l'importe dans un fichier Excel : est-ce qu'il est possible de l'exporter dans une feuille directement du classeur ouvert ? ce code il faut le mettre dans un module Access ou Excel ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97,"Requete_Temporaire", "c:\fichier.xls"
Désolé pour la longueur du post, mais j'ai vraiment besoin de vos lanternes pour avancer, car je suis un peu perdu avec tout ça.
Je vous remercie par avance de vos éclaircissement qui me permettront surement de faire un grand pas en avant dans mon projet
Partager