OVH Cloud OVH Cloud

Excel et BDD sur internet ?

7 réponses
Avatar
Thierry Euzenot
Bonjour à toutes et tous,

J'ai un classeur qui tourne sous Excel 2003 et dont les données doivent être
consultées et modifiées par plusieurs utilisateurs à des lieux différents.
Est-il possible via Excel de piloter une base Mysql distante (chez un
hébergeur) aussi bien en écriture qu'en lecture ? Si possible de manière
"transparente" pour les utilisateurs qui utilisent le classeur.

Nota je connais assez bien le VBA et gère déjà des BDD Access mais en local
via Excel.

Merci par avance pour votre aide :o)

TeZ

7 réponses

Avatar
Dude
Yep sir, c'est tout à fait possible :)

Il y a pas mal de sites qui te donneront les infos, fais des sessions Google
sur "Recordset", "ADODB + MySQL".... si tu as besoin de plus d'infos,
envoie-moi un mail, je t'enverrai des fichiers exemple.

"Thierry Euzenot" wrote in message
news:%
Bonjour à toutes et tous,

J'ai un classeur qui tourne sous Excel 2003 et dont les données doivent
être consultées et modifiées par plusieurs utilisateurs à des lieux
différents.
Est-il possible via Excel de piloter une base Mysql distante (chez un
hébergeur) aussi bien en écriture qu'en lecture ? Si possible de manière
"transparente" pour les utilisateurs qui utilisent le classeur.

Nota je connais assez bien le VBA et gère déjà des BDD Access mais en
local via Excel.

Merci par avance pour votre aide :o)

TeZ



Avatar
Bonjour à toutes et tous,

J'ai un classeur qui tourne sous Excel 2003 et dont les données doivent être
consultées et modifiées par plusieurs utilisateurs à des lieux différents.
Est-il possible via Excel de piloter une base Mysql distante (chez un
hébergeur) aussi bien en écriture qu'en lecture ? Si possible de manière
"transparente" pour les utilisateurs qui utilisent le classeur.


http://cherbe.free.fr/xl2mysql1.php
http://www.excelabo.net/php/excelphp.php

Avatar
Thierry Euzenot
Merci, je vais tenter, ça ne va pas être simple à gérer à plusieurs
utilisateurs, mais après tout, sans risque la victoire n'a que peu de goût
:o)

"@(none)" <""herbe"@(none)"> a écrit dans le message de
news:ezELPt%
Bonjour à toutes et tous,

J'ai un classeur qui tourne sous Excel 2003 et dont les données doivent
être


consultées et modifiées par plusieurs utilisateurs à des lieux
différents.


Est-il possible via Excel de piloter une base Mysql distante (chez un
hébergeur) aussi bien en écriture qu'en lecture ? Si possible de manière
"transparente" pour les utilisateurs qui utilisent le classeur.


http://cherbe.free.fr/xl2mysql1.php
http://www.excelabo.net/php/excelphp.php



Avatar
Dude
Pour info et si mes souvenirs sont bons, Excelabo propose une solution qui
passe par php pour gérer la base de données, et notamment passe par
l'intermédiaire de fichiers CSV pour transférer les données. Vous me
pardonnerez l'expression j'espère, mais c'est une solution à la mord moi le
noeud ! Il est en effet bien plus simple de créer une connection directe sur
la base via une connection ODBC et d'envoyer directement les requetes SQL
sur le serveur (ce qu'Excel gère très bien). Point n'est besoin de Php donc,
qui au demeurant est relativement complexe pour un néophyte.



"@(none)" <""herbe"@(none)"> wrote in message
news:ezELPt%
Bonjour à toutes et tous,

J'ai un classeur qui tourne sous Excel 2003 et dont les données doivent
être consultées et modifiées par plusieurs utilisateurs à des lieux
différents.
Est-il possible via Excel de piloter une base Mysql distante (chez un
hébergeur) aussi bien en écriture qu'en lecture ? Si possible de manière
"transparente" pour les utilisateurs qui utilisent le classeur.


http://cherbe.free.fr/xl2mysql1.php
http://www.excelabo.net/php/excelphp.php



Avatar
Thierry Euzenot
Si tu as des exemples de code, je suis preneur, car je ne vois du tout
comment configurer en VBA les paramètres de connexion d'une base de donnée
sur un hébergeur via ODBC.
(j'apprend sur le tas, donc mes connaissances se limitent à ce que j'ai déjà
utilisé par le passé, c'est à dire gestion d'une BDD ODBC en local ^_^ )

Pour le php, pas de problème je connais relativement bien, mais s'il était
possible d'éviter les manips "lourdes" passant par le cvs, etc. ce serait un
énorme plus pour les autres utilisateurs qui n'ont aucune compétence en
informatique ;o)

Nota : La base de donnée serait sur un hébergeur mutualisé chez
www.levillage.org, je ne suis donc pas administrateur du serveur.

