Zu 1 kann ich Dir nicht helfen (nutze weder Mac noch ODBC).
Zu 2 würde ich ausprobieren, ob die Fehlermeldung auch kommt, wenn das Use im Button enthalten ist. Kommt die Fehlermeldung nicht, kannst Du zwei Aktionen bauen und die abhängig vom Betriebssystem verbergen. Sollte die Fehlermeldung schon beim Öffnen des Dokuments erfolgen, könntest Du die Aktion in eine Teilmaske auslagern (eine für Mac und eine für Windows) und die dann in Abhängigkeit des BS laden (berechnete Teilmaske).
Eine weitere Möglichkeit ist (wurde auch auf dem EntwicklerCamp kurz diskutiert - will mich nicht mit fremden Federn schmücken), das komplette Script BS-abhängig in einen String zu rechnen und per Execute ausführen zu lassen. Ist natürlich schlechter zu warten und bei umfangreichen Scripten nicht wirklich zu empfehlen.