Opération trop complexe

Résolu
ablace Messages postés 11 Date d'inscription mardi 18 octobre 2022 Statut Membre Dernière intervention 14 mai 2024 - 9 mai 2024 à 15:57
blux Messages postés 26055 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 mai 2024 - 14 mai 2024 à 16:37

Bonjour,

Une application développée sur mon PC et qui fonctionne bien refuse l'ouverture de certains états dans un autre PC et affiche le message "opération trop complexe"

Pourquoi cette différence de fonctionnement d'un PC à l'autre ?

Merci.


Windows / Chrome 124.0.0.0

9 réponses

blux Messages postés 26055 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 mai 2024 3 290
9 mai 2024 à 16:02

Salut,

quel type d'application ?


0
ablace Messages postés 11 Date d'inscription mardi 18 octobre 2022 Statut Membre Dernière intervention 14 mai 2024 1
9 mai 2024 à 16:03

bonsoir, c'est une application access

0
yg_be Messages postés 22791 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 mai 2024 1 467
9 mai 2024 à 19:49

bonjour,

soit les données ne sont pas identiques

soit l'état est mal conçu, et consomme inutilement trop de resources

0
ablace Messages postés 11 Date d'inscription mardi 18 octobre 2022 Statut Membre Dernière intervention 14 mai 2024 1
10 mai 2024 à 13:12

Bonjour et merci pour l'intérêt que vous portez à mon activité,

Vous avez sans doute raison concernant la deuxième option ; la consommation inutile de trop de ressources. J'ai dans ma requête 3 champs avec fonctions IIF assez longues. J'aurais aimé les convertir en VBA mais je ne maîtrise ce domaine.

Y aurait-il une formule pour convertir ces requêtes en VBA ?

Voici ces 3 champs : 

champ 1: VraiFaux([AK3]<2000000;[AK3]*0;VraiFaux([AK3]<5000000;2000000*0+([AK3]-2000000)*0;VraiFaux([AK3]<10000000;2000000*0+(5000000-2000000)*0+([AK3]-5000000)*0,01;VraiFaux([AK3]<50000000;2000000*0+(5000000-2000000)*0+(10000000-5000000)*0,01+([AK3]-10000000)*0,02;2000000*0+(5000000-2000000)*0+(10000000-5000000)*0,01+(50000000-10000000)*0,02+([AK3]-50000000)*0,05))))

Champ 2: VraiFaux([AV2]<2000000;[AV2]*0;VraiFaux([AV2]<5000000;2000000*0+([AV2]-2000000)*0,07;VraiFaux([AV2]<10000000;2000000*0+(5000000-2000000)*0,07+([AV2]-5000000)*0,1;VraiFaux([AV2]<50000000;2000000*0+(5000000-2000000)*0,07+(10000000-5000000)*0,1+([AV2]-10000000)*0,15;2000000*0+(5000000-2000000)*0,07+(10000000-5000000)*0,1+(50000000-10000000)*0,15+([AV2]-50000000)*0,2))))

Champ 3: VraiFaux([BA2]<2000000;[BA2]*0,1;VraiFaux([BA2]<5000000;2000000*0,1+([BA2]-2000000)*0,15;VraiFaux([BA2]<10000000;2000000*0,1+(5000000-2000000)*0,15+([BA2]-5000000)*0,2;VraiFaux([BA2]<50000000;2000000*0,1+(5000000-2000000)*0,15+(10000000-5000000)*0,2+([BA2]-10000000)*0,3;2000000*0,1+(5000000-2000000)*0,15+(10000000-5000000)*0,2+(50000000-10000000)*0,3+([BA2]-50000000)*0,4))))

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 22791 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 mai 2024 1 467
10 mai 2024 à 15:25

peux-tu partager ton fichier?

0
ablace Messages postés 11 Date d'inscription mardi 18 octobre 2022 Statut Membre Dernière intervention 14 mai 2024 1
11 mai 2024 à 15:30

Comment envoyer mon fichier access à travers le forum

0
yg_be Messages postés 22791 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 mai 2024 1 467
11 mai 2024 à 15:37

Publier le fichier sur Internet (google drive, cjoint.com, ...), puis partager ici un lien vers le fichier.

0
ablace Messages postés 11 Date d'inscription mardi 18 octobre 2022 Statut Membre Dernière intervention 14 mai 2024 1
13 mai 2024 à 14:27

https://www.cjoint.com/c/NEnmz7lbiaF

0
yg_be Messages postés 22791 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 mai 2024 1 467
13 mai 2024 à 16:23

Un exemple de fonction VBA pour le calcul de parv:

Public Function fparv(p)
If p < 2000000 Then
    fparv = 0 * p
Else
    If p < 5000000 Then
        fparv = 2000000 * 0 + (p - 2000000) * 0
    Else
        If p < 10000000 Then
            fparv = 2000000 * 0 + (5000000 - 2000000) * 0 + (p - 5000000) * 0.01
        Else
            If p < 50000000 Then
                fparv = 2000000 * 0 + (5000000 - 2000000) * 0 + (10000000 - 5000000) * 0.01 + (p - 10000000) * 0.02
            Else
                fparv = 2000000 * 0 + (5000000 - 2000000) * 0 + (10000000 - 5000000) * 0.01 + (50000000 - 10000000) * 0.02 + (p - 50000000) * 0.05
            End If
        End If
    End If
End If

Tu mets ce code dans un module, et, dans la requête, tu fais ainsi pour calculer parv:

fparv([AK2]) AS parV, 
0
ablace Messages postés 11 Date d'inscription mardi 18 octobre 2022 Statut Membre Dernière intervention 14 mai 2024 1
14 mai 2024 à 15:00

Bonjour,

J'ai pu intégrer tous les codes dans les différents champs et ça marche parfaitement. Le seul bémol que j'ai rencontré était l'absence de "End function" à la fin du code que j'ai finalement inséré.

Je ne sais comment vous remercier de m'avoir guidé pas à pas jusqu'à ce que je puisse sortir l'épine de mon pied.

Grandement merci !

0
yg_be Messages postés 22791 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 mai 2024 1 467
Modifié le 14 mai 2024 à 16:05

Content d'avoir pu te donner un coup de main.

Désolé pour le "end function", négligé dans le couper/coller.

Peux-tu marquer la discussion comme résolue?

0
blux Messages postés 26055 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 mai 2024 3 290 > yg_be Messages postés 22791 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 mai 2024
14 mai 2024 à 16:37

J'ai fait...

0