SQL dans Macro VBA ?

  • Initiateur de la discussion Initiateur de la discussion Livetowin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Livetowin

XLDnaute Nouveau
Bonjour,

Je dois créer une base de donnée afin de gérer les stocks (environ 1000 pièces) d'une entreprise.

Pour cela, j'ai choisi une base SQL coté serveur, et j'aimerais pouvoir agir sur cette base par le biai d'Excel. J'ai jusqu'a maintenant réussi à importer mes données SQL sur Excel, mais modifier la base SQL à partir d'Excel me semble plus difficile.
Par exemple, dans le cas ou je souhaite mettre un bouton qui pourrait ajouter un nouvel enregistrement à la base de donnée, utiliser le SQL dans une macro est-il possible ?

Je vous donne un aperçu de l'interface Excel :
 
Bonjour, me revoila pour un nouveau problème 😀

Alors, j'ai finalement réussi à connecter ma base serveur SQL à mon fichier client Excel, qui permettra d'agir sur cette base.

Cependant, je dois maintenant créer une ComboBox prenant en compte une table.
Voici le code que j'ai utilisé, ma BDD, le userform et la combobox en question, et l'erreur qui s'en suit :

Mon userForm :
Capture.PNG
Ma base de donnée sous PhpMyadmin :
BD.PNG


Mon code sous VBA :
Capture2.PNG


Le message d'erreur :
error.PNG


Savez-vous d'ou peut-elle provenir ? Merci d'avance, Quentin
 
Salut Pierre, merci pour ta réponse,
Je trouve pas ça particulièrement en fouilli donc oui ça doit être mon habitude ^^

Comment réaliser cette opération ?

En effet, ma connection à déja été ouverte auparavant, permettant d'insérer des données :

Capture3.PNG
 
Dernière édition:
Bon, j'ai réussi à ré-organiser mon code comme tu me l'as conseillé, et de ce fait j'ai pu bien avancer sur mon projet.

En revanche, j'ai encore quelques soucis, je t'explique :
J'ai réussi à gérer la suppression d'une ligne de ma table, mais en renseignant 'numériquement' la clé primaire qu'il faut supprimer. J'aimerais mettre une cellule en tant que paramètre de la requête (afin que l'utilisateur renseigne la clé primaire à l'aide d'une combo box, puis valide).

upload_2017-5-29_14-50-41.png


Voici la requête qui marche, en renseignant l'id à supprimer :
upload_2017-5-29_14-50-4.png

upload_2017-5-29_14-51-16.png


Voici la requête qui ne marche pas :

upload_2017-5-29_14-55-55.png


upload_2017-5-29_14-56-25.png

upload_2017-5-29_14-58-10.png


On remarque pourtant que le champ correspondant à bien été renseigné, ici 'DV46673', mais il me dit qu'il est inconnu quand même, et j'ai bien vérifié dans la base la ligne contenant cet ID est belle et bien existante.

Pouvez vous me dire pourquoi ?
 

Pièces jointes

  • upload_2017-5-29_14-55-36.png
    upload_2017-5-29_14-55-36.png
    5.6 KB · Affichages: 50
Dernière édition:
1) En effet c'était bien un champ texte, et les guillemets simples ont résolus mon problème.
2) En effet je peux récuperer la valeur du combobox, mais je tiens quand même à mettre le dernier ID supprimé dans une cellule, au cas ou l'utilisateur souhaiterait se souvenir du dernier élément supprimé.
3) Entendu pour les erreurs
4) Entendu, la prochaine fois je le mets au format texte, et désolé 😀

Et merci encore pour tes réponses rapides et tes indications détaillés!
 
Bonjour, me revoilà avec mon logiciel cette fois ci pleinement fonctionnel!

Je me suis pas encore trop porté sur la question, mais la prochaine étape est l'installation d'un pc uniquement dédié à l'utilisation du logiciel que j'ai développé.

Pour rappel, ce logiciel consiste à gérer une base SQL sous MySQL 5.7.14, à l'aide d'Excel (en faite ce que j'appelle "le logiciel" est excel.. ^^). Tu comprendras mieux avec cette capture :
upload_2017-5-31_18-15-21.png


Je vais alors devoir paramétrer une page web?/un fichier excel? , pour que les utilisateurs puissent consulter la base (je dis bien consultation, en aucun cas un utilisateur lambda pourra agir sur cette base).

L'entreprise à un "répertoire commun" ou j'ai comme idée d'y déposer un fichier excel dédié à la consultation. Le problème est que j'utilise un serveur dit "local" que représente mon pc de développement actuellement.

Est ce que je pourrais utiliser le pc prochainement dédié à la gestion des stocks, en tant que serveur ?
Quel sera alors les paramètres pour récupérer l’accès aux données SQL ?

PS : j'ai utilisé WAMP serveur (donc mysql, phpmyadmin..) afin de développer cette base.

J'espère avoir été assez clair, et je suis conscient de sortir un peu du sujet mais étant donné que tu m'as bien aidé jusqu'à présent, je me suis dit que tu pouvais m'aider une fois de plus 😀

Merci d'avance, Quentin
 
Bonjour,

Bon, l'entreprise ne souhaite vraiment pas me laisser accéder à son serveur, et le service informatique m'a demandé d'utiliser le pc hote, qui ne sera alors jamais éteint, en tant que serveur.

J'execute alors cette manœuvre, et parvient à accéder à wamp serveur depuis un pc connecté au reseau, en tappant l'ip locale du pc serveur sur une page web.

Le problème est que mon logiciel sous Excel ne parvient pas à accéder à cette base, sachant que j'avais utilisé ton tuto pour me connecter (http://tatiak.canalblog.com/archives/2014/04/06/29605283.html), en utilisant "localhost" comme serveur.

Voici ma fonction Sub qui fonctionne en localhost sur le pc serveur :

Code:
Sub ConnectDB()
    Set oConn = New ADODB.Connection
    oConn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _
               "SERVER=localhost;" & _
               "DATABASE=stocks_dv;" & _
               "USER=root;" & _
               "PASSWORD=***********;" & _
               "Option=3"
End Sub


Et voici la fonction avec l'adresse IP du serveur, qui me donne l'erreur suivante :

Code:
Sub ConnectDB()
    Set oConn = New ADODB.Connection
    oConn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _
               "SERVER=192.168.15.126;" & _
               "DATABASE=stocks_dv;" & _
               "USER=root;" & _
               "PASSWORD=***********;" & _
               "Option=3"
End Sub

upload_2017-6-13_9-18-39.png


Sais tu pourquoi?

Quentin,
 
Autant pour moi, je suis novice en matière de réseau, et j'ai jamais fait de php (pour l'année prochaine durant mon master 2 Génie Industriel) donc le script de connexion s'annonce compliqué 😀

Je sais pas trop quoi faire ahah, j'ai beaucoup de volonté mais la je bloque, et ils attendent leur application pour vendredi 23 juin.

Je vais essayer de partager le fichier Excel sur le réseau, mais je doute pouvoir utiliser la base MySQL dans ce cas..

Quentin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour