Bonjour,
Je n'ai plus vraiment ça en tête, mais je vais tenter de répondre au mieux...
Envoyé par
massdiop26
... le probleme qui se pose est cela n'extrait pas tous les enregistrements de la table Contracdata ...
Il manque la boucle qui parcourt tous les champs de Contracdata.
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
| ' *** Element <ContractData> ***
' Sélectionner les enregistrements de la table des ContractData
Set rsP = db.OpenRecordset("ContractData")
' S'il y a des enregistrements
If rsP.RecordCount > 0 Then
Do
' Créer et ajouter l'élément <ContractData>
Set oContractData = oXmlDoc.createElement("ContractData")
oContract.appendChild oXmlDoc.createTextNode(vbCrLf)
oContract.appendChild oXmlDoc.createTextNode(String(2 * CL_TABLEN, " "))
oContract.appendChild oContractData
' Créer et ajouter les éléments enfants de <ContractData>
' parcourir les champs de la table
For Each oFld In rsP.Fields
Select Case oFld.Name
Case "C"
' ne pas ajouter
Case Else
' Créer et ajouter les éléments enfants de <ContractData>
Set oChildElt = oXmlDoc.createElement(oFld.Name)
oChildElt.Text = Nz(oFld.Value, "")
oContractData.appendChild oXmlDoc.createTextNode(vbCrLf)
oContractData.appendChild oXmlDoc.createTextNode(String(3 * CL_TABLEN, " "))
oContractData.appendChild oChildElt
End Select
Next
' enregistrement suivant table des ContractData
rsP.MoveNext
Loop Until rsP.EOF
oContractData.appendChild oXmlDoc.createTextNode(vbCrLf)
oContractData.appendChild oXmlDoc.createTextNode(String(2 * CL_TABLEN, " "))
End If
rsP.Close
Set rsP = Nothing |
Envoyé par
massdiop26
et aussi le champs A definir j aimerais le remplacer par un champs de la table Batch
En ayant ces constantes
1 2
| Const CS_TBL_Batch = "Batch" ' Table des Batch
Const CS_Batch = "BatchIdentifier" ' Code client qui sera reporté dans l'élément racine du xml |
Remplacer...
oRoot.setAttribute "Code", CS_Batch
...par...
oRoot.setAttribute "Code", Nz(DLookup(CS_Batch, CS_TBL_Batch), "")
A+
Partager