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

VBA Access Discussion :

Transfert de données via formulaire


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Par défaut Transfert de données via formulaire
    Bonjour,

    J'ai une BD dans laquelle j'ai plusieurs formulaires que je "copie" de l'un à l'autre afin d'éviter la ressaisie. Je me suis basé sur l'un de ces codes VBA pour créer un transfert de données depuis un formulaire de demande de prix vers un formulaire de commande.
    J'ai écris le code suivant
    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
    Private Sub Commande115_Click()
    On Error GoTo Err_Commande115_Click
     
    Dim NumCde As String
    Dim stDocName As String
     
        stDocName = "FORM-COMMANDE"
        DoCmd.OpenForm stDocName, acNormal, "", "", acAdd, acNormal
     
        Forms![FORM-COMMANDE]![IDClient] = IDClient
        Forms![FORM-COMMANDE]![IDSites] = IDSites
        Forms![FORM-COMMANDE]![IDFournisseurs] = IDFournisseurs
        Forms![FORM-COMMANDE]![IDCatégorie] = IDCatégorie
        Forms![FORM-COMMANDE]![Analytique] = Analytique
        Forms![FORM-COMMANDE]![IDDO] = IDDO
        Forms![FORM-COMMANDE].Refresh
     
        'Récupérer le numéro de fiche intervention en cours
        NumCde = Forms![FORM-COMMANDE]!IDCommande
     
        monsql = "INSERT INTO [RQ-DETAIL CDE] (IDCommande, dESIGNATION, Reference, [Quantite])" _
        & " SELECT [Formulaires]![FORM-COMMANDE]![IDCommande] AS CdeNum, [T-DetailDemandePrix].Designation," _
                & " [T-DetailDemandePrix].Reference, [T-DetailDemandePrix].Quantite" _
                & " From [T-DetailDemandePrix]" _
                & " WHERE [T-DetailDemandePrix].IDFournisseur=" & NumFournisseur _
                & " AND [T-DetailDemandePrix].IDDemandePrix='" & Me.IDDemandePrix _
                & "' AND [T-DetailDemandePrix].[Selectdp]=-1 AND [T-DetailDemandePrix].Commandédp=0;"
     
        DoCmd.RunSQL monsql
        'mettre a jour le champ "Commandé" de la table détails devis pour éviter un doublon de commande
        monsql = "UPDATE [T-DetailDemandePrix] SET [T-DetailDemandePrix].Commande = -1" _
                & " WHERE [T-DetailDemandePrix].IDFournisseur=" & NumFournisseur _
                & " AND [T-DetailDemandePrix].IDDemandePrix='" & Me.IDDemandePrix _
                & "' AND [T-DetailDemandePrix].[Selectdp]=-1 AND [T-DetailDemandePrix].Commandédp=0;"
     
        DoCmd.RunSQL monsql
     
    Exit_Commande115_Click:
        Exit Sub
     
    Err_Commande115_Click:
        MsgBox Err.Description
        Resume Exit_Commande115_Click
     
    End Sub
    Ce code doit me permettre de "copier" les infos du formulaire de demande de prix vers celui de la commande. Pour cela je coche la/les ligne(s) que je veux commander depuis la demande de prix et elles s'incrémentent dans la table détail commande via la requête. Ensuite dans le sous-formulaire demande prix la case "commandé" est cochée pour éviter les doublons de commande.

    Toute la partie concernant le nom du client, fournisseur, analytique... s'incrémente sans problème.

    Le soucis vient du sous-formulaire demande prix vers le sous-formulaire commande, j'ai le message suivant
    Pièce jointe 192557

    Pourriez-vous m'aider car je ne sais pas ce qui cloche malgré plusieurs essais de correction infructueux ?

    D'avance merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 415
    Par défaut
    Bonjour.

    Il n'y a pas de valeur après IDFournisseur=.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Par défaut
    Bonjour,

    J'ai mis "& " WHERE [T-DetailDemandePrix].IDFournisseurs=" & Me.IDFournisseurs _"

    et maintenant j'ai le message
    Pièce jointe 192617

    et "type de données incompatibles avec l'expression du critère"

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 415
    Par défaut
    Bonjour.

    Il y a sans doute une erreur de syntaxe dans le SQL. Peux-tu poster la chaîne complète ?

    Aussi je t'invite fortement à ne pas utiliser les - dans tes noms de champs car parfois Access le comprend comme le signe de soustraction.
    Pour être tranquille il est recommander de n'utiliser pour les noms que les lettres non accentuées et non "décorées" (pas de ç) majuscules ou minucules, les chiffres et le souligné (_).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Par défaut
    Bonjour,

    Voici le 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Private Sub Commande115_Click()
    On Error GoTo Err_Commande115_Click
     
    Dim NumCde As String
    Dim stDocName As String
     
        stDocName = "FORM-COMMANDE"
        DoCmd.OpenForm stDocName, acNormal, "", "", acAdd, acNormal
     
        Forms![FORM-COMMANDE]![IDClient] = IDClient
        Forms![FORM-COMMANDE]![IDSites] = IDSites
        Forms![FORM-COMMANDE]![IDFournisseurs] = IDFournisseurs
        Forms![FORM-COMMANDE]![IDCatégorie] = IDCatégorie
        Forms![FORM-COMMANDE]![Analytique] = Analytique
        Forms![FORM-COMMANDE]![IDDO] = IDDO
        Forms![FORM-COMMANDE].Refresh
     
        NumFournisseur = DLookup("[IDFournisseurs]", "[T-DetailDemandePrix]", "[IDDemandePrix]='" & Me.IDDemandePrix _
                & "' AND [Selectdp]=-1 AND [Commandédp]=0")
        Forms![FORM-COMMANDE]![IDFournisseurs] = NumFournisseur
    Debug.Print NumFournisseur
        Forms![FORM-COMMANDE].Refresh
     
        'Récupérer le numéro de commande en cours
        NumCde = Forms![FORM-COMMANDE]!IDCommande
     
        monsql = "INSERT INTO [RQ-DETAIL CDE] (IDCommande, dESIGNATION, Reference, [Quantite])" _
        & " SELECT [Formulaires]![FORM-COMMANDE]![IDCommande] AS CdeNum, [T-DetailDemandePrix].Designation," _
                & " [T-DetailDemandePrix].Reference, [T-DetailDemandePrix].Quantite" _
                & " From [T-DetailDemandePrix]" _
                & " WHERE [T-DetailDemandePrix].IDFournisseurs=" & NumFournisseur _
                & "' AND [T-DetailDemandePrix].[Selectdp]=-1 AND [T-DetailDemandePrix].Commandédp=0;"
     
        DoCmd.RunSQL monsql
        'mettre a jour le champ "Commandé" de la table détails devis pour éviter un doublon de commande
        monsql = "UPDATE [T-DetailDemandePrix] SET [T-DetailDemandePrix].Commande = -1" _
                & " WHERE [T-DetailDemandePrix].IDFournisseurs=" & NumFournisseur _
                & "' AND [T-DetailDemandePrix].[Selectdp]=-1 AND [T-DetailDemandePrix].Commandédp=0;"
     
        DoCmd.RunSQL monsql
     
    Exit_Commande115_Click:
        Exit Sub
     
    Err_Commande115_Click:
        MsgBox Err.Description
        Resume Exit_Commande115_Click
     
    End Sub

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 415
    Par défaut
    C'est le update ou le insert qui plante ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. prog de transfert de donné via bluetooth
    Par lekakes dans le forum Windows
    Réponses: 0
    Dernier message: 28/02/2008, 19h27
  2. [VBA] Transfert de données à un formulaire modal
    Par CinePhil dans le forum Access
    Réponses: 2
    Dernier message: 23/01/2008, 17h59
  3. [VB.NET]transfert de données via modem
    Par stevsoft dans le forum Windows Forms
    Réponses: 5
    Dernier message: 26/07/2006, 18h04
  4. [VBA-A] transfert de données entre formulaire
    Par snaxisnake dans le forum VBA Access
    Réponses: 10
    Dernier message: 20/04/2006, 17h48
  5. [MySQL] Envoi d'information dans une base de donnée via formulaire
    Par Mysti¢ dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 30/03/2006, 21h35

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