@+

"Dude" a écrit dans le message de
news:%23RFQRK$
Pour info et si mes souvenirs sont bons, Excelabo propose une solution qui
passe par php pour gérer la base de données, et notamment passe par
l'intermédiaire de fichiers CSV pour transférer les données. Vous me
pardonnerez l'expression j'espère, mais c'est une solution à la mord moi
le

noeud ! Il est en effet bien plus simple de créer une connection directe
sur

la base via une connection ODBC et d'envoyer directement les requetes SQL
sur le serveur (ce qu'Excel gère très bien). Point n'est besoin de Php
donc,

qui au demeurant est relativement complexe pour un néophyte.



"@(none)" <""herbe"@(none)"> wrote in message
news:ezELPt%
Bonjour à toutes et tous,

J'ai un classeur qui tourne sous Excel 2003 et dont les données doivent
être consultées et modifiées par plusieurs utilisateurs à des lieux
différents.
Est-il possible via Excel de piloter une base Mysql distante (chez un
hébergeur) aussi bien en écriture qu'en lecture ? Si possible de
manière



"transparente" pour les utilisateurs qui utilisent le classeur.


http://cherbe.free.fr/xl2mysql1.php
http://www.excelabo.net/php/excelphp.php







Avatar
Dude
chaque machine utilisatrice doit :
- installer un pilote ODBC (fon fichier Excel peut détecter automatiquement
la présence de ce pilote sur la machine, et le télécharger depuis un ftp,
puis l'installer si besoin est)
ce pilote ODBC est téléchargeable sur le site MySQL.
- mettre à jour son MDAC. (disponible sur le site crosoft, je peux également
te l'envoyer si tu veux. Idem, l'installation peut se faire automatiquement
à la première utilisation)

ensuite, lorsque tu crées ton fichier Excel, il faut ajouter dans tes
références.
- Microsoft activeX Data Objects Library (j'ai la 2.8)
et
- Microsoft activeX Data Objects Recordset Library (idem, 2.8)

la connection se fait de la manière suivante :

Sub requete()

Dim oConn As Object
Dim oRS As Object
Dim sSQL As String

Set oConn = CreateObject("ADODB.Connection")
oConn.CursorLocation = adUseClient
' modifier l'adresse IP, le nom de la base, d'utilisateur et le mot de
passe
' avec ta configuration.
oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER2.168.1.1;" & _
"DATABASE=nom_de_la_base;" & _
"USER=utilisateur;" & _
"PASSWORD=mot_de_passe;"

sSQL = "SELECT * FROM table"
'peut être n'importe quelle instruction SQL, y compris INSERT, CREATE
TABLE, etc...

oRS.Open sSQL, oConn, adOpenDynamic, adLockOptimistic

'le traitement du recordset éventuellement renvoyé se fait généralement
sous la forme suivante :
' Do While Not oRS.EOF
' traitement souhaité
' oRS.MoveNext
' Loop

set oRS = Nothing
oConn.Close
set oConn = Nothing

End Sub

enjoy :)
Avatar
Thierry Euzenot
Merci beaucoup, c'est clair et limpide, je teste demain :o)


"Dude" a écrit dans le message de news:
%
chaque machine utilisatrice doit :
- installer un pilote ODBC (fon fichier Excel peut détecter
automatiquement la présence de ce pilote sur la machine, et le télécharger
depuis un ftp, puis l'installer si besoin est)
ce pilote ODBC est téléchargeable sur le site MySQL.
- mettre à jour son MDAC. (disponible sur le site crosoft, je peux
également te l'envoyer si tu veux. Idem, l'installation peut se faire
automatiquement à la première utilisation)

ensuite, lorsque tu crées ton fichier Excel, il faut ajouter dans tes
références.
- Microsoft activeX Data Objects Library (j'ai la 2.8)
et
- Microsoft activeX Data Objects Recordset Library (idem, 2.8)

la connection se fait de la manière suivante :

Sub requete()

Dim oConn As Object
Dim oRS As Object
Dim sSQL As String

Set oConn = CreateObject("ADODB.Connection")
oConn.CursorLocation = adUseClient
' modifier l'adresse IP, le nom de la base, d'utilisateur et le mot de
passe
' avec ta configuration.
oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER2.168.1.1;" & _
"DATABASE=nom_de_la_base;" & _
"USER=utilisateur;" & _
"PASSWORD=mot_de_passe;"

sSQL = "SELECT * FROM table"
'peut être n'importe quelle instruction SQL, y compris INSERT, CREATE
TABLE, etc...

oRS.Open sSQL, oConn, adOpenDynamic, adLockOptimistic

'le traitement du recordset éventuellement renvoyé se fait généralement
sous la forme suivante :
' Do While Not oRS.EOF
' traitement souhaité
' oRS.MoveNext
' Loop

set oRS = Nothing
oConn.Close
set oConn = Nothing

End Sub

enjoy :)