SQL dans Macro VBA ?

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 :
 

Livetowin

XLDnaute Nouveau
Bonjour, me revoila pour un nouveau problème :D

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
 

Livetowin

XLDnaute Nouveau
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:

Livetowin

XLDnaute Nouveau
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: 44
Dernière édition:

Livetowin

XLDnaute Nouveau
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é :D

Et merci encore pour tes réponses rapides et tes indications détaillés!
 

Livetowin

XLDnaute Nouveau
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 :D

Merci d'avance, Quentin
 

Livetowin

XLDnaute Nouveau
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,
 

Livetowin

XLDnaute Nouveau
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é :D

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
 

Discussions similaires