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 :

Ecriture en base de données sql [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 8
    Par défaut Ecriture en base de données sql
    Bonjour, j'ai beau chercher je ne trouve pas comment ecrire en base de données vba grâce à une maccro, j'arrive à importer ma base dans une feuille excel, mais impossible d'ecrire directement dans la base.
    Si quelqu'un à une solution je suis preneur, merci d'avance !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    j'arrive à importer ma base dans une feuille excel
    donc j'en conclue que tu te connectes à la base de données! quel type au fait Sql Serveur?
    mais impossible d'ecrire directement dans la base
    montre nous ta requête et ta méthode d’exécution de celle ci!

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 8
    Par défaut
    Oui je me connecte à celle ci, et c'est une base sql server 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
     
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
            "OLEDB;Provider=SQLOLEDB.1;Persist Security Info=True;User ID=**;Data Source=****;Use Procedure for Prepare=1;Auto Translate=True;Pack" _
            , _
            "et Size=4096;Workstation ID=3745B;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=******), Destination:=Range("$A$2")).QueryTable
            .CommandType = xlCmdTable
            .CommandText = Array(******)
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .SourceConnectionFile = _
            "*****"
            .ListObject.DisplayName = "*****"
            .Refresh BackgroundQuery:=False
        End With
    Les "**" représentent la base, la table, les id de connexion etc..., je préfére les cacher pour un soucis de confidentialité !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Personnellement je n'utilise pas les objets connexion d'Excel!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    With CreateObject("Adodb.connection")
       .Open "Provider=SQLOLEDB.1;Password=" & PassWord & ";Persist Security Info=True;User ID=" & User & ";Initial Catalog=" & Base & ";Data Source=" & Server
       .Execute "Insert into ([table] [Champ1],[Champ2]) values ('toto','titi')"
       .Close
    End With
    End Sub

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 8
    Par défaut
    Premièrement merci de vos réponses.
    J'ai adapté votre code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ecriture()
        With CreateObject("Adodb.connection")
        .Open "Provider=SQLOLEDB.1;Password=" & "**" & ";Persist Security Info=True;User ID=" & "**" & ";Initial Catalog=" & "***" & ";Data Source=" & "***"
        .Execute "Insert into TRADUCTION (LOCA) values ('12345')"
        .Close
        End With
    End Sub
    En effet, je cherche à écrire dans le champ "LOCA" de la table TRADUCTION cependant à l'execution de la maccro j'ai un message d'erreur me disant qu'il est impossible d'écrire la valeur NULL dans le champ "CLE" (qui est un autre champ de la table TRADUCTION) et ceci est normal car le champ est parametré pour prendre un autre type de valeur, mais la n'est pas la question.
    Je ne comprend pas pourquoi la requete veut ecrire dans d'autres champs...

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 8
    Par défaut
    Problème résolu !
    Erreur de ma part, il fallait que je fasse un update et pas un insert.....
    J'ai donc modifié la ligne qui, à la base, effectuait un insert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Execute "Update TRADUCTION Set CLE_VALE = '123213' Where CLE = '@LANGBDD_ARTICLE_DESI_ARTI_HOLA' AND LOCA = 'en'"
    Merci encore pour votre aide en espérant que ça aide quelqu'un plus tard !

  7. #7
    Invité
    Invité(e)
    Par défaut
    non la requête ne veut pas écrire dans un autre champ mas vue que Cle es défini comme null interdit tu est obligé de saisir une valeur!

    Edit: Cool!

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 8
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    non la requête ne veut pas écrire dans un autre champ mas vue que Cle es défini comme null interdit tu est obligé de saisir une valeur!
    Exact mais je voulais faire un update en fait, remplacer des champs existatnts...
    Merci de tes réponses quand même elles m'ont bien aidé !

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

Discussions similaires

  1. [C#] Lister les Bases de données (SQL SERVER) d'un poste
    Par justice007 dans le forum Accès aux données
    Réponses: 9
    Dernier message: 21/06/2010, 16h10
  2. C++ et base de donnée SQL
    Par wawet dans le forum MFC
    Réponses: 2
    Dernier message: 07/04/2005, 17h11
  3. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33
  4. probleme base de donnée SQL server
    Par waguila666 dans le forum ASP
    Réponses: 9
    Dernier message: 01/12/2004, 11h54
  5. Réponses: 3
    Dernier message: 29/03/2004, 18h02

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