Lancer procédure SQL via VB Excel
Résolu/Fermé
Ludivine50
Messages postés
114
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
1 février 2016
-
9 mars 2009 à 09:58
Tonny Clinton - 24 mars 2009 à 19:03
Tonny Clinton - 24 mars 2009 à 19:03
A voir également:
- Lancer procédure SQL via VB Excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
- Comment calculer la moyenne sur excel - Guide
5 réponses
Utilisateur anonyme
11 mars 2009 à 05:20
11 mars 2009 à 05:20
Bonjour Ludivine,
Il m'a fallut beaucoup de temps pour comprendre ta question
et "la modélisé" dans un fait vécu, et oui j'ai fait quelque chose
comme ce que tu énonce et si je ne m'abuse c'était exactement
cela mais pas sur la BD de SQL Serveur mais sur IMAX, un système
propriétaire.
Ceci dit, sous excel tu peux lancer des requêtes directement sur ta BDs
qui utiliseras les procédures stockèes de ta BD.
Je l'ai réalisé sous Excel 95, alors comme tu vois ça ne date pas d'hier!
Toutefois, avec l'assistant de création, ça devrait se faire.
Je vais faire quelque tests, et tu peux essayer aussi, lance dans
le menu Excel :
// Menu / Données / Données externes / Créer une requête...
À partir de la, tu peux si je me souviens bien on peut lire/écrire
dans toute sorte de BDs connus.
Ceci dit, peut-être que d'autres verront autres choses :-)
Lupin
Il m'a fallut beaucoup de temps pour comprendre ta question
et "la modélisé" dans un fait vécu, et oui j'ai fait quelque chose
comme ce que tu énonce et si je ne m'abuse c'était exactement
cela mais pas sur la BD de SQL Serveur mais sur IMAX, un système
propriétaire.
Ceci dit, sous excel tu peux lancer des requêtes directement sur ta BDs
qui utiliseras les procédures stockèes de ta BD.
Je l'ai réalisé sous Excel 95, alors comme tu vois ça ne date pas d'hier!
Toutefois, avec l'assistant de création, ça devrait se faire.
Je vais faire quelque tests, et tu peux essayer aussi, lance dans
le menu Excel :
// Menu / Données / Données externes / Créer une requête...
À partir de la, tu peux si je me souviens bien on peut lire/écrire
dans toute sorte de BDs connus.
Ceci dit, peut-être que d'autres verront autres choses :-)
Lupin
Ludivine50
Messages postés
114
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
1 février 2016
7
10 mars 2009 à 15:10
10 mars 2009 à 15:10
Quelqu'un a-t-il une idée? J'ai écumé les forums mais les rares réponses sont en chinois. Une solution simple, et compréhensible serait la bienvenue! ;-)) Souvent, ils écrivent la procédure sql directement dans le vb. La mienne est relativement longue, donc je souhaiterais la lancer en écrivant le titre de la procédure. Peut-être n'ais-je pas trouvé les bons posts?
SOS d'une développeuse en herbe en détresse!
SOS d'une développeuse en herbe en détresse!
mikebzh
Messages postés
127
Date d'inscription
samedi 20 décembre 2008
Statut
Membre
Dernière intervention
11 mars 2009
28
11 mars 2009 à 10:30
11 mars 2009 à 10:30
Coucou,
Si ton import peut s'effectuer en dehors de ton appli excel via une petite routine externe exécutable, tu dois pouvoir te servir de la fonction shell() en vb
Syntaxe
Shell(pathname[,windowstyle])
Exemple :
' Si vous attribuez la valeur 1 au deuxième argument,
' l'application s'ouvre à sa taille normale
' et devient l'application active.
Dim RetVal
' Exécute la calculatrice.
RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)
Cette fonction marche avec les .exe, les .bat
Option 0 pour masquer la fenêtre
A plus.
Si ton import peut s'effectuer en dehors de ton appli excel via une petite routine externe exécutable, tu dois pouvoir te servir de la fonction shell() en vb
Syntaxe
Shell(pathname[,windowstyle])
Exemple :
' Si vous attribuez la valeur 1 au deuxième argument,
' l'application s'ouvre à sa taille normale
' et devient l'application active.
Dim RetVal
' Exécute la calculatrice.
RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)
Cette fonction marche avec les .exe, les .bat
Option 0 pour masquer la fenêtre
A plus.
Ludivine50
Messages postés
114
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
1 février 2016
7
12 mars 2009 à 12:56
12 mars 2009 à 12:56
Bonjour mikebzh et merci pour ta réponse,
Pour ta solution, je dois transformer un fichier .sql en exécutable. J'ai cherché mais apparemment ce n'est pas possible à réaliser. Peut-être peux-tu me donner un indice?
Pour ta solution, je dois transformer un fichier .sql en exécutable. J'ai cherché mais apparemment ce n'est pas possible à réaliser. Peut-être peux-tu me donner un indice?
Salut Monsieur
Je voulais savoir comment je peux débuter pour créer par exemple un Logiciel (Programme)
Donc je demande si possible de me donner la procedure.
Merci.
Je voulais savoir comment je peux débuter pour créer par exemple un Logiciel (Programme)
Donc je demande si possible de me donner la procedure.
Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ludivine50
Messages postés
114
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
1 février 2016
7
24 mars 2009 à 17:50
24 mars 2009 à 17:50
Bonjour à tous,
voici la solution à mon problème:
En effet, mon problème finalement était le suivant: je ne savais pas où mettre ma procédure stockée.
Il fallait simplement faire un CREATE procedure PS_TEST AS... dans sql server.
Et dans VB faire la connexion à la bd sql server et cN.Execute ("exec dbo.PS_TEST").
Bon courage à tous
voici la solution à mon problème:
En effet, mon problème finalement était le suivant: je ne savais pas où mettre ma procédure stockée.
Il fallait simplement faire un CREATE procedure PS_TEST AS... dans sql server.
Et dans VB faire la connexion à la bd sql server et cN.Execute ("exec dbo.PS_TEST").
Bon courage à tous
11 mars 2009 à 09:15
J'ai du mal m'expliquer. Je ne veux pas importer dans excel dans données de bases de données externes.
Je vais essayer d'être plus claire:
Le fichier Excel sert d'outil de collecte de données. Un agent reçoit ce fichier, le contrôle visuellement, puis clique sur un bouton pour valider. Cela lance une macro vb, qui crée un nouvel onglet et range les données en "mode base de données" pour être ensuite importées par sql server. Si je ne fais pas ce retraitement, il m'est impossible de récupérer les données par une procédure sql dans le fichier à l'état brut.
Le stockage des données s'effectue sous SQL SERVER; j'ai une procédure stockée actuellement dans un fichier .sql qui fait les traitements suivants, pour simplifier: faire un lien ODBC vers le fichier Excel à importer, importer les données dans sql server.
Mais cet import doit être réalisé régulièrement; il est donc nécessaire d'automatiser l'exécution de cette procédure stockée. Dans un premier temps, j'ai donc réalisé un "travail" sous sql server: j'ai créé une tâche planifiée qui exécute quotidiennement ma procédure stockée à 22h. Notez que pour réaliser une tâche planifiée, je suis obligée de recopier dedans mon script .sql.
Mais l'import quotidien des données n'est suffisant. Je voudrais que lorsque l'agent clique sur le bouton "valider", cela lance la procédure de transformation du fichier pour une préparation à l'import par sql server (comme maintenant), puis que cela lance la procédure que j'ai créée dans mon fichier .sql (ce que je n'arrive pas à réaliser).
J'espère avoir été plus claire. Je déteste quand les gens font des romans pour expliquer leur problème! J'espère que vous non! ;-)
Merci