Bonjour je développe un intranet en php et je n'arrive pas à lister les tables de la base ACCESS, le SHOW TABLES de SQL ne fonctionne pas.
Il y aurrait-il une solution?![]()
merci d'avance!![]()
Bonjour je développe un intranet en php et je n'arrive pas à lister les tables de la base ACCESS, le SHOW TABLES de SQL ne fonctionne pas.
Il y aurrait-il une solution?![]()
merci d'avance!![]()
c'est plutôt un problème PHP ça, pas access! Je suppose que tu te connectes à ta bd access via odbc. Si tel est le cas, voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <? $conn=odbc_connect("ExtranetAdmin","",""); $res=odbc_tables($conn) or die(odbc_error()); while($row=odbc_fetch_row($res)){ echo odbc_result($res,"TABLE_NAME")."<br>"; } ?>
oui évidement, tu remplaces "ExtranetAdmin" par ton dsn.Envoyé par stephaneey
type=1 : pour les tables créées dans ACCESS.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT name FROM MSysObjects WHERE type in (1,6)
type=6 : tables externes à la base et qui sont liées.
NB : dans ce résultat, les tables systèmes sont incluses. Il faut donc regarder dans MSysObjects un peu le contenu pour virer les tables systèmes.
Ouhaaaa merciii!!!![]()
![]()
![]()
Bon ca marche presque! le seul probleme est que Apache n'est pas très content dans les deux cas! j'ai le message d'erreur suivant ds la première solution:
The memory could not be "read".
et il m'affiche les tables plus d'autres choses
et pour la seconde:
sans rien afficher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] Record(s) cannot be read; no read permission on 'MSysObjects'.,
Je crois que le message est explicite. Est ce que tu as mis des login et pass sur ta BDD ?Envoyé par fblouet
en faisant des recherche sur internet, j'ai trouvé la solution, enfin une solution qui fonctionne bien chez moi.
merci pour votre aide, sinon non je n'avais pas oublié le login et le pass
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $conn = odbc_connect("client","root","",SQL_CUR_USE_DRIVER); // Liste des tables $tablelist = odbc_tables($conn); echo "<table>"; while (odbc_fetch_row($tablelist)){ if (odbc_result($tablelist, 4) == "TABLE"){ $nom = odbc_result($tablelist, 3); echo "<tr><td>".$nom."</td></tr>"; } } echo "</table>";
mais à quoi sert SQL_CUR_USE_DRIVER?![]()
je viens de résoudre une erreur, l'absence de odbc_close($conn); en était la cause.[/i]
A vue de nez, ca doit être un variable systeme qui contient le type de driver sql en cours d'utilisation.
Partager