Utiliser infopath avec excel

popof

XLDnaute Occasionnel
Bonjour à toutes et à tous :)

Comme d'habitude je suis limité par mes compétences ( Limited competence certification platinium) et je m'oriente vers vous.

Je souhaiterais créer un formulaire qui incrémenterait une source de données (Excel en l'occurence) mais voilà je dois créer un fichier XML et là je c même pas se que veux dire XML sauf Xtra Mega Loser :sick:

Bon je suis un peu négatif mais bon :side:

Quelqu'un pourrait il m'orienter

Merci d'avance
 

Creepy

XLDnaute Accro
Bonjour le Forum, Popof,

Deja ce que Signifie XML : eXtensible Markup Language et ca sert à ca (ce n'est pas de moi) : 'Le XML autorise l’emploi de balises non standards et donc personnalisables lors de l’élaboration d’une page web. Parce qu’elle s’intègre mieux aux systèmes de gestion de bases de données, l’utilisation de XML est de plus en plus répandue au sein des serveurs d’applications et en commerce électronique.'

Dans la pratique moi je l'utilise pour générer des fichier XML avec tous les Login de ma boite pour apres alimenter une combobox par exemple.

Ma méthode.
1 - Je regarde si le fichier existe.
2 - Si oui s'il a plus de 120mn d'existance je l'efface et j'en recrée un
3 - Requête SQL à ma base de données
4 - Génération du fichier XML.
5 - Alimentation de ma combobox

Dans la pratique le code donne ca :

Sub Init_Login()

Dim Cnn            As New ADODB.Connection
Dim Cmd            As New ADODB.Command
Dim Rst_Temp        As New ADODB.Recordset
Dim Rst_LOCAL      As New ADODB.Recordset
Dim StrCn          As String
Dim Current_file    As String
Dim sSQL            As String

' Controle si ODBC enregistré et enregistre le cas echeant...
CONTROLE_ODBC_1
' Fonction Externe d'un enregistrement ODBC Dans la Base de Registre
CONTROLE_ODBC_2

Current_file = Application.Path & '\\' & 'LOGINS.XML'
' Nom du fichier et chemin

If Init_Data_Files('LOGINS.XML', 120) = True Then ' Test le temps d'existence du fichier
   
' Si sup à 120 mn ou existe pas, Il faut réinterroger la base :
        StrCn = 'Provider=MSDASQL.1;Persist Security Info=False;Data Source=TEST_FT;UID=Admin;PWD=dede'
        Cnn.Open StrCn
' Connection à la base Access
     
With Rst_Temp ' Preparation de la requete SQL
        .CursorLocation = adUseClient
        .CursorType = adOpenForwardOnly
        .LockType = adLockReadOnly
      End
With
       
' Requête SQL
        sSQL = 'SELECT BASE_LOG.LOG' & _
            ' FROM BASE_LOG' & _
            ' WHERE (((BASE_LOG.FLAG_USE_ETAT)=False)' & _
            ' AND ((BASE_LOG.FONCTION)=
'F3')) ' & _
            ' OR (((BASE_LOG.FLAG_USE_ETAT)=True)' & _
            ' AND ((BASE_LOG.FONCTION)
In ('F3',F2','ADM')))' & _
            ' ORDER BY BASE_LOG.FONCTION, BASE_LOG.LOGIN;'
       
       
With Rst_Temp
          .Open sSQL, Cnn, adOpenForwardOnly, adLockOptimistic, adCmdText
' Ouvre la base et traite la requête
          .Save Current_file, adPersistXML
' Crée le fichier XML
          .Close
' Ferme la base
        End
With
       
        Cnn.Close
        Rst_LOCAL.Open Current_file
' ouvre le XML
       
Else
        Rst_LOCAL.Open Current_file
End If

With Rst_LOCAL ' Ajout dans la combobox des logins
    .MoveFirst
' depuis le fichier XML
    Do
While Not .EOF
     
If !LOGIN <> 'ADMIN' Then
&nbsp; &nbsp; &nbsp; &nbsp; Frm_login.cmbx_login.AddItem !LOGIN
&nbsp; &nbsp; &nbsp; &nbsp; .MoveNext
&nbsp; &nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .MoveNext
&nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp;
Loop
End
With

Set Rst_Temp = Nothing

Frm_login.Show
' Affiche la Userform
End Sub
'----------------------------
' Fonction qui test si le fichier existe si oui si heure de creaton >&nbsp; 120 mn
Public
Function Init_Data_Files(ByVal FilePath As String, ByVal NbMinutesValidite As Integer) As Boolean

Dim Current_file As String
&nbsp; &nbsp;
Current_file = Application.Path & '\\' & FilePath
&nbsp; &nbsp;
&nbsp; &nbsp;
If Dir(Current_file) <> '' Then 'µSi le fichier existe

&nbsp; &nbsp; &nbsp; &nbsp;
If DateDiff('n', FileDateTime(Current_file), Now()) < NbMinutesValidite Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
' Rien à faire car heure de creation du fichier > 120 mn
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
' Nothing to do the file is up to date
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Init_Data_Files =
False
&nbsp; &nbsp; &nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Kill Current_file
' Sinon efface le fichier
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Init_Data_Files =
True
&nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp;
' Query the DATABASE
&nbsp; &nbsp; &nbsp; &nbsp; Init_Data_Files =
True ' Passe le parametre à True pour que
&nbsp; &nbsp; &nbsp; &nbsp;
' de retour à ma procedure on sache si il faut ou pas interroger la base

Je te donne le code avec des explications, à toi de l'adapter à tes besoins notament si tu veux savegarder des données depuis excel et non une Base de données.

@+

Creepy
 

popof

XLDnaute Occasionnel
Re le forum

Bon pour la poutre c'est bon, situé à eniron 2m12, je mesure 1m87 soit un delta de 25cm

Qui a une corde ??? :p

Non g honte, je ne comprends pas bien le code (mauvaise volonté oblige).

Existe t'il un début pour les nul ???

Sinon merci beaucoup Creepy je vais étudier la chose. ;)
 

popof

XLDnaute Occasionnel
Re le forum, Re creepy

Un grand merci à toi Creepy mais bon je lutte toujours.

En fait avec infopath je créer un formulaire qui me génére un fichier XML.

Jusque là tout va bien le problème viens du fait que je n'arrive pas à incrémenter mon fichier xml lorsque le formulaire est rempli.

:pinch:

D'avance merci
 

Pich

XLDnaute Nouveau
Salut Popof, le Forum,

J'ai le même problème que toi...

Je suis passé sur Access pour stocker mes données, et je les reprend sous excel pour faire des analyses.

Mais deja avec Infopath, tu peux faire des formulaires qui te permettent de faire des choses vraiment biens.

Si quelqu'un a des info pour permettre de lier un formulaire Infopath a une BDD Excel je suis preneur :)

Cordialement,

Pich
 

Statistiques des forums

Discussions
312 393
Messages
2 087 962
Membres
103 687
dernier inscrit
olivier72