Crée un fichier XML (VB) en local ,
Ouverture de ce fichier avec ADO, Mise à jour d'enregistrements.
Son utilisation est par exemple la récupération de données sur un serveur, leur mise en forme... afin d'éviter de laisser traîner ces données en collection ( liste trop longue donc mémoire dispo réduite) .
Cela évite les allez et retour sur le serveur. Les possibilités de filtrer le fichier etc
Je mets cette source à votre dispo ( Et votre indulgence, le code est extrait d'une source et simplifié )
Source / Exemple :
Option Explicit
Private Const NomDirTmpXml As String = "C:\temp\XMLFichier.xml"
Private ObjRecClients As ADODB.Recordset
Private IdentIDT As Long
Private Sub CreerLeRec()
Set ObjRecClients = New ADODB.Recordset
With ObjRecClients.Fields
.Append ("NumId"), adWChar, 25, adFldRowID
.Append ("Nom"), adWChar, 65, adFldLong
.Append ("Prenom"), adWChar, 65, adFldLong
.Append ("Titre"), adWChar, 60, adFldLong
ObjRecClients.Open
End With
End Sub
Private Sub AjoutAuRecordSetXml(Nom As String, Prenom As String, Titre As String, Optional MiseAjour As Boolean)
If MiseAjour Then
If ObjRecClients Is Nothing Then Set ObjRecClients = OuvreXMLSeul
End If
With ObjRecClients
IdentIDT = IdentIDT + 1
.AddNew
.Fields("NumId").Value = CStr(IdentIDT)
.Fields("Nom").Value = Nom
.Fields("Prenom").Value = Prenom
.Fields("Titre").Value = Titre
If MiseAjour Then
.UpdateBatch
EnregistreXML ObjRecClients
End If
End With
End Sub
Private Sub EnregistreXML(LeRecordSet As ADODB.Recordset)
'Le fichier étant présent dans NomDirTmpXml il est impératif en cas de
'rechargement complet de supprimer ce fichier avant de le créer.
On Error Resume Next
Kill NomDirTmpXml
On Error GoTo 0
'L'option adPersistXML est simplement à préciser
LeRecordSet.Save NomDirTmpXml, adPersistXML
LeRecordSet.Close
Set LeRecordSet = Nothing
End Sub
Private Function OuvreXMLSeul() As Recordset
Dim LeRecordSet As New ADODB.Recordset
'Ouvrir tout simplement en passant en param le chemin
LeRecordSet.Open NomDirTmpXml
Set OuvreXMLSeul = LeRecordSet
End Function
Private Sub Cmdadd_Click()
AjoutAuRecordSetXml Me.TextNom, Me.TextPrenom, Me.TextTitre, True
End Sub
Private Sub Form_Load()
CreerLeRec 'En 1°)
EnregistreXML ObjRecClients ' en 2°) l'enregistrer en local
End Sub
Conclusion :
ce code est extrait d'une de mes sources, il est réduit et simplifié afin d'en expliquer son fonctionnement ( ps : excusez la gesion de l'id : IdentIDT , j'avais rien d'autre en stock ).
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.