Recordset vers html

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 008 fois - Téléchargée 38 fois

Contenu du snippet

Petit Programme générique qui permet de générer un fichier HTML à partir d'une requête. Le fichier est cré par défaut dans le répertoire du logiciel.
D'autres explications dans le code.

A vous de la modifier pour ajouter une feuille de style, ou de modifier la structure, ...

Pour les gens qui font de la gestion ... il faut s'y connaitre un peu en accès aux données ...

Source / Exemple :


'*************************************************************************
'*** Dans ce programme j'utilise les objet ADODB (Microsoft ActiveX Data object 2.5
'***
'*** Vous pouvez mettre ses lignes dans un module de base,
'*** et l'appelé avec un bouton ou autre
'***
'*** Programme qui transforme le contenu d'un record set en forme HTML
'*** veuillez avoir configurer votre recordSet avant :
'*** .ActiveConnection = nom de votre connexion
'*** .CursorLocation = adUseClient
'*** La mise en forme est assez rudimentaire, à vous de rajouter ce que vous voulez
'*************************************************************************

'*** Cette api pour ouvrire le fichier HTM avec l'explorateur par défaut ***
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Public Sub REC_2_HTML(ByVal req_SQL As String, ByVal Titre As String, _
ByVal Nom_Fichier As String, ByRef mon_record As ADODB.Recordset)
    Dim i As Integer
    
    '*** Créer le fichier HTM par défaut dans le répertoire du Logiciel ***
    Nom_Fichier = App.Path & "\" & Nom_Fichier & ".htm"
    
    On Error GoTo TT_err
        mon_record.Open req_SQL
        
        '*** Pour pouvoir tester cette condition, il faut que le curseur soit du coté Client ***
        '*** dans le cas contraire, la propriété recordCount retourne toujours -1            ***
        If mon_record.RecordCount <> 0 Then
            
            '*** Ouverture du fichier HTM en mode OUTPUT, donc écraser automatiquement ***
            Open Nom_Fichier For Output As #1
            
            '*** début du fichier HTML avec Titre, ajoutez l'import ***
            '*** d'une feuille de style si vous le voulez           ***
            Print #1, "<html>"
            Print #1, "<head><title>" & Titre & "</title></head>"
            Print #1, "<body>"
            
            '*** ici la mise en forme du tableau, à change si vous le voulez ***
            Print #1, "<table width=100% border=1>"
            
            '** Impression des noms des champs ***
            Print #1, "<tr>"
            For i = 0 To mon_record.Fields.Count - 1
                Print #1, "<td><b>" & mon_record.Fields(i).Name & "</b></td>"
            Next
            Print #1, "</tr>"
            
            '*** insertion de toutes les valeurs ****
            Do Until mon_record.EOF
                Print #1, "<tr>"
                For i = 0 To mon_record.Fields.Count - 1
                    Print #1, "<td>" & mon_record.Fields(i).Value & "</td>"
                Next
                Print #1, "</tr>"
                mon_record.MoveNext
            Loop
            
            '*** Fini proprement le fichier HTML, meme si ses balises ***
            '*** ne sont pas importantes ...                          ***
            '*** et fermeture du fichier HTM                          ***
            Print #1, "</table></body></html>"
            Close #1
            '*** Ouverture du fichier HTM avec l'explorateur internet ***
            ShellExecute 0, "open", Nom_Fichier, "", App.Path, 1
        Else
        
            '*** Message si le recordset ne retourne aucune valeurs ***
            MsgBox "Pas de données"
        End If
        mon_record.Close
        
        
    On Error GoTo 0
    
    Exit Sub
TT_err:
    '*** Erreur possible : Perte de la connexion, Fichier HTM vérouillé
    '***       (car ouvert par un autre logiciel ***
    '*** ...
    '*** Message d'erreur avec description de l'erreur, et fin de l'application ***
    MsgBox "Erreur n° " & Err.Number & vbCrLf & vbCrLf & "Description : " & _
                 Err.Description & "." & vbCrLf & vbCrLf & "L'application va être arrêtée.", _
                 vbCritical, "Attention"
    End
End Sub

Conclusion :


Exemple pour l'exécution :

Call REC_2_HTML("select * from table", "Liste de table", "page_web", rec_baseD)

A voir également

Ajouter un commentaire Commentaire
Messages postés
2
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
23 décembre 2004

J'ai pensé à partager ce petit programme qui serviront certains qui voudrait par exemple, imprimer des rapports et qui ne sont pas à l'aise avec le data report, ou le crystal report, et puis .... en HTML, c'est quand meme l'avenir ...

Lazarus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.