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 :

Insert avec If dans VBA


Sujet :

VBA Access

  1. #1
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 268
    Points : 91
    Points
    91
    Par défaut Insert avec If dans VBA
    Oups j'avais pas mis de balise sorry

    dc:
    je disais

    Comment puis-je faire pour faire un
    INSERT dans une table access si j'ai des conditions
    je m'explique

    j'ai une table Contrat qui possede plusieurs champs
    pour faire un update
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    cs_Requete = "update CONTRAT set BL_CONFIRME_=" & cs_confirme
     
    If cs_DateSignatureResil <> "" Then
    cs_Requete = cs_Requete + ", DT_SIGNATURE=#" & Format(cs_DateSignature, "mm/dd/yyyy") & "#"
    End If
    If cs_ConfirmSignee2Parties <> "" Then
    cs_Requete = cs_Requete + ", CONFIRM_SIGNEE_2_PARTIES='" & cs_ConfirmSignee2Parties & "'"
    End If
    cs_Requete = cs_Requete + " where NUM_CONTRAT='" & G_cs_NumContrat & "'"
    Avec un Update un petit coup de plus et ca fonctionne mais comment faire avec un INSERT ???

    Vba ( access)

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    Je ne vois pas bien où est ton problème...

    La méthode que tu as utilisées consiste à créer par code une instruction SQL, que tu executes ensuite par un DB.execute ou un Docmd.runSQL.

    Qu'il s'agisse d'un UPDATE ou d'un INSERT, tu procèdes selon la même logique.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 268
    Points : 91
    Points
    91
    Par défaut
    Pas vraiment
    puisqu'on fait
    INSERT INTO ( Champs 1, Champs2, Champs 3) values....

    mais conditions comment puis-je les mettre la dedans

  4. #4
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Le plus simple est sans doute de décomposer ton instruction en sous parties

    Dans le genre (ce n'est qu'un exemple non testé ...)

    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
    Dim sFields As String
    Dim sValues As String
     
    If cs_DateSignatureResil <> "" Then
     
        sValues = sValues + ", #" & Format(cs_DateSignature, "mm/dd/yyyy") & "#"
        sFields = sFields + ", DT_SIGNATURE"
     
    End If
     
    ...
     
     
     
    'supprimer la première ,
    sValues = Mid(sValues, 2)
    sFields = Mid(sFields, 2)
     
    cs_requete = "INSERT INTO (" & sFields & ") VALUES " & sValues

  5. #5
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 268
    Points : 91
    Points
    91
    Par défaut

    jviens d'essayer mais non ca ne marche pas :s

    Je ne comprend pas le mid Ici vu qu'on a mis des if

    ^^

  6. #6
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par titeZ

    jviens d'essayer mais non ca ne marche pas :s
    Tu vas un peu vite là! je ne t'ai donné qu'une voie pas un code tout fait!


    Citation Envoyé par titeZ
    Je ne comprend pas le mid Ici vu qu'on a mis des if
    Si tu as plusieurs if à suivre, tu ne peux pas savoir à l'avance lequel constituera le 1er élément de la liste.
    L'idée est donc de mettre une virgule dans tout tes if, puis , une fois tous les if traités, de supprimer la première virgule en trop.
    Fais plusieurs essais avec des cas de if différents en exécutant en pas à pas ...
    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
    If cs_DateSignatureResil <> "" Then
     
        sValues = sValues + ", #" & Format(cs_DateSignature, "mm/dd/yyyy") & "#"
        sFields = sFields + ", DT_SIGNATURE"
     
    End If
     
    If ....  Then
     
        sValues = sValues &  ", ...."
        sFields = sFields & ", ...."
     
    End If
    ...
     
     
    'supprimer la première ,
    sValues = Mid(sValues, 2)
    sFields = Mid(sFields, 2)

    Bon courage

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

Discussions similaires

  1. [Toutes versions] Insertion formule avec variable dans VBA
    Par Suomiland dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/06/2015, 07h30
  2. Problemes avec ADO dans VBA
    Par MuadDib_II dans le forum VBA Access
    Réponses: 9
    Dernier message: 26/06/2008, 16h33
  3. Pb d'insert avec Access dans un Formview
    Par patbeautifulday1 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/11/2007, 11h20
  4. requete avec variable dans VBA
    Par Mathieu.Nanoux dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 07/09/2007, 13h41
  5. Insert avec exception dans un select
    Par jaskoula dans le forum Oracle
    Réponses: 3
    Dernier message: 11/12/2006, 18h46

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