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 :

Insertion de données via un programme vba qui fait à une requete


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 108
    Points : 38
    Points
    38
    Par défaut Insertion de données via un programme vba qui fait à une requete
    Bonjour,

    Je voudrais insérer un programme vba derriere mon bouton de mon formulaire mais je ne sais pas le faire. AIDEZ-moi Svp,MERCI.

    Ce programme consiste à utiliser une requete sql.
    Ma requete sera du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO <NomTableDestination> SELECT <Champ1>, <Champ2>….FROM <NomTableSource> WHERE <condition>
    Comment utiliser une requete comme celle-ci avec un programme en vba dès lors de mon click il m'affecte mes données dans cette table.

    Par ailleurs c'est bien une fonction dont j'ai besoin je pense.

    Merci de m'ecrire la fonction svp je débute j'y connais rien ...j'apprends avec vous à dire vrai. Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Le principe:
    Sur l'évènement On click de ton bouton:
    [CODE]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Ton_Bouton_Click() 
    Dim req As String 
    req = "INSERT INTO <NomTableDestination> SELECT <Champ1>, <Champ2>….FROM <NomTableSource> WHERE <condition>;" 
    DoCmd.RunSQL req

  3. #3
    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,

    Une des approches courantes pour générer dynamiquement et exécuter du SQL en VBA consiste à utiliser la méthode Execute d'un objet Database.
    http://warin.developpez.com/access/d...tie_3#L3.3.3.6


    Classiquement, tu commences par créer ton instruction SQL dans une variable de type String, puis tu l'exécutes...

    QQ chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim oDB as database
    Dim sSQL as string
    sSQL = "INSERT INTO <NomTableDestination> " & _
              " SELECT <Champ1>, <Champ2>…." & _
              " FROM <NomTableSource> " & _
              " WHERE <condition>;" 
    set odb = currentdb
    oDB.execute sSQL, dbFailOnError
    PS: Un des avantages de cette solution est de pouvoir lever une erreur d'exécution si un problème survient dans l'exécution de la commande SQL (gâce à l'option dbFailOnError).

Discussions similaires

  1. VBA- comment extraire des données sur internet via un programme vba ?
    Par cecile_64 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 17/08/2012, 15h37
  2. Faire un bouton qui fait une requete HTTP ?
    Par fraginfo dans le forum VB.NET
    Réponses: 0
    Dernier message: 03/02/2010, 18h51
  3. Réponses: 2
    Dernier message: 09/10/2008, 09h07
  4. [MySQL] Insertion de données via un tableau
    Par Telecaster dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/07/2008, 23h50
  5. [Oracle] Insertion de données via un tableau
    Par Arkadius dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/09/2007, 16h35

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