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

Macros et VBA Excel Discussion :

Requete INSERT INTO / UPDATE en VBA [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    consultant BTP
    Inscrit en
    Février 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant BTP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 51
    Par défaut Requete INSERT INTO / UPDATE en VBA
    Bonjour,

    J'ai créé une connection ODBC et j'ai reussi a créée une macro contenant une requete d'exportation.

    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
        With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
            "ODBC;DSN=dataP;DBQ=K:\********\Base de données.xlsx;DefaultDir=K:\*******" _
            ), Array( _
            "RAA\Fichiers;DriverId=1046;FIL=excel 12.0;MaxBufferSize=2048;PageTimeout=5;")) _
            , Destination:=Range("$A$1")).QueryTable
            .CommandText = Array("SELECT DISTINCT `_xlnm#_FilterDatabase`.Désignation,`_xlnm#_FilterDatabase`.Nom,  `_xlnm#_FilterDatabase`.ville" & Chr(13) & "" & Chr(10) & "FROM `_xlnm#_FilterDatabase` `_xlnm#_FilterDatabase`" & Chr(13) & "" & Chr(10) & "WHERE (`_xlnm#_FilterDatabase`.No", "m='JEAN')" & Chr(13) & "" & Chr(10) & "ORDER BY `_xlnm#_FilterDatabase`.Désignation")
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .ListObject.DisplayName = "Tableau_Lancer_la_requête_à_partir_de_dataP6"
            .Refresh BackgroundQuery:=False
        End With

    Est il possible de créer des requete de type INSERT ou UPdate toujours via des macro excel merci.

    Cordialement

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, à consulter même s'il s'agit d'ADODB : Lire et écrire dans les classeurs Excel fermés
    sinon pour le Recordset ADO

  3. #3
    Membre averti
    Homme Profil pro
    consultant BTP
    Inscrit en
    Février 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant BTP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 51
    Par défaut
    Rebonjour,
    Donc dans un premier tempsje dois convertir ma base de données excel fichier *.xlsx en fichier *.mdb.
    Apres je dois refondre les différentes requete select, update, insert ...

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Re, non pas forcément, voir dans le 1er lien , tous les exemples sont à adapter pour 2007.

  5. #5
    Membre averti
    Homme Profil pro
    consultant BTP
    Inscrit en
    Février 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant BTP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 51
    Par défaut
    Un grand merci le premier ne s'ouvrai pas correctement le nouveau fonctionne tres bien, j'ai beaucoup de lecture pour appliquer cela mais au final c a peu pres ce que je souhaiter, la fonction recherchev sous excel ou les boucle en VBA c'est tres bien mais cela a ses limites sur une base de donnée a plusieurs colones et beaucoup de lignes.
    Un grand MERCI.

    Je vais peut etre abuser un peu mais est il possible de charger un combobox en macro excel via un select distinct (je sais le faire en VBnet mais pas en VBA classique).Merci encore pour le lien.

  6. #6
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, pour le lien c'est corrigé, à priori je dirais oui pour la ComboBox, voir ici, l'ayant fait jadis en VB6.

  7. #7
    Membre averti
    Homme Profil pro
    consultant BTP
    Inscrit en
    Février 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant BTP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 51
    Par défaut
    Bon j'ai commencé par le début et en fait la ligne
    bloque et me met : type défini par l'utilisateur non défini.

    Il me manque un driver ou une option complémentaire ???

    Bon j'ai résolu la chose, mais j'ai eu une autre erreur qui m'a forcé à changer le format de ma base de données et passer du format *.xlsx au format *.xls.
    C'est pas que cela me dérange obligatoirement mais le résultat, c'est que ma base a triplé de volume avec la conversion ...

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

Discussions similaires

  1. [AC-2007] Problème syntaxe requete INSERT INTO VBA
    Par afrogwada dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/07/2013, 09h44
  2. [AC-2007] Problème de requete INSERT INTO en VBA
    Par Azomix dans le forum VBA Access
    Réponses: 4
    Dernier message: 02/02/2012, 16h57
  3. Requete INSERT INTO
    Par cheers94wow dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/05/2006, 11h13
  4. petite aide sur une requete INSERT INTO
    Par bonneti dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2005, 15h17
  5. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32

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