die Fehlermeldung ist leider richtig so, "on a inactive Dataset"
Dann greift wahrscheinlich irgendeine Codezeile in einem Eventhandler auf die Daten zu, wärend das Dataset geschlossen ist.
Die Götter von Lazarus haben Dir ein mächtiges Werkzeug zur Hand gegeben.
Den Debugger.
Benutze ihn um Herauszufinden, in welcher Zeile eigentlich der Fehler entsteht. Er entsteht nicht bestimmt nicht durch das Setzen der Connection oder des
SQL-Statements.
Stichwort: Haltepunkt setzen, schrittweise durch den Code gehen.
Wie sollen wir sehen, was Du alles programmiert hast und daher wäre alles was jetzt geschrieben würde gleichzusetzen mit einer Aussage des Orakels von Delphi.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.