Acc. 2016 - Générateur d'Expressions - Fonctions intégrées - SQL
Nefertari67
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir,
J'ai paramétré une BDD dans Access 2016 (Windows7) pour une association et je souhaite mettre en place une incrémentation automatique du numéro de Recu fiscal par une DataMacro avant validation de l'enregistrement.
Je souhaite donc utiliser la Fonction Dmax/MaxDom mais je ne la trouve pas dans les fonctions intégrées du générateur d'expressions.
En fait, tout le bloc "Regroupement SQL" manque. Je pense qu'il faut activer qqchose mais je ne sais pas quoi ni où...
Un grand merci par avance à l'ame généreuse qui voudra bien m'aider.
Bonne soirée
J'ai paramétré une BDD dans Access 2016 (Windows7) pour une association et je souhaite mettre en place une incrémentation automatique du numéro de Recu fiscal par une DataMacro avant validation de l'enregistrement.
Je souhaite donc utiliser la Fonction Dmax/MaxDom mais je ne la trouve pas dans les fonctions intégrées du générateur d'expressions.
En fait, tout le bloc "Regroupement SQL" manque. Je pense qu'il faut activer qqchose mais je ne sais pas quoi ni où...
Un grand merci par avance à l'ame généreuse qui voudra bien m'aider.
Bonne soirée
A voir également:
- Acc. 2016 - Générateur d'Expressions - Fonctions intégrées - SQL
- Generateur mot de passe - Télécharger - Sécurité
- Supprimer une page word 2016 - Guide
- Logiciel sql - Télécharger - Bases de données
- Generateur de cle windows 10 - Guide
- Canva générateur d'image - Accueil - Outils
7 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, que se passe-t'il si tu encodes le nom de la fonction?
Bonsoir,
Merci de te pencher sur mon pb.
Si je tape la fonction, j'ai un message d'erreur qui dit :
l'action de Macro (DéfinirChamp) possède une valeur non valide pour l'argument.
J'ai essayé de faire cela dans une requete, ma formule fonctionne mais le pb est que pour tous les enregistrements toppés, mes champs "N° de RF" ont la même valeur (valeur trouvée par DMax + 1).
Désolée si je ne suis pas claire :-), mais je suis une apprentie débutante.
J'ai également tenté de mettre ma fonction d'incrémentation dans un module VBA, mais impossible de trouver l'action "ExecuterCode dans le catalogue d'actions proposé par les DataMacro.
Merci de te pencher sur mon pb.
Si je tape la fonction, j'ai un message d'erreur qui dit :
l'action de Macro (DéfinirChamp) possède une valeur non valide pour l'argument.
J'ai essayé de faire cela dans une requete, ma formule fonctionne mais le pb est que pour tous les enregistrements toppés, mes champs "N° de RF" ont la même valeur (valeur trouvée par DMax + 1).
Désolée si je ne suis pas claire :-), mais je suis une apprentie débutante.
J'ai également tenté de mettre ma fonction d'incrémentation dans un module VBA, mais impossible de trouver l'action "ExecuterCode dans le catalogue d'actions proposé par les DataMacro.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
je pense que cela fonctionne si, dans (DéfinirChamp), tu appelles une fonction VBA au lieu de DMax.
Exemple de fonction VBA:
Exemple de fonction VBA:
Public Function maxref() As Long maxref = DMax("N° de RF", "Dons") End Function
Bonjour,
Merci pour ta repose et pour ton temps.
Mais j'ai la même erreur qu'avec DMax.
J'ai tenté deux requêtes ( une de mise à jour) et une de selection mais avec la même formulation dans la formule, donc finalement j'obtiens le même rpoblème. Toutes les valeurs du champs N°RFgenere ont la même valeur.
- Requete 1 : UPDATE Donateurs INNER JOIN Donations ON Donateurs.ID = Donations.IDDonateur SET Donations.Champ2 = DMax("[N°RFgenere]","[Donations]",+1)+1;
-Requete 2 (faite pour exporter toutes les informations dont j'ai besoin pour faire un publipostage Word/Excel) :
SELECT Donateurs.Nom, Donateurs.Prénom, Donateurs.Civilité, Donations.[Montant en lettres], Donateurs.Adresse1, Donateurs.Adresse2, Donateurs.Adresse3, Donateurs.[Code postal], Donateurs.Ville, Donateurs.Pays, Donateurs.Pol1, Donateurs.Pol2, Donations.[Date de la donation], Donations.Montant, Donations.[Forme du don], Donations.[Type de don], Donations.[Nature du don], Donations.[Mode de paiement], Donations.[RF à faire], Donations.[Statut RF], (DMax("[N°RFgenere]","[Donations]",+1)+1) AS Expr2
FROM Donateurs INNER JOIN Donations ON Donateurs.ID = Donations.IDDonateur
WHERE (((Donations.[RF à faire])=Yes));
Merci par avance.
Merci pour ta repose et pour ton temps.
Mais j'ai la même erreur qu'avec DMax.
J'ai tenté deux requêtes ( une de mise à jour) et une de selection mais avec la même formulation dans la formule, donc finalement j'obtiens le même rpoblème. Toutes les valeurs du champs N°RFgenere ont la même valeur.
- Requete 1 : UPDATE Donateurs INNER JOIN Donations ON Donateurs.ID = Donations.IDDonateur SET Donations.Champ2 = DMax("[N°RFgenere]","[Donations]",+1)+1;
-Requete 2 (faite pour exporter toutes les informations dont j'ai besoin pour faire un publipostage Word/Excel) :
SELECT Donateurs.Nom, Donateurs.Prénom, Donateurs.Civilité, Donations.[Montant en lettres], Donateurs.Adresse1, Donateurs.Adresse2, Donateurs.Adresse3, Donateurs.[Code postal], Donateurs.Ville, Donateurs.Pays, Donateurs.Pol1, Donateurs.Pol2, Donations.[Date de la donation], Donations.Montant, Donations.[Forme du don], Donations.[Type de don], Donations.[Nature du don], Donations.[Mode de paiement], Donations.[RF à faire], Donations.[Statut RF], (DMax("[N°RFgenere]","[Donations]",+1)+1) AS Expr2
FROM Donateurs INNER JOIN Donations ON Donateurs.ID = Donations.IDDonateur
WHERE (((Donations.[RF à faire])=Yes));
Merci par avance.
La fonction maxref fonctionne.
Je l'ai collé dans une requête et le résultat obtenu est le bon. Elle ressort bien la valeur max des données concernées (N°RFgenere).
Pour la fonction mon module ressemble à cela :
Option Explicit
---------------------------------------------------------------------------------------
Sub RF()
End Sub
---------------------------------------------------------------------------------------
Public Function maxref() As Long
maxref = DMax("N°RFgenere", "Donations")
End Function
Le problème c'est qu'avec les DataMacro dans Access 2016, on ne peut utiliser que les fonctions intégrées dans Access, même si nous définissons une "Public Function", elle n'apparait pas à cet endroit mais est complètement fonctionnelle dans des requêtes (par exemple).
Idem pour les macros : A partir du module VBA ci dessus, je suis supposée avoir créé une macro "RF". Or, elle n’apparaît pas dans ma liste de macro que je peux executer.
Impossible de trouver l'action "ExecuterCode" . Donc je ne sais pas comment appeler ma fonction :-(
J'ai eu le même problème pour transformer mes Montants en chiffres en lettres. J'ai résolu ce souci avec une requête d'ajout.
Je suis perdue.
Je l'ai collé dans une requête et le résultat obtenu est le bon. Elle ressort bien la valeur max des données concernées (N°RFgenere).
Pour la fonction mon module ressemble à cela :
Option Explicit
---------------------------------------------------------------------------------------
Sub RF()
End Sub
---------------------------------------------------------------------------------------
Public Function maxref() As Long
maxref = DMax("N°RFgenere", "Donations")
End Function
Le problème c'est qu'avec les DataMacro dans Access 2016, on ne peut utiliser que les fonctions intégrées dans Access, même si nous définissons une "Public Function", elle n'apparait pas à cet endroit mais est complètement fonctionnelle dans des requêtes (par exemple).
Idem pour les macros : A partir du module VBA ci dessus, je suis supposée avoir créé une macro "RF". Or, elle n’apparaît pas dans ma liste de macro que je peux executer.
Impossible de trouver l'action "ExecuterCode" . Donc je ne sais pas comment appeler ma fonction :-(
J'ai eu le même problème pour transformer mes Montants en chiffres en lettres. J'ai résolu ce souci avec une requête d'ajout.
Je suis perdue.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai eu droit à un message d'erreur qui ne dit que la valeur n'est pas compatible avec le web.
Mais je m'en moque du web. Ma BDD ne sera pas publiée.
Mais je m'en moque du web. Ma BDD ne sera pas publiée.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
moi j'ai ceci comme datamacro "avant changement", et cela me semble bien fonctionner (sauf quand j'ajoute en une fois plusieurs enregistrements):
(if) ([ref]=0) Or IsNull([ref]) (DéfinirChamp) ref maxref()+1 (end if)
Rien à faire,cela ne fonctionne pas.
Ma BDD doit être dans un format "bizarre" type 'compatible avec le web pour que cela soit bloquant mais je ne sais pas où se définit ce choix ni si on peut revenir en arrière.
En attendant, un grand merci pour ton temps et ton aide.
Ma BDD doit être dans un format "bizarre" type 'compatible avec le web pour que cela soit bloquant mais je ne sais pas où se définit ce choix ni si on peut revenir en arrière.
En attendant, un grand merci pour ton temps et ton aide.
C'est super gentil mais elle est très remplie.
En fait, je crois que j'ai trouvé. C'est un truc que je en savais pas.
Je suis dans ACC 2016 et ma BDD a été créée comme une BDD web et non de bureau. Et en fonction de cela, nous n'avons pas les mêmes possibilités. Grunch, Grunch et re-Grunch.
(https://support.microsoft.com/fr-fr/office/cr%c3%a9er-une-base-de-donn%c3%a9es-access-%c3%a0-partager-sur-le-web-cca08e35-8e51-45ce-9269-8942b0deab26?ui=fr-fr&rs=fr-fr&ad=fr
Je viens donc de créer une nouvelle BDD de type "Bureau" et j'ai importé mon autre BDD (de type web).
Dans la DataMacro, je n'ai plus de message d'erreur concernant la "Valeur" du Champ à définir.
Par contre, j'ai un petit message d'erreur quand je saisi une donnée qui dit "Types incompatibles".
En fait, je crois que j'ai trouvé. C'est un truc que je en savais pas.
Je suis dans ACC 2016 et ma BDD a été créée comme une BDD web et non de bureau. Et en fonction de cela, nous n'avons pas les mêmes possibilités. Grunch, Grunch et re-Grunch.
(https://support.microsoft.com/fr-fr/office/cr%c3%a9er-une-base-de-donn%c3%a9es-access-%c3%a0-partager-sur-le-web-cca08e35-8e51-45ce-9269-8942b0deab26?ui=fr-fr&rs=fr-fr&ad=fr
Je viens donc de créer une nouvelle BDD de type "Bureau" et j'ai importé mon autre BDD (de type web).
Dans la DataMacro, je n'ai plus de message d'erreur concernant la "Valeur" du Champ à définir.
Par contre, j'ai un petit message d'erreur quand je saisi une donnée qui dit "Types incompatibles".