D'habitude j'utilise dans mon formulaire la formule
qui incr=E9mente de 1 la valeur du champ concern=E9
l=E0 je souhaite cr=E9er une requ=EAte ajout qui prends tous=20
les enregistrements d'une table pour les ajouter =E0 une=20
autre et ....=20
il a pas l'air d'=EAtre d'accord parceque il propose la=20
m=EAme valeur pour tous les enregistrements =E0 ajouter alors=20
qu'il s'agit de la clef ds la table de destination
comment faire ? il faut cr=E9er une routine qui ajoute les=20
enregistrements 1 =E0 la fois ?
parceque =E7a
----------------------------------------------------------
INSERT INTO PI=E8CE ( IDMODELE, IDMATIERE, LIB_PIECE,=20
IDPIECE, IDPIECE_BRUTE, IDTYPE_PIECE, N_PIECE )
SELECT Pc_brutes_acreer.IDMODELE,=20
Pc_brutes_acreer.IDMATIERE, Pc_brutes_acreer.LIBELLE, DMax
("IDPIECE","PI=E8CE")+1 AS Expr4, 0 AS Expr1, 43 AS Expr2,=20
DMax("N_PIECE","PI=E8CE")+1 AS Expr3
FROM Pc_brutes_acreer INNER JOIN PI=E8CE ON=20
(Pc_brutes_acreer.IDMATIERE =3D PI=E8CE.IDMATIERE) AND=20
(Pc_brutes_acreer.IDMODELE =3D PI=E8CE.IDMODELE)
GROUP BY Pc_brutes_acreer.IDMODELE,=20
Pc_brutes_acreer.IDMATIERE, Pc_brutes_acreer.LIBELLE, DMax
("IDPIECE","PI=E8CE")+1, 0, 43, DMax("N_PIECE","PI=E8CE")+1;
-----------------------------------------------------
ne marche pas
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
mouly
ran[débutante vba] wrote in news:031001c51591$bb63faa0$:
DMax ("IDPIECE","PIèCE")+1
pour des raisons d'optimisation, le DMax dans ton select n'est calculé qu'une seule fois.
pour forcer le recalcul, créé une fonction que tu appeleras avec un paramètre qui change (la clef primaire de ta table par exemple). cette fonction devra calculer le DMAX qu'il te faut.
-- mouly mouly2 at yahoo dot com
ran[débutante vba] <ranette@discussions.microsoft.com> wrote in
news:031001c51591$bb63faa0$a501280a@phx.gbl:
DMax ("IDPIECE","PIèCE")+1
pour des raisons d'optimisation, le DMax dans ton select n'est calculé
qu'une seule fois.
pour forcer le recalcul, créé une fonction que tu appeleras avec un
paramètre qui change (la clef primaire de ta table par exemple). cette
fonction devra calculer le DMAX qu'il te faut.
ran[débutante vba] wrote in news:031001c51591$bb63faa0$:
DMax ("IDPIECE","PIèCE")+1
pour des raisons d'optimisation, le DMax dans ton select n'est calculé qu'une seule fois.
pour forcer le recalcul, créé une fonction que tu appeleras avec un paramètre qui change (la clef primaire de ta table par exemple). cette fonction devra calculer le DMAX qu'il te faut.
-- mouly mouly2 at yahoo dot com
Je comprends vaguement le concept mais pas assez de connaissances pour l'appliquer.
Où, quoi, comment faire ?
merci
-----Message d'origine----- ran[débutante vba] wrote in
news:031001c51591$bb63faa0$:
DMax ("IDPIECE","PIèCE")+1
pour des raisons d'optimisation, le DMax dans ton select n'est calculé
qu'une seule fois.
pour forcer le recalcul, créé une fonction que tu appeleras avec un
paramètre qui change (la clef primaire de ta table par exemple). cette
fonction devra calculer le DMAX qu'il te faut.
-- mouly mouly2 at yahoo dot com .
Je comprends vaguement le concept mais pas assez de
connaissances pour l'appliquer.
Où, quoi, comment faire ?
merci
-----Message d'origine-----
ran[débutante vba] <ranette@discussions.microsoft.com>
wrote in
news:031001c51591$bb63faa0$a501280a@phx.gbl:
DMax ("IDPIECE","PIèCE")+1
pour des raisons d'optimisation, le DMax dans ton select
n'est calculé
qu'une seule fois.
pour forcer le recalcul, créé une fonction que tu
appeleras avec un
paramètre qui change (la clef primaire de ta table par
exemple). cette
on y parle de la fonction Rnd() mais c'est un problème similaire au tiens
-- mouly mouly2 at yahoo dot com
ran[nulle en vba ]
Je crains de faire tache. J'y arrive pas. J'essaie un truc du genre ... ' -------------------------------------------------- ' FONCTION INCREMENT POUR REQUETE ' -------------------------------------------------- ' Entrée : champ pour DMax ' table pour DMax ' idvar <- Une valeur quelconque, ou un 'champ de requête qui varie à chaque enregistrement ' Sortie : Increment -> Nombre entier incrémenté ' Public Function Test(champ As String, table As String, v As Variant) Randomize temp = Int(Rnd * v) Test = (DMax(champ, table) + 1) + temp Test = Test - temp 'Response = MsgBox(temp) End Function
mais ça reforce pas mon calcul je ne comprends pas ce qui le fait "recalculer" dans la gfonction exemple
Je crains de faire tache.
J'y arrive pas.
J'essaie un truc du genre ...
' --------------------------------------------------
' FONCTION INCREMENT POUR REQUETE
' --------------------------------------------------
' Entrée : champ pour DMax
' table pour DMax
' idvar <- Une valeur quelconque, ou un
'champ de requête qui varie à chaque enregistrement
' Sortie : Increment -> Nombre entier incrémenté
'
Public Function Test(champ As String, table As String, v
As Variant)
Randomize
temp = Int(Rnd * v)
Test = (DMax(champ, table) + 1) + temp
Test = Test - temp
'Response = MsgBox(temp)
End Function
mais ça reforce pas mon calcul
je ne comprends pas ce qui le fait "recalculer" dans la
gfonction exemple
Je crains de faire tache. J'y arrive pas. J'essaie un truc du genre ... ' -------------------------------------------------- ' FONCTION INCREMENT POUR REQUETE ' -------------------------------------------------- ' Entrée : champ pour DMax ' table pour DMax ' idvar <- Une valeur quelconque, ou un 'champ de requête qui varie à chaque enregistrement ' Sortie : Increment -> Nombre entier incrémenté ' Public Function Test(champ As String, table As String, v As Variant) Randomize temp = Int(Rnd * v) Test = (DMax(champ, table) + 1) + temp Test = Test - temp 'Response = MsgBox(temp) End Function
mais ça reforce pas mon calcul je ne comprends pas ce qui le fait "recalculer" dans la gfonction exemple
mouly
"ran[nulle en vba ]" wrote in news:094901c51803$bb662810$:
mais ça reforce pas mon calcul je ne comprends pas ce qui le fait "recalculer" dans la fonction exemple
en fait la fonction est appelée avec des paramètres différent à chaque fois
dans la requête on utilise maFonction(champ1) par exemple si champ1 est une clé de ta table, il sera différent pour chaque ligne de ta requête et Access devra recalculer la fonction à chaque fois même si chanp1 n'est pas utile à ta fonction, si il apparait dans les paramètres, il force un recalcul de ta fonction
-- mouly mouly2 at yahoo dot com
"ran[nulle en vba ]" <ranette@discussions.microsoft.com> wrote in
news:094901c51803$bb662810$a401280a@phx.gbl:
mais ça reforce pas mon calcul
je ne comprends pas ce qui le fait "recalculer" dans la
fonction exemple
en fait la fonction est appelée avec des paramètres différent à chaque fois
dans la requête on utilise maFonction(champ1) par exemple
si champ1 est une clé de ta table, il sera différent pour chaque ligne de
ta requête et Access devra recalculer la fonction à chaque fois
même si chanp1 n'est pas utile à ta fonction, si il apparait dans les
paramètres, il force un recalcul de ta fonction
"ran[nulle en vba ]" wrote in news:094901c51803$bb662810$:
mais ça reforce pas mon calcul je ne comprends pas ce qui le fait "recalculer" dans la fonction exemple
en fait la fonction est appelée avec des paramètres différent à chaque fois
dans la requête on utilise maFonction(champ1) par exemple si champ1 est une clé de ta table, il sera différent pour chaque ligne de ta requête et Access devra recalculer la fonction à chaque fois même si chanp1 n'est pas utile à ta fonction, si il apparait dans les paramètres, il force un recalcul de ta fonction
-- mouly mouly2 at yahoo dot com
ran[débutante vba]
ok
alors si c'est juste appeler un paramètre variable qu'il faut, je l'ai fait
j'avais même fait tourner un random au cas où ça aurait aidé ... niet
mais il recalcule quand même pas mon Dmax le résultat reste identique
ok
alors si c'est juste appeler un paramètre variable qu'il
faut, je l'ai fait
j'avais même fait tourner un random au cas où ça aurait
aidé ... niet
mais il recalcule quand même pas mon Dmax
le résultat reste identique