Bonjour à tous.
Dans le cadre de mon travail, j'ai suivi le tutoriel de Fabrice Constans sur le moteur de recherche. Celui-ci fonctionne parfaitement (après quelques difficultés à mettre en place l'édition dans un formulaire des résultats).

Il ne me manque qu'une seule fonctionnalité, qu'il n'a pas encore développé, mais qui m'aiderait bien, c'est à dire l'exportation vers Excel des résultats.

J'ai bien tenté plusieurs approches, mais qui se soldent par des erreurs.
J'ai essayé celui-ci :

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
17
18
19
20
21
22
23
24
25
Set MaConn = New ADODB.Connection
MaConn.Provider = "Microsoft.Jet.OLEDB.4.0;"
MaConn.Open "chemin et nom de ta base"
 
Dim rstTable As ADODB.RecordSet
Set rstTable = New ADODB.RecordSet
 
Dim sel As String
 
 
sel = "select champ1 champ2 from lst_resultat"
'ta selection de ta liste
 
rstTable.Open sel, MaConn, adOpenStatic, adLockOptimistic
 
Open "fichier.xls" For Output As #1
Do Until rstTable.EOF
    Print #1, rstTable!champ1+"[UNE TABULTION]"+rstTable!champ2
    rstTable.MoveNext
Loop
Close #1
 
 
set rstTable=nothing
set maconn=nothing
Celui-ci me renvoie que la base est verrouillée. Une fois que je fais sauter l'instruction qui bloque, le programme plante au niveau du Select (je n'ai pas remis les champs, mais il y en a un qui comporte des espaces, peut être est-ce qui bloque?).

J'ai tenté avec les library excel, notamment le code proposé par arkham, mais je ne vois pas comment lui dire de prendre les résultats de ma zone de liste :

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
17
18
19
20
21
22
23
24
25
Dim ExcelApp As Excel.Application
Dim ExcelWb as Excel.WorkBook
Dim Excelsheet As Excel.WorkSheet
Dim oDb as DAO.DataBase
Dim oRs as DAO.Recordset
 
' Création Objets Excel
Set ExcelApp = CreateObject("Excel.application")
Set ExcelWb = ExcelApp.Workbooks.Add
Set Excelsheet = ExcelApp.worksheets(1)
' Création Objets DAO
Set oDb = CurrentDb
set oRs = oDb.OpenRecordSet("Select TesChamps From Table Where LeChamp = 'TonCritère'")
' Export du recordset dans Excel
Excelsheet.Cells(1,1).CopyFromRecordset oRs
' Fermeture des objets DAO
oRs.Close
Set oRs = Nothing
Set oDb = Nothing
' Sauvegarde du classeur Excel
ExcelWb.SaveAs "C:\Test.xls"
' Fermeture des objets Excel
Set Excelsheet = Nothing
Set ExcelWb = Nothing
Set ExcelApp = Nothing
Peut être que la solution se trouve sous mes yeux. enfin, si vous pouvez m'éclairer de vos lumières, je vous en saurais reconnaissant.

D'avance merci
MD