[Résolu][Base] Opération sur plusieurs champs

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
filo62
Membre OOrganisé
Membre OOrganisé
Messages : 59
Inscription : 16 mars 2006 11:41

[Résolu][Base] Opération sur plusieurs champs

Message par filo62 »

Bonjour

Après recherche sur le forum, je n'arrive pas à faire une simple opération sur deux champs à partir d'une macro. Je ne souhaite pas la faire par une requête car je vais avoir des opérations plus complexes à mettre en place.
L'opération se fait, mais le résultat n'est pas enregistré dans ma table "Accidents". Le résultat se retrouve également sur l'enregistrement suivant ou précédent.

Pourriez-vous m'expliquer pourquoi la fonction .commit n'enregistre pas mon résultat dans ma table ?

Code : Tout sélectionner

Sub PLTotal() 'somme des piétons et motos
	DIM oForm AS Object
	Dim Var1 As INTEGER, Var2 As INTEGER, Somme As INTEGER
	oForm = ThisComponent.DrawPage.Forms.getByName("Formulaire")
	Var1 = oForm.getByName("fmtPietons").effectiveValue
	Var2 = oForm.getByName("fmtMotos").effectiveValue
	Somme = Var1 + Var2
	oForm.getByName ("fmtTotal").text = Somme

'sauvegarde du champ Total
	Oform.getByName("fmtTotal").commit
End Sub
Merci
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par filo62 le 23 avr. 2015 10:58, modifié 2 fois.
Merci de supprimer mon compte
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base] Opération sur plusieurs champs à l'aide d'une mac

Message par Piaf »

Bonjour
Teste

Code : Tout sélectionner

Sub PLTotal(oEv as Object) 'somme des piétons et motos
Dim oForm AS Object
Dim Var1 As Integer, Var2 As Integer, Somme As Integer
	oForm = oEv.Source.Model.Parent
	Var1 = oForm.getByName("fmtPietons").EffectiveValue
	Var2 = oForm.getByName("fmtMotos").EffectiveValue
	Somme = Var1 + Var2
	oForm.getByName ("fmtTotal").EffectiveValue = Somme

'sauvegarde du champ Total
	oForm.getByName("fmtTotal").commit
End Sub
sur l'évènement Texte modifié des contrôles Piétons et Motos.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
filo62
Membre OOrganisé
Membre OOrganisé
Messages : 59
Inscription : 16 mars 2006 11:41

Re: [Base] Opération sur plusieurs champs et mémorisation

Message par filo62 »

Un grand merci !
J'ai cherché des heures et finalement, j'ai enfin compris pourquoi ça ne fonctionnait pas.

Je joins la base modifiée pour les autres.

Modif : J'ai supprimé le bouton
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par filo62 le 23 avr. 2015 13:04, modifié 3 fois.
Merci de supprimer mon compte
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Résolu][Base] Opération sur plusieurs champs

Message par Piaf »

Bonjour
Le bouton dans le formulaire est inutile :)
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64