MDB: list all tables lazarus / 16-Databases ---------------------------------------------------------------------- SymbolicFrank · 2023-03-20 11:24 According to the documentation, that should be done like this: Code: SQL  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i SELECT MSysObjects.nameFROM MSysObjectsWHERE   MSysObjects.TYPE IN (1,4,6)   AND MSysObjects.name NOT LIKE '~*'      AND MSysObjects.name NOT LIKE 'MSys*'ORDER BY MSysObjects.name But, unfortunately, there is no way to grant Admin access to MSysObjects (GRANT is an invalid query). The next one does work: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i MyConnection.GetTableNames(tn); But that also includes all the other objects, like queries. How do I find out if something is a table? ---------------------------------------------------------------------- Chris78 · 2023-03-20 11:44 Does "MDB" mean access database ? ---------------------------------------------------------------------- SymbolicFrank · 2023-03-20 12:00 Ah, sorry. Yes, it does. ---------------------------------------------------------------------- Zvoni · 2023-03-20 15:13 2 ways: 1) GetTableNames returns a TStrings (TStringList). Run through it and remove everything else (hope the naming-schema is clear enough to differentiate) 2) Implement your own "INFORMATION_SCHEMA" -->  create your own Table, where you enter only the Tablenames you're interested in Since i'm avoiding Access like the devil avoids holy water, i can't give you more info ---------------------------------------------------------------------- af0815 · 2023-03-20 18:21 Quote from: Zvoni on March 20, 2023, 04:13:07 pmSince i'm avoiding Access like the devil avoids holy water, ... +1 You are not alone :-) ---------------------------------------------------------------------- SymbolicFrank · 2023-03-20 20:23 Quote from: Zvoni on March 20, 2023, 04:13:07 pm2 ways: 1) GetTableNames returns a TStrings (TStringList). Run through it and remove everything else (hope the naming-schema is clear enough to differentiate) 2) Implement your own "INFORMATION_SCHEMA" -->  create your own Table, where you enter only the Tablenames you're interested in Since i'm avoiding Access like the devil avoids holy water, i can't give you more info The one and only thing I (try to) do with them is move the data (tables) to a real SQL database, for the real processing to take place. But the MDB is what I get delivered, so I have to take what I get. It does work well in Linux (although it tends to bug out every once a while, on Windows as well), but you get no error messages whatsoever, so development has to happen in Windows.