Bonjour à tous !
Je suis complètement débutant sur base et dans les bases de données en général.
Je souhaite faire quelque chose qui me paraissait simple a priori, mais il semble que c'est plus compliqué que je ne le pensais et qu'il me faille utiliser des macros.
Voici mon problème :
Je veux créer un formulaire pour rentrer, une fois par an, les ventes annuelles de tous les produits répertoriés dans une table T_Produits, selon plusieurs catégories de ventes.
Je souhaite donc que ce formulaire contienne un bouton permettant de créer une nouvelle année de vente.
Lorsque la nouvelle année de vente est créée, je souhaite qu'une entrée soit crée automatiquement dans la table T_VenteAnnuelleProduit, pour chaque référence de produit contenu dans la table T_PRODUITS, avec la nouvelle année de vente et son nombre de ventes à zéro, dans chque catégorie de vente.
Ensuite, je souhaite pouvoir modifier le nombre de ventes pour les produits qui ont été vendus.
L'objectif est d'avoir un tableau modifiable qui présente tous les produits qu'ils aient été vendus ou non.
Je ne veux pas avoir à choisir l'année de vente, ou le produit dans une liste déroulante.
Je met en pièce jointe une version simplifiée de mon projet.
Pour ceux que ça intéresse, vous pouvez suivre une discussion sur le projet dans son intégralité ici :
https://forum.openoffice.org/fr/forum/v ... =9&t=57005
[Résolu][Base] Automatiser des nouvelles entrées
Modérateur : Vilains modOOs
Règles du forum
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 !
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 !
[Résolu][Base] Automatiser des nouvelles entrées
- Pièces jointes
-
- TEST.odb
- (4.15 Kio) Téléchargé 89 fois
LibreOffice Version: 5.4.5.1 (x64) sous Windows 7
Re: [Base]Automatiser des nouvelles entrées
Bonsoir
Un exemple à tester.A+
Un exemple à tester.
Code : Tout sélectionner
Sub VenteAnnuelle(oEv as Object)
Dim oForm as Object, oSubForm as Object, maConnexion as Object, maRequete as Object
Dim strSQL as String, maRequete2 as Object, Resultat as Object, instrSQL as String, Annee as Integer, Valeur as Integer
oForm = oEv.Source.Model.Parent
Annee = oForm.Columns(0).Value
maConnexion = oForm.ActiveConnection
oSubForm = oForm.getByName("sfmVente")
strSQL = "SELECT ""Ref_Produit"" FROM ""T_PRODUITS"""
instrSQL = "INSERT INTO ""T_VenteAnnuelleProduit"" (""Ref_Produit"",""Ref_AnneeDeVente"",""Categorie_1"",""Categorie_2"",""Categorie_3"") VALUES(?," & Annee & ",0,0,0)"
If oSubForm.RowCount = 0 Then
maRequete = maConnexion.createStatement()
maRequete2 = maConnexion.prepareStatement(instrSQL)
Resultat = maRequete.executeQuery(strSQL)
While Resultat.Next
Valeur = Resultat.Columns(0).int
maRequete2.setInt(1, Valeur)
maRequete2.execute
Wend
maRequete2.dispose
End if
oSubForm.Reload
End Sub
- Pièces jointes
-
- TEST.odb
- (14.22 Kio) Téléchargé 100 fois
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Re: [Base]Automatiser des nouvelles entrées
Bonjour Piaf,
Merci de ta réponse !
Grace à ton code et en retouchant un peu le formulaire, j'ai réussi à obtenir ce que je souhaitais !
Ça faisait deux semaine que je cherchais !
Encore merci !
(en pièce jointe, la version corrigée pour ceux que ça intéresse)
Edit :
En fait, ça ne marche pas encore tout à fait, je ne peux pas modifier les ventes...
Je vais regarder ça
Edit 2 :
Ca y est, on peut modifier les ventes, mais j'ai ré-appuyé sur le bouton après avoir entré des ventes pour voir ce que cela allait faire et ça a fait buger le logiciel.
Je me demande ce que je peux faire pour empêcher ça. Peut-être mettre une condition à l'exécution du code ?
Merci de ta réponse !
Grace à ton code et en retouchant un peu le formulaire, j'ai réussi à obtenir ce que je souhaitais !
Ça faisait deux semaine que je cherchais !
Encore merci !
(en pièce jointe, la version corrigée pour ceux que ça intéresse)
Edit :
En fait, ça ne marche pas encore tout à fait, je ne peux pas modifier les ventes...
Je vais regarder ça
Edit 2 :
Ca y est, on peut modifier les ventes, mais j'ai ré-appuyé sur le bouton après avoir entré des ventes pour voir ce que cela allait faire et ça a fait buger le logiciel.
Je me demande ce que je peux faire pour empêcher ça. Peut-être mettre une condition à l'exécution du code ?
- Pièces jointes
-
- TEST.odb
- (15.33 Kio) Téléchargé 91 fois
LibreOffice Version: 5.4.5.1 (x64) sous Windows 7