Exctraction/connection base de données

Résolu/Fermé
GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018 - Modifié par GermPeru le 24/02/2017 à 15:12
GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018 - 7 mars 2017 à 13:30
Bonjour a tous,

J´ai créé une macro Excel qui travaille a partir d' une base de données, pour integrer cette derniere a ma maccro je procede mmanuellement depuis un SAP. Cad que j´extraie les données en Excel et je copie colle mes données dans mon Excel.

Je souhaiterai automatiser cette connection/exctraction de données. Mes soucis sont que je ne connais pas mon provider, non plus ou chercher mes datas sources... Je n´ai aucune idées par ou commencer... Je tiens a préciser que je suis novice, alors si je me suis trompé de forum ou plus, je m´en excuse.

Si vous avez des pistes de réflexion je suis prenneur!

Merci d´avance pour l´aide.

2 réponses

GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018
24 févr. 2017 à 15:21
Re bonjour,

Avant d´encoder en VBA cette connection je cherche a le faire manuellement pour bien comprendre le procces.
Je pense le faire À partir de SQL Server, mais jénsuis pas sur et de plus je connais pas le serveur, ect...

Un peu d´aide SVP
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
24 févr. 2017 à 21:19
bonsoir, as-tu une macro qui fonctionne? que souhaites-tu y changer?
0
GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018
24 févr. 2017 à 21:38
Bonsoir,

Si ma maccro fonctionne, automatiser la conection a al base de données, cad ne pas faire une extraction manuelle, puis copier coller.

Je pense que cést un Sql Server ODBC, je suis a fond dessus et je ne comprends pas tout ce que je lis mais jéssaye, je ne pense pas que cela soit tres compliqué et que cela pourriat economiser bcp de temps a l utilisateur.

Merci
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018
25 févr. 2017 à 08:58
Je pense, en effet, que tu dois utiliser ODBC. As-tu une question?
0
GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
27 févr. 2017 à 14:36
Bonjour yg_be,

Aprés 3 jours de reflexion, voila ou j´en suis arrivé. Je pense qu´en VBA ca doit etre un truc du genre:

Public Cnx As New Connection
Public Function ObtChn() As String
Dim Chn As String
Chn = "driver={SQL Server};" & "server=...;database=...;uid=...;pwd=.." 
ObtChn = Chn
End Function

Private Sub btnCnx_Click()
Dim Vsql As String
Dim Vrst As New Recordset

On Error GoTo ErrorBD
Cnx.ConnectionString = ObtenerChn()
Cnx.Open
Vsql = "Select (info recherché) from (base de données) where codigo='" & (ce que je cherche) & "'"
Vrst.Open Vsql, Cnx
   Range("B10").Value = vrst(0)
   Range("B11").Value = vrst(1)
'   ... toutes les colones que je voudrais
Vrst.Close
Cnx.Close

Exit Sub
ErrorBD:
MsgBox Err.Description
End Sub


Le detail est que pour continuer et faire des tests je dois me connecter et je ne connais pas le driver,serveur et ou trouver l´acces a la base de données. Je ne sais pas ou je peux trouver ces infos et comment faire la connection...


Merci du coup de main
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018
27 févr. 2017 à 16:37
bonjour, le plus simple, c'est de commencer à faire à la main, en te connectant à la base via les options et menus de Excel.
0
GermPeru Messages postés 172 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 27 mars 2018 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
27 févr. 2017 à 17:30
Bonjour,

Je viens tout juste d´y arriver, connection manuelle! Je ne savais pas que c´était en microsoft query, et ca va faire 4 jours que j´essaye encore et encore...je suis fan :) Je ne comprends pas tout ce que je fais, le SQL je comprends meme rien mais ca a láir d etre logique... bref ca a l´air de marcher; je me sius connecté au serveur et j´ai ma base de données qui charge, il me manque plus que la configurer, car jái des données qui ne me sont pas utiles et pour optimiser le chargement des données, ca va me couter bcp de temps ca aussi...

Un conseil, si je définit mes colones dans mon txt de commandes, je n´ai pas a configurer en vba límport des données; il me suffirait juste dáctualiser mes liens a lóuverture de mon classeur? Et de spécifier quelle connection je veux actualiser?

Une idée pour la mise a jour de ma base de données a l´ouverture de mon classeur?

Quand je me suis connecté au server sql, ma chaine de connection est la suivante:
DRIVER=SQL Server;SERVER=BLADELAB01;UID=etiquetas;;APP=Microsoft Office 2013;WSID=LAPTOP82;DATABASE=SBO_PROD

Saurais tu comment l´actualiser a l´ouverture de mon classeur? Ou ce quíl faut que je fasse pour ne pas créer de probleme, enfin plus que j´en ai!

Merci
0