Access Felder Verwendung

Hallo zusammen,
ich muss eine bestehende Datenbank anpassen bzw. verändern. Dabei habe ich jedoch folgendes Problem: Ich habe ein Feld in einer Tabelle, wo Daten drinstehen und ich nicht nachvollziehen kann, wie diese dorthin kommen. D.h. es gibt kein Feld in einem Formular wo die Daten eingegeben werden. D.h. diese werden wie auch immer automatisch befüllt. Ich finde aber in der Entwurfansicht keine Hinweise, wie dies erfolgt, noch in der Anfügeabfrage, noch im Code-Generator, noch in der Ansicht in denen die Beziehungen dargestellt werden.
Gibt es eine Möglichkeit herauszufinden, wo ein Feld innerhalb einer Datenbank verwendet wird?
Ich habe bei dieser Datenbank eh das Problem, dass ich nicht alle Formular im Navigationsbereich einsehen kann, obwohl „Alle Access Objekte“ ausgewählt sind. Gibt es irgendwo noch ein Häkchen, was ich setzen muss, um tatsächlich alle Objekte sichtbar zu machen?

Hi,
stehen da wirklich Daten drin?
Es wäre nützlich, wenn du den Namen des Feldes nennen könntest, bei replizierten Datenbanken verwaltet Access zusätzlich (meißt unsichtbare) Felder.

Ob Felder in Eingabemasken oder in Abfragen vorkommen ist unerheblich, entscheidend sind die Datentabellen.

  • Studiere zuerst das Datenmodell! evtl. musst du bei Access „Alle Beziehungen anzeigen“ um alles sehen zu können.
  • wechsle in die Objekt-Tabellen-Ansicht und sieh dir die Tabellen an
  • Unter Extras -> Optionen kannst du ausgeblendete und Systemobjekte anzeigen lassen (jemand könnte ja ein „echtes“ Datenfeld oder eine Tabelle manuell zum Systemobjekt formatiert haben)

Und schließlich noch ein Tipp!
Unter Extras -> Analyse -> Dokumentieren
kannst du ein Dokument erstellt lassen (lässt sich auch nach RTF-Word exportieren), in dem die gesamte Datenbank dokumentiert ausgegeben wird, also welche Tabellen, Abfragen, Berichte, Formulare…; welche Felder eine Tabelle enthält, welche Indizes verwaltet werden…; und soweit du die Berechtigung hast auch die VBA-Quellcodes.

In diesem Dokument könntest du mit einer einfachen Textsuche nach deinem mysteriösen Datenfeld suchen.

PS.: Access beherscht keine Stored-Procedures wie andere Datenbanken. Um ein Feld mit Daten zu füllen muss entweder ein Vorgabewert gesetzt sein (z.B. Autowert, Heute(),…) oder im Eingabeformular wird per VBA ein Wert unsichtbar berechnet und eingetragen.

Ich hoffe das hilft erst einmal weiter.

Leider keine Ahnung…

Salu

Ausgeblendete Objekte und Systemobjekte sind in der Regel ausgeblendet. Bei Access 2010 klicke mit der rechten Maustaste oben im Navigator auf ‚Alle Access-Objekte‘, wähle Navigationsoptionen und setze im Bereich Anzeigeoptionen die Hacken.

Die Werte in einem Feld können auch automatisch erzeugt werden. Ein Beispiel wäre der Felddatentyp ‚AutoWert‘. Oder es könnte eine Formel im Standardwert drin stehen. Wenn du die entsprechende Tabelle in der Entwurfsansicht öffnest, dann siehst du was in den Feldern abgefüllt werden darf bzw abgefüllt wird.

Und sonst gibt es noch die Möglichkeit von einer anderen db in deine Datenbank zu schreiben. 123.mdb kann verlinkt sein mit 456.mdb.

Um was für Daten handelt es sich? Datum, Zahlen, Text?

Viel Erfolg
Gruss

Danke das hat mir geholfen.
Zumind. habe ich mir so die Datenbank mal „ausgedruckt“, allerding habe ich die Systematik meiner mir vorliegenden Datenbank noch nicht durchschaut. Aber trotzdem nochmals vielen Dank.

