online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Sarah2008 vom 23.07.2020, 12:59 Options

Access: mehr als 256 Spalten

Hallo Community,

ich sitze nun seit ein paar Tagen vor einem großen Problem:
Es handelt sich um eine Art Fragebogen mit rund 500 Fragen. Access bietet allerdings nur maximal 256 Spalten.

Deshalb habe ich mir überlegt sie in mehreren Tabellen aufzuteilen und sie über eine Indexspalte zusammenzubehalten.
Wie löse ich allerdings das Problem, wenn ich einen neuen Datensatz einfüge? Es müsste automatisch ein neuer Datensatz in allen Tabellen angelegt werden (mit dem selben Index). Das selbe gilt auch für das Löschen.

Wichtig wäre mir, dass ich auf keinen Fall die Spaltenanzahl reduzieren muss. Es muss doch auch hierfür eine Lösung geben...

Vielen Dank für eure Hilfe schon im Voraus!


Antwort schreiben

Antwort 1 von RalfH vom 23.07.2020, 13:11 Options

Hallo Sarah2008,
Die Idee von dir, in verschiedenen Tabelle zu arbeiten ist super.
Gerade das macht ein relationales Datenbanksystem ja aus.
Allerdings solltest Du hier etwas über die Beziehungen der Tabellen wissen, und VBA wäre auch von Vorteil für Dich.

Die Fragen kannst du ja Katalogisieren und dadurch halt auf die Tabellen verteilen.

Den Index oder besser gesagt den Primärschlüssel kannst Du über VBA an die betreffenden Tabellen verteilen.

Gruß Ralf

Antwort 2 von Sarah2008 vom 23.07.2020, 14:11 Options

Hallo Ralf,

dachte ich mache eine 1:1 Beziehung zwischen den Tabellen. Mein Bsp.: Ich habe Tabelle1 und Tabelle2. Beide haben die Spalte IndexID. Wenn ich eine Abfrage (bzw. ein Formular) mache mit der Spalte1 bis Spalte3 von Tabelle1 und von Spalte1 bis Spalte3 von Tabelle2, dann funktioniert das auch. Allerdings kann ich in einer solchen Abfrage keinen neuen Datensatz einfügen. Außerdem weiß ich nicht wie die IndexID von Tabelle1 automatisch in die IndexID von Tabelle2 geschrieben werden kann.

Grüße
Sarah

Antwort 3 von RalfH vom 24.07.2020, 10:30 Options

Hallo Sarah,

Damit Du die Fragen auch auswerten kannst, muss eine Plausibilitätsprüfung mit eingebaut werden, die darauf achtet, dass auch alle Felder ausgefüllt sind.
Diese Prüfung und auch die Übergabe des Primärschlüssels(ID) kannst Du an einem Button legen.
Die erste Tabelle sollte den Primärschlüssel automatisch erhalten, also auf Autowert im Tabellenentwurf einstellen.

Der Button soll BEI KLICK folgendes tun:

Beispiel:

Private Sub DeinButton_Click()

' Befüllen einer Variable mit der ID

dim a as Integer
a= forms!DeinFormular1!DeinFeldmitID


'Prüfen ob die Felder befüllt sind

If isempty(me!DeinTextfeld) = true then
msgbox " Bitte geben Sie die Notwendigen Daten ein: "
me!DeinTextfeld.setfocus

elseif isempty(me!DeinnächstesTextfeld) = true then
msgbox " Bitte geben Sie die Notwendigen Daten ein: "
me!DeinnächstesTextfeld.setfocus
' den elseif Block für alle Felder erstellen
endif


' wenn alle Felder ausgefüllt sind, das aktuelle Formular schliessen, damit der Datensatz gespeichert wird 

und der Bildschirm nicht überladen werden kann, und nun das nächste Formular laden und den Primärschlüssel übergeben.

docmd.openform("DasnächsteFormular",acNormal)
forms!DasnächsteFormular!FeldwodieIDreinkommt=a
end sub


Man kann das ganze auch über eine Schleife machen, aber so würde es vom Prinzip her gehen.
Gruß Ralf

Ähnliche Themen

Access Datenbank 2000 mit Access 1997 öffnen
jam85385  02.05.2007 - 226 Hits - 1 Antwort

Access-Abfrage (mehrere Spalten durchsuchen)
stirlitz  18.10.2007 - 82 Hits - 4 Antworten

Access: Aus Spalten Zeilen genrieren
SteffenOIOIOI  09.06.2008 - 13 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026