JT 14. Mai. 2016 ACOS_EXCEL_OLE.DOC MS-Excel-OLE-Objekt mit aktuellen ACOS-Daten in einen ACOS-Terminplan dynamisch einfügen 0. Aufgabe: Ein XLS-Objekt einfügen, das aus der Acos-Access-Datenbank (Andere DB siehe Anhang) die gewünschten Informationen aus einer Abfrage holt. Letztere kann allerdings nur als SQLSkript in Access bearbeitet werden. Damit könnten beliebige Stempel selbst gestaltet werden. 1. SQL-Abfrage als Union esrtellen: Acos-Job als Datei ZSN sichern. Dann in Access-DB DSN=ACOS86_MDB speichern In Access neue Abfrage erstellen Tabelle PLSDAT_J Entwurfsmodus Ansicht SQL Dieses Muster-Script einfügen: Select 1 as ZEILE, JB_ID, 'P_TEXT1'as BESCHREIBUNG, mid(PLSDAT_J.P_TEXT,1,40) as P_TEXT1 FROM `C:\daten\acos_web\db\acos86_2000`.PLSDAT_J PLSDAT_J WHERE (PLSDAT_J.JB_ID=2) union Select 2 as ZEILE, JB_ID, 'P_TEXT2'as BESCHREIBUNG,mid(PLSDAT_J.P_TEXT,41,40) as P_TEXT1 FROM `C:\daten\acos_web\db\acos86_2000`.PLSDAT_J PLSDAT_J union Select 5 as ZEILE, JB_ID, 'P_MEMO_01'as BESCHREIBUNG,PLSDAT_J.MEMO_1 FROM `C:\daten\acos_web\db\acos86_2000`.PLSDAT_J PLSDAT_J union Select 6 as ZEILE, JB_ID, 'P_MEMO_02'as BESCHREIBUNG,PLSDAT_J.MEMO_2 FROM `C:\daten\acos_web\db\acos86_2000`.PLSDAT_J PLSDAT_J union Select 7 as ZEILE, JB_ID, 'P_MEMO_03'as BESCHREIBUNG,PLSDAT_J.MEMO_3 FROM `C:\daten\acos_web\db\acos86_2000`.PLSDAT_J PLSDAT_J UNION Select 7 as ZEILE, JB_ID, 'P_MEMO_03'as BESCHREIBUNG,PLSDAT_J.MEMO_3 FROM `C:\daten\acos_web\db\acos86_2000`.PLSDAT_J PLSDAT_J ORDER BY 1; Ausführen und Abfrage speichern als ABFRAGE_STEMPEL Das sind alle möglichen Spaltennamen aus PLSDAT_J. Auch Daten aus anderen Tabellen könnten geholt werden. PLSDAT_J.JB_ID, PLSDAT_J.KONST, PLSDAT_J.P_TEXT, PLSDAT_J.DAT_AE, PLSDAT_J.P_CODE, PLSDAT_J.ERST_DAT, PLSDAT_J.D_CODE, PLSDAT_J.P_TRAEGER, PLSDAT_J.BEARB, PLSDAT_J.AENR, PLSDAT_J.A_CASE, PLSDAT_J.FREI1, PLSDAT_J.UP_SOLL, PLSDAT_J.SCHALTER, PLSDAT_J.UP_DAT, PLSDAT_J.AE_DAT, PLSDAT_J.SOIDAT, PLSDAT_J.SOINAM, PLSDAT_J.SAVDAT, PLSDAT_J.SAVNAM, PLSDAT_J.ADDDAT, PLSDAT_J.MEHRKA, PLSDAT_J.RESMER, PLSDAT_J.P_START, PLSDAT_J.MTA_AN, PLSDAT_J.ZEITEINH, PLSDAT_J.ZEHNTELH, PLSDAT_J.DATYP, PLSDAT_J.UP_TMR, PLSDAT_J.UP_PLAN, PLSDAT_J.UP_DIAL, PLSDAT_J.FREI2, PLSDAT_J.UPD_ANZ, PLSDAT_J.UPD_01, PLSDAT_J.UPD_02, PLSDAT_J.UPD_03, PLSDAT_J.UPD_04, PLSDAT_J.UPD_05, PLSDAT_J.UPD_06, PLSDAT_J.UPD_07, PLSDAT_J.UPD_08, PLSDAT_J.UPD_09, PLSDAT_J.UPD_10, PLSDAT_J.UPD_11, PLSDAT_J.UPD_12, PLSDAT_J.UPD_13, PLSDAT_J.UPD_14, PLSDAT_J.UPD_15, PLSDAT_J.UPD_16, PLSDAT_J.UPD_17, PLSDAT_J.UPD_18, PLSDAT_J.UPD_19, PLSDAT_J.UPD_20, PLSDAT_J.UPD_21, PLSDAT_J.UPD_22, PLSDAT_J.UPD_23, PLSDAT_J.UPD_24, PLSDAT_J.UPD_25, PLSDAT_J.UPD_26, PLSDAT_J.FREI3, PLSDAT_J.MEMO_1, PLSDAT_J.MEMO_2, PLSDAT_J.MEMO_3, PLSDAT_J.MEMO_4, PLSDAT_J.MEMO_5, PLSDAT_J.MEMO_6, PLSDAT_J.MEMO_7, PLSDAT_J.MEMO_8, PLSDAT_J.MEMO_9, PLSDAT_J.MEMO_10, PLSDAT_J.MEMO_11, PLSDAT_J.MEMO_12, PLSDAT_J.MEMO_13, PLSDAT_J.MEMO_14, PLSDAT_J.MEMO_15, PLSDAT_J.MEMO_16, PLSDAT_J.MEMO_17, PLSDAT_J.JOB_KEY1, PLSDAT_J.JOB_KEY2, PLSDAT_J.JOB_KEY3, PLSDAT_J.ACOS_KAT, PLSDAT_J.VOR_PA, PLSDAT_J.VOR_PE, PLSDAT_J.VOR_TYP, PLSDAT_J.REST_GS, PLSDAT_J.KRIT_WEG, PLSDAT_J.KOMMA, PLSDAT_J.RES_KAL, PLSDAT_J.FERT_FUN, PLSDAT_J.ON_TMR, PLSDAT_J.HO_TMR, PLSDAT_J.BV_TMR, PLSDAT_J.RE_TMR, PLSDAT_J.UP_CAL 2. Abfrage in Excel einfügen 2.1 Excel-Datei Neu Z.B. in Zelle B2 Focus setzen Daten Externe Daten neue Abfrage erstellen 2.2 Datenquelle ACOS86_MDB wählen und OK 2.3 Abfrage_Stempel > Felder rüberholen 2.4 Weiter, Jobfilter für das aktuelle Projekt setzen- Fertigstellen und Daten an Excel zurückgeben 2.5 Rechte Maus im Tabellenbereich Datenbereichseigenschaften Aktualisieren beim Öffnen Formeln in angrenzenden Zellen ausfüllen OK 3. Rahmen formatieren Format Bereich mit Rahmen versehen XLS-Datei speichern z.B. in PLSDAT oder besser in den Projektordner z.B. als ABFRAGE_STEMPEL.XLS 4. Ole-Objekt in Acos zuweisen Balkenplan Format Ausgabe formatieren unten rechts markieren Typ=Objekt durchsuchen ABFRAGE_STEMPEL.XLS auswählen ok ok Seitenvorschau -fertig! 5. Nachträgliche Änderungen In Access oder MSQUERY Abfrage per SQL ändern und Excel neu öffnen und speichern. Bei Datenänderungen in der ACOS Projektbeschreibung: In DB Speichern Excel öffnen ok speichern (kann offen bleiben) In Acos Format Ausgabe formatieren, bearbeiten, ok, ok (Jetzt wird die OLE-Schnittstelle von Excel neu ausgeführt) Seitenvorschau - fertig 6. Sonstiges Die Qualität der Ausgaben mit XLS-Objekten ist sehr gut, alles ist beliebig zoombar, Bilder sind als Vektordaten in XLS importierbar, die Bildhöhen im Acos sind variabel. Das ganze Verfahren klingt komplex, da es einen Zyklus zwischen Acos und Excel realisiert, ist aber im Wiederholungsfall einfach zu anzuwenden. Abweichungen – je nach Excel-Version – sind möglich. Bei MS-Office 97 funktioniert das Aktualisieren nicht immer zuverlässig. Anhang: Vereinfachtes Verfahren für andere Datenbanken: Das Verfahren beginnt bei Schritt 2 bis zu 2.4 2.3a Auswahl des ODBC DSN und Eingabe des Datenbankpasswortes 2.4a Statt Daten an Excel, esrt zu MS-Query 2.4b SQL-Query-Abfrage mit SQL 2.4c Speichern der Abfrage 2.4d Daten an Excel zurückgeben Alle anderen Schritte des Verfahrens bleiben davon unberührt. Alternativ können Abfragen (Views) mit besonderer Berechtigung je User vom Datenbankadministrator bereitgestellt wedren. http://www.acos.com E-Mail: [email protected]