IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

L'opération doit utiliser une requête qui peut être mise à jour


Sujet :

Développement SQL Server

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 14
    Points : 9
    Points
    9
    Par défaut L'opération doit utiliser une requête qui peut être mise à jour
    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...

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Si on considère ta requête initiale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE dbo_PRODUIT INNER JOIN UniteJour ON dbo_PRODUIT.refProduit = UniteJour.CodePilier SET dbo_PRODUIT.uniteEnStock = [uniteenstock]-[qlasortir];
    Personnellement je l'écrirais comme cela.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE P
    	SET dbo_PRODUIT.uniteEnStock = [uniteenstock]-[qlasortir]
    from 
    	dbo_PRODUIT P 
    	INNER JOIN UniteJour UJ 
    	ON P.refProduit = UJ.CodePilier;
    Pour moi si tu veux plusieurs tables dans un update il faut utiliser un from.
    Je ne connais pas la syntaxe que tu utilises, je ne crois pas qu'elle existe sous sql server
    Cordialement Soazig

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/02/2010, 07h41
  2. Réponses: 0
    Dernier message: 17/01/2010, 17h42
  3. Réponses: 1
    Dernier message: 18/12/2009, 10h29
  4. Réponses: 1
    Dernier message: 23/05/2008, 11h45
  5. Réponses: 7
    Dernier message: 29/04/2008, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo