Autodoc

Zusätzliche Erweiterungen für ACT! wie: SchnellSuche, AutoData, 1An1, CoCo, etc.

Moderatoren: Schlesselmann, Amrou, mtimmermann, Robert Schellmann, Thomas Benn

Antworten
Karl-Heinz Hoss
Beiträge: 7
Registriert: Sonntag 23. Februar 2003, 01:00
Wohnort: Erkelenz
Kontaktdaten:

Beitrag von Karl-Heinz Hoss »

Wer arbeitet mit Autodoc und hat schon mal eine SHAPE Anweisung programmiert und damit auf Access-Datenbanken zugegriffen. Ich habe bereits schon einige SELECT Zugriffe mit Autodoc auf unsere Datenbanken geschrieben, die funktioneren einwandfrei. Aber bei SHAPE breche ich mir leider die Finger. Es will einfach nicht funktionieren. Wer kann hierbei etwas Hilfestellung geben. Für Tipps und Anregungen, wie man am besten vorgeht, wäre ich dankbar.
Karl-Heinz Hoss
Robert Schellmann
Beiträge: 1675
Registriert: Samstag 14. April 2001, 02:00
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Robert Schellmann »

Hallo Herr Hoss,

hier ein kleines Shape-Beispiel:

Gehen wir mal von folgenden zwei Tabellen aus:

Bild

Bild

In der ersten Tabelle wird festgehalten, welcher Kunde hat an welchen Tag, welchen Raum gemietet. Jeder Datensatz erhält hier im Feld ID_Mietung eine eindeutige Nummer.
In der zweiten Tabelle sind mögliche Extras (Details) für die Vermietung eines Raumes festgehalten. In dieser Tabelle hat jeder Datensatz die eindeutige Nummer im Feld ID_Details.

Es hat z.B. der Kunde mit der Kundennummer M30012 am 12.1.2003 den Raum Brüssel gemietet. Für diese Mietung mit der ID_Mietung 1 gibt es drei Extras in der Details-Tabelle:
Projektor, Leinwand und Rednerpult.

Zwischen den Tabellen Mietungen_Raeume und Mietungen_Details herrscht also eine 1:n-Beziehung. (1 Mietung hat n Extras). Hinterlegt wird diese Beziehung über die Felder ID_Mietung und Mietung_ID.

Die SELECT-Abfrage um z.B. die Mietungen vom Kunden M30012 zu bekommen könnte z.B. so aussehen:
[Abfrage1]
SELECT ID_Mietung, Datum, Raum FROM Mietungen_Räume WHERE Kundennummer ='M30012'

Um erst einmal alle Details abzufragen, könnte die SELECT-Abfrage so lauten:
[Abfrage2]
SELECT Extra, Mietung_ID FROM Mietungen_Details

Jetzt kommen wir zur SHAPE-Abfrage. Die Syntax für die beiden Abfragen würde folgendermaßen lauten:

SHAPE {[Abfrage1]} AS Mietung APPEND ({[Abfrage2]} AS Details RELATE 'ID_Mietung' TO 'Mietung_ID') AS Details

Die SHAPE-Anweisung verbindet also die beiden Abfragen über die im RELATE-TO-Befehl angegebene Felderbeziehung.
Für [Abfrage1] und [Abfrage2] müssen natürlich die jeweiligen SELECT-Abfragen eingesetzt werden. Wenn wir jetzt noch davon ausgehen, dass die Kundennummer im ACT!-Feld mit der ID 50 (Benutzerfeld1) steht, sieht die fertige SHAPE-Abfrage für AutoDoc dann wie folgt aus:

SHAPE { SELECT ID_Mietung, Datum, Raum FROM Mietungen_Räume WHERE Kundennummer ='{!K,50}'} AS Mietung APPEND ({SELECT Extra, Mietung_ID FROM Mietungen_Details} AS Details RELATE 'ID_Mietung' TO 'Mietung_ID') AS Details

Diese Shape-Abfrage führt dann zu folgender Anzeige unter AutoDoc:
Bild

Ich hoffe, dass war jetzt nicht zu kompliziert ausgedrückt.

Gruß
Robert Schellmann


<font size=-1>[ Diese Nachricht wurde geändert von: Robert Schellmann am 2003-02-24 18:59 ]</font>
Karl-Heinz Hoss
Beiträge: 7
Registriert: Sonntag 23. Februar 2003, 01:00
Wohnort: Erkelenz
Kontaktdaten:

Beitrag von Karl-Heinz Hoss »


Karl-Heinz Hoss
Karl-Heinz Hoss
Beiträge: 7
Registriert: Sonntag 23. Februar 2003, 01:00
Wohnort: Erkelenz
Kontaktdaten:

Beitrag von Karl-Heinz Hoss »

Hallo Herr Schellmann,

vielen Dank für die Tips und Hinweise. Nach Ihrer Mustervorlage hat es nun schon funktioniert und die ersten Ergebnisse sind schon ganz gut. Ich bekomme ab und zu eine Fehlermeldung, dass das Rowset nicht zum Bezug stimmt. Wie verhalten sich die abgefragten Felder zu den Bezügen. Eine weitere Frage wäre, kann ich auch mit der Shapeanweisung auf mehrere Datenbanken mit unterschiedlichen Tabellen zugreifen und wie oft können dann Shapeanweisungen verschachtelt werden.
Antworten