"Hängepartie" mit Access 2003
Moin,
ich sitze derzeit an einer Datenbankanwendung mit Access 2003 Pro (vom AG vorgegeben, ein Umgebungswechsel kommt also nicht in Frage. Die DB besteht aus 20 Tabellen (+- 3) mit jeweils ca. 15 Feldern. Diese sind jeweils mit einer Tabelle über eine Seriennummer als Primärschlüssel via referentieller Integrität verbunden. Problem: Auf einem Formular zur Datenneueingabe benötige ich alle Felder, logischerweise. Bis auf ca. 20 sind auch schon alle auf dem Formular, die fehlenden sind erst kürzlich dazugekommen. Versuche ich aber, diese Felder zur Datasource hinzuuzfügen, hängt sich Access auf. Die SQL-Abfrage is auch ziemlich lang (3 DinA4-Seiten, über 10.000 Zeichen). Nichtsdestotrotz brauche ich aber diese Felder in der Datasource :( Unterformulare will ich aufgrund der grottigen Access-GUI nicht verwenden (bekommt man dnak Mausrad nur Probleme...). Auch auf einem Leistungsfähigeren Rechner verabschiedet sich Access bei dem Versuch. Was kann ich noch machen? |
Re: "Hängepartie" mit Access 2003
Zitat:
Mal angenommen, man schreibt eine DB-Anwendung für eine Bücherei. Dann gibt es in der Datenbank mindestens folgende Tabellen: Verlage, Authoren, Buecher, Kunden, Ausleihungen, VerlagAuthoren, AuthorenBuecher. Jede dieser Tabellen (Ausnahme: Ausleihungen, VerlagAuthoren, AuthorenBuecher) wird über ein eigenes Formular mit DBGrid gepflegt. Man kann nicht einfach alle Tabellen zusammen verjoinen und dann dieses Dataset editieren. Es ist ein grosser Unterschied, ob ich Daten (mit SELECT) anzeigen lasse oder ob Daten manipuliert werden sollen. Datenmanipulation läuft immer auf die SQL-Befehle INSERT, UPDATE und DELETE hinaus. Diese Befehle können nur auf eine einzige Tabelle arbeiten!! |
Re: "Hängepartie" mit Access 2003
Ich hohle noch etwas weiter aus: Es handelt sich bei den Daten um Messergebnisse, die in verschiedenen Tabellen abgelegt werden. Die Ergebnisse liegen bereits vor und (auf Papier) und sollen digitalisiert werden.
Es wäre alles andere als praktisch wenn man beim abtippen auch noch ständig das Formular wechseln müsste. Es wäre wirklich das praktischste, alle Daten auf einem Formular abgeben zu können! In welche Tabelle dann was eingetragen wird ist ja wirklich schnurzpiepe. Nur scheinbar verkraftet Access 150 Eingabefelder auf einem Formular nicht :wall: |
Re: "Hängepartie" mit Access 2003
Zitat:
b.) alle Daten als CSV-Datei abtippen (lassen) und dann einen Import schreiben |
Re: "Hängepartie" mit Access 2003
Hallo,
läuft denn die Query überhaupt ? Zur Not kannst du ach ohne die datensensitiven Felder arbeiten, und die Daten "von Hand" in die Tabellen packen. Ist aber ein Heidenaufwand. Noch viel schlimmer wird das übrigens, wenn mehrere Nutzer was eintragen sollen. Zum "ist vorgegeben". Access2003 als Datenbank oder als Oberfläche. Wenn nur die Oberfläche gefordert ist, könntest du dem AG auch mit "Access Project" kommen. Dabei wird Access als Formular-Designer benutzt, die Daten selber liegen auf einem SQL-Server, z.B. auch auf dem 2005 Express. Per google "adp" (das ist die Endung bei access roject) findet man auch ziemlichweit vorn ein paar Bilder, wie das alles läuft. Heiko PS: Ich kenne das nur, weil ein Kunde ein damit entwickeltes Programm benutzt. |
Re: "Hängepartie" mit Access 2003
Ich glaube in diesem Fall kann man Access nun wirklich nicht die Schuld geben. So wie du das beschreibst würde jede andere DB auch den Geist aufgeben. Vermutlich läuft tatsächlich die Query einfach nicht. Und wenn die 10.000 Zeichen lang ist... dann ist der Wurm auf jeden Fall im DB-Design.
Frag mal jemanden der sich mit sowas auskennt. |
Re: "Hängepartie" mit Access 2003
Hallo,
oooch, das kommt schon vor ... und wenn es eine komplexe Query ist, wo noch nen komplexer View dranhängt. Sicher kann das dauern aber unterschätze ne DB ist. Naja: Access is ja keine DB ;) Heiko |
Re: "Hängepartie" mit Access 2003
Zitat:
Zitat:
Zitat:
Zitat:
Naja, mir ist es mit viel Geduld mittlerweile gelungen weitere acht Felder zur Datasource des Formulars hinzuzufügen, jetzt fehlen noch 10. Problem: Im Abfrage-Generator von Access kann ich kein Feld mehr angeben, weil einfach die Liste zu Ende ist :wall: Und manuell will ich in DER SQL-Query nicht mehr rumpfuschen... Was kann man denn da jetzt noch machen? |
Re: "Hängepartie" mit Access 2003
Zitat:
|
Re: "Hängepartie" mit Access 2003
Zitat:
|
Re: "Hängepartie" mit Access 2003
Hallo,
die Query von Hand verschlanken. Heiko |
Re: "Hängepartie" mit Access 2003
Zitat:
Ich sehe das Längenproblemder Query vor allem darin: Es würde ja prinzipiell ein simples SELECT * FROM... reichen, das eben für jede Tabelle. Aber: Access macht das nicht so, weil in jeder Datenbank der Primärschlüssel ist, über den Sie verbunden sind. Also wird jedes Feld EINZELN selektiert. Stelle ich es manuell auf * um, dann kommt Access scheinbar wegen der Primärschlüssel ordentlich durcheinander :stupid: Ach wenn ich mich mit Access nur ein klitzekleines bisschen auskennen würde. Oder noch besser das ganze mit Delphi basteln dürfte :wall: |
Re: "Hängepartie" mit Access 2003
Ich hätt da auch noch einen kleinen Tipp:
Wenn Access irgendetwas nativ nicht schafft, dann versuch es per VBA und dann mit ADO oder DAO von Hand zu machen, dann hast du viel mehr Möglichkeiten. Das ist dann praktisch als würdest du eine Datenbank mit Delphi ansteuern. Und dann vlt. noch die Query verschlanken. Bei mir klappen auch große Sachen auf diesem Weg gut. |
Re: "Hängepartie" mit Access 2003
OK, habe es geschafft die Query wie benötigt zu generieren. Die Abfrage läuft einwandfrei, wie das warme Messer durch die Butter! Im Bruchteil einer Sekunde ist das Ergebnis da.
Nur: Will ich das Formular abspeichern, hängt sich Access auf. Geniale Sache... An der Query kann es also nicht wirklich liegen, die macht keine Probleme. Aber woran dann :cry: |
Re: "Hängepartie" mit Access 2003
Problem gelöst: Wenn man das ganze als Abfrage speichert und dann im Formular als Recordsource diese Abfrage angibt anstatt die Query direkt läuft das ganze wie geschmiert :roll:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz