

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
6 messages in org.openoffice.fr.prog[prog] Macros et formulaires| From | Sent On | Attachments |
|---|---|---|
| Yves | Apr 4, 2004 2:25 pm | |
| Alain Nowak | Apr 5, 2004 12:47 am | |
| Alain Nowak | Apr 5, 2004 8:05 am | |
| Yves | Apr 5, 2004 12:33 pm | |
| Alain Nowak | Apr 6, 2004 2:25 am | |
| Yves | Apr 7, 2004 1:48 pm |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | [prog] Macros et formulaires | Actions... |
|---|---|---|
| From: | Yves (yves...@wanadoo.fr) | |
| Date: | Apr 4, 2004 2:25:14 pm | |
| List: | org.openoffice.fr.prog | |
Bonjour,
J'utilise une macro fournie par Tony Galmiche (merci à lui !) pour récupérer des données dans un formulaire et envoyer une requête "INSERT" à une source de données. Voici cette macro :
Sub AjouteHistorique() 'oDocument contient l'objet Classeur oDocument = ThisComponent
'oSheet contient le nom du classeur oSheet = oDocument.Sheets.getByName("Participations")
oDrawPage = oDocument.DrawPages.getByIndex(0)
'oForm contient le nom du formulaire du classeur oForm = oDrawPage.getForms.getByName("Ajout")
'Récupération des données du formulaire Adherent = oForm.getByName("Adherent").SelectedItems(0)+1 Produit = oForm.getByName("Produit").SelectedItems(0)+1 Nb = oForm.getByName("Nb").Text Montant = oForm.getByName("Montant").Text Date1 = oForm.getByName("Date").Date
'Partie connexion à la source de données et execution de la requete Dim oDatabaseContext, oDataSource, oConnection As Object Dim oStatement, oResultSet As Object Dim sQuery As String
oDatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
'HetH = Nom de la source de données oDataSource = oDatabaseContext.getByName("HetH") oConnection = oDataSource.GetConnection("","") oStatement = oConnection.CreateStatement()
SQL = "INSERT INTO historique VALUES(NULL,'" & Adherent & "','" & Produit & "','" & Nb & "','" & Montant & "','" & Date1 & "');" 'msgbox SQL RequeteEcrire=oStatement.executeUpdate(SQL)
msgbox "Nombre d'enregistrements insérés = " & RequeteEcrire
end sub
La ligne "Nb = oForm.getByName("Nb").Text" permet bien de récupérer le contenu du contrôle "Nb" si celui-ci est une zone de texte. Mais si c'est une zone numérique, je n'ai pas trouvé comment lire sa valeur.
Avec une zone de liste, j'ai eu encore plus de difficultés. En tatonnant, j'ai fini par trouver que l'instruction "Produit = oForm.getByName("Produit").SelectedItems(0)+1" permet de récupérer le n° de l'entrée de liste sélectionnée. Mais je n'ai pas trouvé comment récupérer le contenu de cette entrée ni celui du champ lié.
Alors, si quelqu'un s'y connait un peu dans la manière d'accéder au contenu des champs de formulaires grâce aux macros, je le remercie d'avance de m'aider un peu.
Une autre petite question : comment actualiser le contenu d'un contrôle de table grâce à une instruction plutôt qu'en cliquant sur l'icône correspondante ?
Merci pour votre aide.
Yves







