Bonjour,
J'ai une application qui tourne sous Access depuis plusieurs années. Aujourd'hui le dois apporter une modification et je suis bloqué sur un problème que je n'arrive pas à résoudre.
J'ai deux tables avec des définitions similaires
DétailCession
IdxDétailCession :NuméroAuto, Entier long, Indexé sans doublon
RéfCde : Numérique, Entier long,Indexé avec doublons
CodeLivre : Numérique, Entier long, Indexé avec doublons
EtatLivre : Texte
CocheLivre : Oui/Non
DétailReprendre : mêmes rubriques sauf IdxDétailReprendre
Dans mon traitement je souhaite que les enregistrements correspondant à
une commande de la table DétailCession soient chargées dans la table DétailReprendre, mais en ajoutant 2000 à la RéfCde
Le N° de commande à charger est fourni par un contrôle de formulaire : RéfCde
Ci-dessous l'extrait de mon code VBA
1 2 3 4 5 6
| Dim RéfDépAnt As Long
RéfDépAnt = Me!RéfCde + 2000
DoCmd.RunSQL " INSERT INTO DétailReprendre ( RéfCde, CodeLivre, EtatLivre, CocheLivre )" & _
" SELECT ' & RéfDépAnt & ', DétailCession.CodeLivre, DétailCession.EtatLivre, DétailCession.CocheLivre" & _
" FROM DétailCession" & _
" WHERE ((DétailCession.RéfCde)= " & Me!RéfCde & ");" |
Mais à chaque fois j'ai le message " x enregistrements n'ont pas été ajoutés à la table à la suite de violation de clé".
J'ai vérifié la valeur de RéDépAnt est correcte : si RéfCde =10, RéfDépAnt = 2010
C'est sans doute que ma requête est erronée et que la valeur de RéfDépAnt n'est pas reconnue ce qui provoque la violation de clé.
Pouvez vous me dire comment rédiger ma requête pour indiquer la RéfCde à charger, tout en reprenant les enregistrements de la table DétailCession.
Partager