MS Access DB "Problem"

  • #1
A

archdruid

Bekanntes Mitglied
Themenersteller
Dabei seit
21.03.2005
Beiträge
106
Reaktionspunkte
0
Ort
Nürnberg/Mannheim
hallo zusammen,

ich stehe momentan etwas auf dem Schlauch,..ja ich weiss sollte man runter geht damits besser geht ;D , ich schreibe gerade an einer DB unter MS Access 2003.

Ich habe folgende Haupttabelle:
Code:
CASNr | Chemikalienname | Synonym1 | Synonym2 | Synonym3 | Banned | Restriction1 | Restriction2 | Restriction3 | ......
Zahl   FreiText   FreiText   FreiTExt   FreiText true/false zahl      zahl      zahl

Nun gibt es eine weitere Tabelle die mir den Text zu den Restriction1 Staties speichern soll

Code:
ResID  | Bezeichnung
autowert | freitext

die haupttabelle wird über ein Formular gefüllt, bei dem ich die Restrictionstaties als text auswähle aber in der tabelle die ResId speichere. So lange ich mir die eingetragenen Datensätze über das eingabe formular ansehe sehe ich den eingetragenen text.

nun benötige ich aber für verschiedene abfragen die möglichkeit mir im resultset nicht nur die resid anzugeben sondern den text.

Also habe ich mir folgende Abfrage überlegt, welche aber nicht funktioniert.
Code:
SELECT ch.CASNr, ch.CHemikalienname, ch.Synonym1, ch.Synonym2, ch.Synonym3, ch.Banned,
(SELECT res.Bezeichnung FROM Restriction AS res, Chems As ch WHERE res.RestrictionID = ch.Restriction1) AS Restriction1, (SELECT res.Bezeichnung FROM Restriction AS res, Chems As ch WHERE res.RestrictionID = ch.Restriction2) AS Restriction2, (SELECT res.Bezeichnung FROM Restriction AS res, Chems As ch WHERE res.RestrictionID = ch.Restriction3) AS Restriction3, (SELECT res.Bezeichnung FROM Restriction AS res, Chems As ch WHERE res.RestrictionID = ch.Restriction4) AS Restriction4
FROM Chems AS ch, Restriction AS res, Reason AS rea
WHERE ch.CASNr Like 50000;

Normalerweise kann ich ja jedes Feld im Resultset durch eine eigene Select-Anweisung erzeugen. Diese abfrage liefert mir momentan folgenden fehler
Code:
Höchstens ein Datensatz kann von dieser Unterabfrage zurückgegeben werden. (Fehler 3354)
obwohl ein recordset exestiert.

momentan bestehen von jedem restrictionfeld der haupttabelle eine beziehung zur hilfstabelle, da ich ja für jedes feld die möglichkeit brauche auf gleichheit zu prüfen.

Ich denke fehlt momentan mal wieder nur der entscheidende hinweis, dann wird sich alles klären , aber diesen suche ich gerade mal wieder bis zur vergasung ;) hoffe das mir einer helfen kann.

thanks and regards
 
  • #2
hiho,

naja habe jetzt ne lösung gefunden, diese ist zwar irgendwie auch noch nicht das gelbe vom ei aber sie funktioniert.

mein workaround besteht aus vielen hintereinander gereihten update anweisungen, jede aktualisiert lediglich nur eines der in frage kommenden Felder. Aufgerufen werden diese updates, über eine vba button.

habe dann zwar eine art endlosschleife, diese lässt sich aber umgehen wenn ich folgende optionen deaktiviere:

Code:
Extras -> Optionen -> Bearbeiten/Suchen -> Bestätigen -> Datensatzänderungen und Aktionsabfragen

regards
 
Thema:

MS Access DB "Problem"

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben