Bonjour à toutes et à tous !
En alternance depuis décembre 2017, j'ai pour mission de migrer les bd Access ainsi que les programmes Access de l'entreprise vers Sql Server Express.
Pour cela j'ai eu recours "Microsoft SQL Server Migration Assistant for Access", jusque-là tous va bien.
Après migration certains programmes ne réagissent pas bien à la migration, j'ai en effet l'erreur suivante "L'opération doit utiliser une requête qui peut être mise à jour" dans une fonction.
code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Function Deduction_stock(inumfact As Long) ' Modifie le stock d'une commande (facture bl ou avoir) Set qdf = CurrentDb.QueryDefs("RQDeductionStockFacturation") With qdf .Parameters("param_numfacture") = inumfact .Execute End With ' on stocke les unites dans une table temporaire Set qdf = CurrentDb.QueryDefs("RQFacturationU") With qdf .Parameters("param_numfacture") = inumfact .Execute End With ' on deduit les unites Dim sql As String sql = "UPDATE dbo_PRODUIT INNER JOIN UniteJour ON dbo_PRODUIT.refProduit = UniteJour.CodePilier SET dbo_PRODUIT.uniteEnStock = [uniteenstock]-[qlasortir];" 'Le débogage pointe sur la ligne suivante DoCmd.RunSQL sql, dbSeeChanges ' on stocke les lots a deduire dans une table temporaire Set qdf = CurrentDb.QueryDefs("RQsortiLot") With qdf .Parameters("param_numfacture") = inumfact .Execute End With ' on deduit les produits liés au lots DoCmd.OpenQuery "RQDeductionStockFacturationLot", acViewNormal, acEdit ' on vide les tables temporaires DoCmd.OpenQuery "RQsupLot", acViewNormal, acEdit DoCmd.OpenQuery "RQSupUnite", acViewNormal, acEdit End Function
Ce n'est pas un problème de droit puisque je me suis déjà attribué le droit de modification.
Si vous pouvez m'aider Svp...
Partager