Weet iemand wat het beste programma is om een Microsoft Access database om te zetten naar een MySQL database? Op het web vind ik overigens alleen maar erg dure programma's voor iets wat toch een redelijk eenvoudige procedure moet zijn! Heeft iemand een paar goeie tips?

Jonathan
Microsoft != OpenSource
Acces = Microsoft
MySQL = OpenSource
Acces <> OpenSource


Even alle tabelletjes opslaan als CSV bestand en dat importeren
of
Indien mogelijk exporteren naar SQL bestanden
of
Werken met ODBC verbindingen
Het hangt er nogal van af hoe je Access DB er uit ziet. Is het een ingewikkelde DB met veel tabellen en relaties? Of heb je 1 tabel met NAW gegevens?
Het gaat om 1 grote tabel die ik ga gebruiken met honderden rijen en ca. 8 kolommen. Ik zoek dus een tool die deze tabel 1 op 1 overneemt en overzet in MySQL. Praktisch maakt het dus niet eens uit of ik access gebruik of excel.
Als het maar om 1 tabel gaat is er niets aan de hand.
In phpMyAdmin kun je alleen MySQL dumps importeren dacht ik, maar als je vanuit MS Access een CSV bestand exporteert kun je die met een PHP script inlezen en in een MySQL tabel prakken.

[edit]
Je kunt ook een tekstfile inladen in MySQL
[/edit]
Mijn oude manier met kladblok en Ctrl+H, (waarbij ik de enters vervong door INSERT .. en de tabs / spaties door "","", ) , zal denk ik niet voor jou voldoen ;)

Probeer eerst de tabel aan te maken, en daarna een manier te vinden om de gegevens over te zetten (Kladblok? ;) ).
@ Jonathan: ik kan me voorstellen dat het voor een nieuweling nogal ondoorzichtig overkomt allemaal. Welke velden heb je in je MS Access tabel? Als we dat weten kunnen we je wat gerichter helpen.
Jan Koehoorn schreef op 15.09.2006 23:42
@ Jonathan: ik kan me voorstellen dat het voor een nieuweling nogal ondoorzichtig overkomt allemaal. Welke velden heb je in je MS Access tabel? Als we dat weten kunnen we je wat gerichter helpen.


Het zit zo.... ik kan MySQL al inlezen en bewerken met php. Het op de website zetten van deze informatie is appeltje eitje. Ik kan MySQL databases dus uitlezen, alleen de vraag is hoe vul ik hem. Via MySQL prompt: create database, use database, create tables etc. etc. is natuurlijk leuk om te weten, maar totaal onpraktisch.

Laten we zeggen ik heb (bijv.) een 3x3 tabel in access:
1 computer (leeg veld)
2 beeldscherm 833
3 muis 329
Deze wil ik 1 op 1 overnemen in een MySQL database. Dus een leeg vakje in Access moet ook een leeg vakje worden in MySQL.

Ik denk dat jullie aanwijzing (Access > CSW > met script naar MySQL) een oplossing is die ik ga onderzoeken.
dat script naarmysql ... is gewoon imorteren bij phpmyadmin

Ik denk dat jullie aanwijzing (Access > CSW > met script naar MySQL) een oplossing is die ik ga onderzoeken.

Bedoel je CSV?

Probeer vanuit Access eens een export te doen naar een CSV bestand. Daarna kun je met fgetcsv() de data inlezen in je PHP script.
Voorbeeldje:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

$file = 'data.csv';
$fp = fopen ($file, 'rb');
$data = array ();

while ($data[] = fgetcsv ($fp, 4096, ';')) ;
fclose ($fp);

echo '<pre>';
print_r ($data);
echo '</pre>';
?>
edit:
Dus in jouw geval, met een drie-velden tabel:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

$file = 'data.csv';
$fp = fopen ($file, 'rb');
while ($data = fgetcsv ($fp, 4096, ';')) {
$sql = "
INSERT INTO tabel
SET
veld1 = '" . $data[0] . "',
veld2 = '" . $data[1] . "',
veld3 = '" . $data[2] . "'
LIMIT 1
";
if (!mysql_query ($sql)) {
trigger_error (mysql_error ());
}
}
fclose ($fp);
?>

Reageren