Affiche le résultat d'une requette SQL dans un fichier excel

A savoir le programme permet UNIQUEMENT de remplir une table , la connexion doit être faite , le fichier excel doit être fait .


Exemple d'utilisation

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
     ChDir (App.Path)
     url = App.Path & "\fichier\fichier.xls"
    'les variables :
 
    Dim i, j, nombre_champ_table As Integer
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
 
 
    'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
    Set wbExcel = appExcel.Workbooks.Open(url)
 
    sql = "SELECT *   FROM client;"
 
    Call print_dans_excel(wbExcel, "FT", sql)

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Paterson 
'22 juillet 2011
'
'Fonctions excel et base de donnée
'
'Ouvre l'onglet séletionné ( il faut le créé avant )  et fait sa requette SQL
'
'print_dans_excel(wbExcel, onglet, sql)
''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
 
 
Public Function print_dans_excel(wbExcel As Excel.Workbook, onglet As String, sql As String)
    ' On passe a Bientot_fini
     Dim rs           As New ADODB.Recordset
 
    Set wsExcel = wbExcel.Worksheets(onglet)
 
    rs.Open sql, G_Base, adOpenDynamic, adLockReadOnly
    nombre_champ_table = rs.Fields.Count - 1
        For j = 0 To nombre_champ_table Step 1
            wsExcel.Cells(1, j + 1).Value = rs.Fields(j).Name
        Next
    i = 2
    While Not rs.EOF
 
        For j = 0 To nombre_champ_table Step 1
            If (rs(j).Type = 7) Then
                If (rs(j) <> "") Then
 
                    wsExcel.Cells(i, j + 1).Value = CDate(rs(j))
 
 
                Else
                    wsExcel.Cells(i, j + 1).Value = ""
                End If
            Else
                wsExcel.Cells(i, j + 1).Value = (rs(j))
            End If
        Next
 
        i = i + 1
 
        rs.MoveNext
    Wend
    rs.Close
 
 
End Function