Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[vba] Data vanuit Excel naar Mysql

Pagina: 1
Acties:

  • KopjeThee
  • Registratie: Maart 2005
  • Niet online
Ik wil graag vanuit Excel data wegschrijven in een mysql of access database die ergens remote op een server staat. Een van de randvoorwaarden is dat ik op de pc's waar ik het Excel workbook kan openen, geen mogelijkheid heb om iets te installeren (drivers oid). ODBC Providers zijn remote wel aanwezig.

Ik vind bijvoorbeeld deze link. Maar dit vereist lokaal de installatie van "MySQL Connector/ODBC 5.1", dus dat kan niet. Ook deze link maakt gebruik van "MySQL ODBC 3.51 Driver". Wat betreft Access vind ik bijvoorbeeld deze link, maar ik heb verder geen toegang tot allerlei configuratie bestanden op de remote server.

Iemand een idee?

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 00:32

pietje63

RTFM

Interessante vraag, ik denk dat het lastig wordt..

Waar je misschien naar zou kunnen zoeken/aan zou kunnen werken is zoiets:

- via een macro alle data die je wilt verzamelen
- via een link met alle te verwerken data m.b.v. get-data versturen naar de server
- daar dmv (bijv.) php+mysql de data in mysql overzetten.

Let er wel op dat dit alles behalve een mooie oplossing is.

Anders kun je misschien kijken of hier een kant en klaar macro voor is, die een soort van driver heeft ingebouwd (ik weet niet in hoeverre dat soort dingen mogelijk zijn via macro's).

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waarom bouw je niet een SOAP of andere "web" interface o.i.d.? Via "get" zou ik niet werken, da's te beperkend in je mogelijkheden maar je zou zelfs gewoon simpele XML kunnen POSTen.

[ Voor 56% gewijzigd door RobIII op 04-10-2008 19:13 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • SKiLLa
  • Registratie: Februari 2002
  • Niet online

SKiLLa

Byte or nibble a bit ?

En een Excel CSV/XML export --> import in MySQL / eventueel via een website ?

'Political Correctness is fascism pretending to be good manners.' - George Carlin


  • KopjeThee
  • Registratie: Maart 2005
  • Niet online
Bedankt voor de reacties. Gelukkig wil ik alleen bij het sluiten van het workbook een naam en een getalletje opslaan in de database. Dus geen grote hoeveelheden data. Ik heb even een testje gemaakt die in de database opslaat wat ik in een Excel cell intik.

De VBA code:
code:
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
  ActiveWorkbook.FollowHyperlink Address:="http://www.xxx.com/insert.php?naam=" & Target.Cells(1,1).Value
End Sub


De insert.php code:
code:
1
2
3
4
5
6
7
<?php
$Verbinding = mysql_connect("www.xxx.com","user","password");
mysql_select_db("databasenaam") or die ("Kan de database niet openen");
$query = "INSERT INTO score (naam) VALUES ('$_GET[naam]')";
mysql_query($query) or die('Error, insert query failed');
mysql_close($Verbinding);
?>


Hij slaat nu wel telkens de ingevoerde waarde 2 keer op, er zit dan een paar seconde tussen als ik een timestamp toevoeg. Weet iemand hoe dit kan? Het lijkt wel of Excel de pagina 2 keer aanroept oid.

Ik vind het jammer dat followhyperlink (uiteraard) een webbrowser opent met de pagina. Ik kan er wel wat leuks op zetten ("Gegevens opgeslagen" oid), maar ik zou liever hebben dat er geen browser wordt opgestart. Heeft iemand hier suggesties voor?

[ Voor 7% gewijzigd door KopjeThee op 05-10-2008 09:42 ]


Verwijderd

Waarom gebruik je geen SOAP webservice zoals RobIII al aangaf?
En je insert query is zo lek als een mandje: '$_GET[naam]' roept om SQL injection. Stel dat iemand in 'naam' iets zet als 'japie); drop table score; --', dan heb je een probleem...

  • KopjeThee
  • Registratie: Maart 2005
  • Niet online
Verwijderd schreef op zondag 05 oktober 2008 @ 09:57:
Waarom gebruik je geen SOAP webservice zoals RobIII al aangaf?
En je insert query is zo lek als een mandje: '$_GET[naam]' roept om SQL injection. Stel dat iemand in 'naam' iets zet als 'japie); drop table score; --', dan heb je een probleem...
Ja, erg veilig is het niet nee. Ik had wel verzonnen dat iedereen zelf zomaar wat in de link zou kunnen invoeren buiten Excel om (een bepaalde score), maar een gemeen sql statement had ik nog niet aan gedacht :) (Hoewel ik in mijn geval niet verwacht dat iemand daartoe in staat is)

Een SOAP webservice maken lijkt mij wat overkill om 2 of 3 waardes door te geven. Waarschijnlijk kan ik beter gebruik maken van de post method. Dan is de url iets minder gevaarlijk. Jullie merken wel dat dit niet mijn dagelijks werk is :)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
KopjeThee schreef op zondag 05 oktober 2008 @ 10:57:
Waarschijnlijk kan ik beter gebruik maken van de post method. Dan is de url iets minder gevaarlijk. Jullie merken wel dat dit niet mijn dagelijks werk is :)
Dat verandert geen drol aan je SQL injection mogelijkheden. Die dien je sowieso gewoon te dichten (er lopen tal-lo-ze topic over hier). Verder hoef je geen browser te openen met lelijke FollowHyperlinks (hoe wou je daar mee gaan POSTen overigens :? ) als je eens kijkt naar (bijv) (Server)XMLHTTP.

[ Voor 4% gewijzigd door RobIII op 05-10-2008 11:23 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • KopjeThee
  • Registratie: Maart 2005
  • Niet online
RobIII schreef op zondag 05 oktober 2008 @ 11:22:
[...]

Dat verandert geen drol aan je SQL injection mogelijkheden. Die dien je sowieso gewoon te dichten (er lopen tal-lo-ze topic over hier). Verder hoef je geen browser te openen met lelijke FollowHyperlinks (hoe wou je daar mee gaan POSTen overigens :? ) als je eens kijkt naar (bijv) (Server)XMLHTTP.
Bedankt ik zal er naar kijken. Overigens is het mogelijk om te posten met followhyperlink:
FollowHyperlink(Address, SubAddress, NewWindow, AddHistory, ExtraInfo, Method, HeaderInfo)
Method kan msoMethodPost zijn.
Pagina: 1