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

IHM Discussion :

dupliquer un enregistrement (sous-formulaire)


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Points : 155
    Points
    155
    Par défaut dupliquer un enregistrement (sous-formulaire)
    Bonsoir,

    J'aimerai quelques conseils.

    J'ai une formulaire/ssformulaire Commande. Quand la commande arrive et la qte livré est plus petit que la qte cmd, j'aimerai créer une backorder. Pour arriver à cela, j'ai essayé via recordset, mais mes compétences ne sont pas assez grande pour y arriver.

    J'ai pensé donc a une solution via une sql INSERT. J'ai écrit ceci :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Private Sub Mouvements_AfterUpdate()
     
     
       If Me.Mouvements < Me.Qte_Commandee Then
        chkBackOrder = -1
        chkArrivée = -1
        DateModification = Date
        MsgBox "Commande rentree est plus petit que la quantité commandée." & Chr(13) & _
        "Ceci genère un Back-order"
     
     
      Dim strSql As String
      Dim strN°Document As String
      Dim strN°IdProduit As String
      Dim strDésignation As String
      Dim strMouvements As String
      Dim strEmplacement As String
      Dim strDateModification As String
      Dim strprixAchatUHT As String
      Dim strIDMagasin As String
     
     
       strN°Document = DMax("[BackOrderID]", "BackOrder")
       strN°Document = strN°Document + 1
       strN°IdProduit = Me.N°IdProduit
       strDésignation = Me.Désignation
       strMouvements = Me.Mouvements
       strEmplaçement = Me.Emplaçement
       strDateModification = Me.DateModification
       strprixAchatUHT = Me.[prix d'Achat UHT]
       strIDMagasin = Me.N°IdMagasin
     
      MsgBox " variabelen : " & strN°Document & " " & strN°IdProduit
     
     
     
      strSql = "INSERT INTO Detailstock (" & strN°Document & "," & strN°IdProduit & "," & _
               strDésignation & "," & strMouvements & "," & strEmplacement & "," & strDateModification & "," & _
               strprixAchatUHT & strIDMagasin & ")"
      strSql = strSql + "SELECT DetailStock.N°Document, DetailStock.N°IdProduit, DetailStock.Emplaçement, DetailStock.[prix de vente UHT], DetailStock.[Qte Commandee], DetailStock.Mouvements, " & _
              "DetailStock.Tva, DetailStock.[Date modification], DetailStock.N°IDMagasin FROM DetailStock"
      strSql = strSql + "WHERE (((DetailStock.N°Document) = " & Me.N°Document & "));"
     
     
      MsgBox " show string sql : " & strSql
     
        Else
            Arrivée = -1
            DateModification = Date
     
      End If
     
     
    End Sub
    Les msgbox sont uniquement pour le controle des variables et ils me montre bien que 1 les variables sont rempli avec les bons données et 2 le sql me semble correctement construite.

    Par contre, il n'y a aucun enregistrement dans ma table DetailStock.

    Qu'est ce qu'il me manque encore pour y arriver??

    Merci pour vos conseils.

    Hans

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut
    Il peut y avoir des erreurs dans ton sql:

    sinon à la fin il manque la commande:

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Points : 155
    Points
    155
    Par défaut
    Merci pour l'indice, mais


    sans ton DoCmd.RunSQL strSql je n'ai aucun message d'erreur, mais il ne me met rien dans la table.
    avec cette ligne, il me donne une message d'erreur et il point vers cette ligne (erreur de syntaxe dans INSERT INTO )

    Quand je cree une requete INSERT, il me fait bien le travail?

    Quelqu'un vois l'erreur? Je n'arrive pas a mettre la main dessus.

    Hans

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut
    Citation Envoyé par Salsaboy60 Voir le message
    sans ton DoCmd.RunSQL strSql je n'ai aucun message d'erreur, mais il ne me met rien dans la table.
    avec cette ligne, il me donne une message d'erreur et il point vers cette ligne (erreur de syntaxe dans INSERT INTO )
    sans la commande ta requete ne s'execute tout simplement pas:
    avec la commande cela revele les erreurs qu'il y a dans ton sql:


    non, franchement le sql que tu souhaites rediger n'a rien de simple...


    Bonne continuation...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Points : 155
    Points
    155
    Par défaut
    Merci pour les piste. C'est vrai. Je n'avais pas pensé à tout ça. (manque d'expérience quand même).
    Demain je vais tester tout ça, pour voir si je peux le faire marcher aussi, mais en attendant j'ai trouver ma solution, via recordsource.Voici comment je copy Formulaire et sous-formulaire pour chaque ligne ou il y a une réliquat.

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Dim dbsTestRibbon As DAO.Database
        Dim rstBackOrderDetail As DAO.Recordset
        Dim rstBackOrder As DAO.Recordset
     
        Set dbsTestRibbon = CurrentDb
        Set rstBackOrderDetail = dbsTestRibbon.OpenRecordset("DetailStock")
        Set rstBackOrder = dbsTestRibbon.OpenRecordset("BackOrder")
     
     
        Dim strN°Commande As String
        Dim strN°Document As String
     
       strN°Commande = DMax("[BackOrderID]", "BackOrder")
       strN°Commande = strN°Commande + 1
     
       strN°Document = DMax("[BackOrderID]", "BackOrder")
       strN°Document = strN°Document + 1
     
     
        rstBackOrder.AddNew
        rstBackOrder!BackOrderID = strN°Commande
        'rstBackOrder!Numéro_Commande = Me.Parent.Numéro_Commande
        rstBackOrder!N°Prestataire = Me.Parent.N°Prestataire
        rstBackOrder![Date emission] = Me.Parent.Date_emission
        rstBackOrder!Emetteur = Me.Parent.Emetteur
        rstBackOrder!Commanditaire = Me.Parent.Commanditaire
        rstBackOrder.Update
     
            rstBackOrderDetail.AddNew
            rstBackOrderDetail!N°Document = strN°Document
            rstBackOrderDetail!N°IdProduit = Me.N°IdProduit
            rstBackOrderDetail!Emplaçement = Nz(Me.Emplaçement)
            rstBackOrderDetail![prix d'achat UHT] = 0
            rstBackOrderDetail![prix de vente UHT] = 0
            rstBackOrderDetail![Qte Commandee] = Nz(Me.Qte_Commandee)
            rstBackOrderDetail!QteConsRetour = 0
            rstBackOrderDetail!Mouvements = Nz(Me.Mouvements)
            rstBackOrderDetail![Qte door klant besteld] = "0"
            rstBackOrderDetail![QteConsignation] = 0
            rstBackOrderDetail!Sortie = 0
            rstBackOrderDetail!Perte = 0
            rstBackOrderDetail!Discount = 0
            rstBackOrderDetail!Tva = 0.21
            rstBackOrderDetail![Date modification] = Nz(Me.DateModification)
            rstBackOrderDetail!N°IdMagasin = Me.N°IdMagasin
            rstBackOrderDetail!Arrivée = 0
            rstBackOrderDetail!PersonneVenue = ""
            rstBackOrderDetail!Remarque = ""
            rstBackOrderDetail!BackOrder = -1
            rstBackOrderDetail.Update
     
       rstBackOrder.Close
       rstBackOrderDetail.Close
       CurrentDb.Close
    C'etait du chipotage avant que j'avais saisi comment le faire, ma enfin, pb résolu.

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

Discussions similaires

  1. [AC-2010] Dupliquer enregistrement sous formulaire avec VBA
    Par Fontaine_CLB dans le forum IHM
    Réponses: 23
    Dernier message: 22/12/2014, 12h54
  2. Pb enregistrement sous-formulaire
    Par gueff dans le forum Access
    Réponses: 3
    Dernier message: 08/07/2006, 11h23
  3. renversement des enregistrements sous formulaire
    Par sebos21 dans le forum Access
    Réponses: 2
    Dernier message: 25/05/2006, 10h48
  4. suppression enregistrement sous formulaire
    Par fscli dans le forum Access
    Réponses: 6
    Dernier message: 24/05/2006, 16h37
  5. Enregistrer sous-formulaire meme si pas rempli
    Par mat75019 dans le forum Access
    Réponses: 3
    Dernier message: 22/04/2006, 08h32

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