Hallo,
vielen Dank für deine Antwort.

Es handelt sich um Zahlen.
Was ich halt komisch finde. Das Feld taucht in einer Auswahlabfrage auf, die widerrum auch auf einer Abfrage basiert. D.h. das Feld wird in Abfrage 1 ausgewählt und soll in Abfrage 2 angezeigt werden. Aber ich finde die Abfrage 1 nicht.
Viele Grüße

Am Besten für die Suche nach einem Feld schlage ich vor, ein Modul auszuwählen und dort in der Entwurfsansicht mit der Suchfunktion das gewünschte Feld mittels String oder Teilstring zu suchen und zwar über alle Module resp. ganzes Projekt. Falls du nicht fündig wirst kannst du mir eine Kopie der mdb senden. Ich hoffe meine Angaben helfen dir weiter.
Gruss Martin

Warum löschst Du das Feld nicht einfach und schaust, was dann passiert ? (Vorher MDB unter anderen Namen sichern !)
Gruß, Peter ([email protected])

Hallo,
entschuldige bitte, dass ich so spät antworte. Ich wollte drüber nachdenken und dann ist es „hinten runter gerutscht“.
Die Suche in Access war soweit ich mich erinnere, tatsächlich manchmal unzuverlässig, aber es gibt Addins, die evtl. besser funktionieren. Da musste googeln. Dann gibts da noch Extras-Analyse-Dokumentierer: Du kannst dir alles in eine RTF-Datei ausgeben lassen und den Text durchsuchen.
Mit einem „Code-Generator“ kenne ich mich nicht aus, gabs in AC2000 noch nicht. Sowas ist m.E. nicht viel mehr als ein Kot-G… Arbeite dich lieber in den VB-Editor ein, dort kannst du den VB-Code auch durchsuchen. Ansonsten musst du eben rausfinden, was die DB tut:

  1. Wann wird der Wert geändert (nach Benutzeraktion, beim 1. Öffnen der DB morgens …)
  2. Wo (Abfrage, Formular, Bericht)
  3. Wie (SQL, Makro, VBA-Prozedur)
  4. die Code-Stelle
    Notfalls kannst du hardcoremäßig alles mögliche weglöschen, zB erstmal alle Abfragen. Wenn der Wert immer noch geändert wird, musst du woanders suchen. Wenn nicht, ist eine Abfrage mindestens in den Ablauf verwickelt. Also löschst du jetzt zB alle Abfragen, die mit A bis K anfangen. usw.
    Voraussetzung ist natürlich, dass du auf ner Testversion arbeitest. Das sollte sowieso klar sein (Front- & Backend)!
    In Formularen kann der Code über ganz verschiedene Ereignisprozeduren verteilt sein (Before-/AfterUpdete, Current, Beim Öffnen…
    Wenn die Daten in einer Server-DB stecken, kann sich dort noch Code verstecken.

Eine Möglichkeit, die Verwirrung stiften kann ist, wenn ein Steuerelement anders heißt als das Tabellenfeld.
Es gibt ein paar ganz tückische Möglichkeiten:

  • das Feld tritt nicht mit Namensnennung auf sondern zB als Objektname.fields(i) (i: Zahl oder Laufvariable) oder fields(„Adresse“ & i)
  • das Feld wird mit Code in einer eingebundenen MDE geändert. Das ist aber schon eher ne Verschleierungstaktik mit der der Entwickler der DB sich schützt.

Eine Möglichkeit, den genauen Punkt der Änderung festzustellen, ist eine zusätzliche Gültigkeitsregel. Im VB-Editor kannst du das Überwachungsfenster öffnen und einen Überwachungsausdruck anlegen.

So, das ist, was mir spontan einfällt - aber keine systematische Handlungsanweisung. Hoffe, es verwirrt dich nicht.

Sieht nach Arbeit aus.
Nimms leicht, bestimmt wirst du was lernen.
Viele Erfolg
Thomas

Hallo !

Ich kann dir bei solchen Problemen kaufbare Tools wie
Total Access Analyzer empfehlen. Diese ermöglich Dir eine Suchfunktion über die ganze mdb. Leider habe ich entsprechende Freeware noch nicht gefunden.

MfG
Christof