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 23538 Date d'inscription Statut Contributeur Dernière intervention - 3 sept. 2017 à 18:34
yg_be Messages postés 23538 Date d'inscription Statut Contributeur Dernière intervention - 3 sept. 2017 à 18:34
A voir également:
- Acc. 2016 - Générateur d'Expressions - Fonctions intégrées - SQL
- Generateur mot de e - Télécharger - Sécurité
- Supprimer une page word 2016 - Guide
- Canva générateur d'image - Accueil - Outils
- Forum Excel
- Logiciel sql - Télécharger - Bases de données
7 réponses
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.
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 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 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 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 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.
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://.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://.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".