Hallo liebe Access-Könner,
ich arbeite mich im Rahmen meiner Diplomarbeit in Access 2010 ein. Ich soll hier eine kleine Datenbank erstellen.
Das Erstellen und Verknüpfen (Beziehungen) hab ich noch alleine geschafft.
Ich habe ich ein Formular erstellt mit dem ich anhand von zwei Kriterien, die man im Kombinationsfeld auswählen soll, die erforderlichen Datensätze in der Abfrage bekommt.
Um dies zu realisieren habe ich in der Abfrage das Feld "Kriterium" über den Generator mit den zwei Kombinationsfeldern verknüpft.Je Kriterium ein Kombi-feld.
Leider funktioniert das nicht. Es werden weitere Spalten angezeigt, die ich nicht in der Abfrage festgelegt habe und dazu sind keine Einträge vorhanden.
Wenn ich die Kriterien von Hand eingebe, funktioniert die Abfrage.
Ich habe den Eindruck,dass es mit dem Kombinationsfeld zusammen hängt.
Kann mir jemand einen Tipp geben, wie ich das Lösen kann? Ich habe gestern etwa drei Stunden probiert, leider ohne Erfolg.
Vielen Dank im Vorraus.
Chris
Hallo,
und wie sieht die Abfrage aus?
Grossposting gewöhnst Du Dir am besten gleich wieder ab, es ist hier unerwünscht (siehe Regeln).
http://www.office-loesung.de/ftopic512369_0_0_asc.php (http://www.office-loesung.de/ftopic512369_0_0_asc.php)
Hallo,
ich wusste nicht,dass es ein Problem ist auf mehreren Wegen nach der Lösung meines Problems zu suchen.
Entschuldige. Ich werde es künftig beachten.
Ich hoffe es möchte trotzdem jemand helfen.
Zur Frage:
SELECT Bundesland.Bundesland, [Gesetze Verordnungen].*, [Gesetze Verordnungen].Link, Anwendungsfall.Anwendungsfall, [Anerkannte Regeln der Technik].[Anerkannte Regeln der Technik], [Anerkannte Regeln der Technik].Typ, [Anerkannte Regeln der Technik].Link
FROM Anwendungsfall, [Anerkannte Regeln der Technik], Bundesland INNER JOIN [Gesetze Verordnungen] ON Bundesland.B_ID = [Gesetze Verordnungen].B_ID
WHERE (((Bundesland.Bundesland)=[Formulare]![Abfrage_Formular]![Kombi_Bundesland]) AND ((Anwendungsfall.Anwendungsfall)=[Formulare]![Abfrage_Formular]![Kombifeld Anwendung]));
Im Anhang eine Übersicht.
Viele Grüße
Chris
[Anhang gelöscht durch Administrator]
Hallo,
in der SQL-Ansicht des Abfrageentwurfes sollte Folgendes stehen:
SELECT Bundesland.Bundesland, [Gesetze Verordnungen].*, [Gesetze Verordnungen].[Link], Anwendungsfall.Anwendungsfall, [Anerkannte Regeln der Technik].[Anerkannte Regeln der Technik], [Anerkannte Regeln der Technik].[Typ], [Anerkannte Regeln der Technik].[Link]
FROM Anwendungsfall, [Anerkannte Regeln der Technik], Bundesland INNER JOIN [Gesetze Verordnungen] ON Bundesland.B_ID = [Gesetze Verordnungen].B_ID
WHERE (((Bundesland.Bundesland)=[Forms]![Abfrage_Formular]![Kombi_Bundesland]) AND ((Anwendungsfall.Anwendungsfall)=[Forms]![Abfrage_Formular]![Kombifeld Anwendung]));
btw:
KEINE reservierten Wörter benutzen ( Typ,Link) !
KEINE Leer- oder Sonderzeichen in Namen benutzen !
Warum zählst Du neben dem Sternchen zusätzlich nochmal bestimmte Spalten in der Select-Liste auf?
Außerdem ist kurz und knackig besser bei der Benamsung von Feldern (Spalten) als Roman-Erzählungen ;)
"Anerkannte Regeln der Technik" --> "Dok_Nr"
Hallo,
leider hat der SQL nicht geholfen. Wenn ich die Abfrage starte werden keine Datensätze angezeigt.
Gibts noch weitere Gründe die in Frage kommen?
Dankeschön.
HAllo,
Gründe gibt es viele:
Formular nicht geladen, bzw. es gibt die Txtfelder nicht.
Die Textfelder sind leer
Die eingegebenen Werte existieren nicht (auch in Kombination)
Die Kombifelder sind falsch eingestellt.
.
.
.
Guten Morgen,
ich habe das befürchtet. Ich habe wie gesagt den Verdacht, dass ich das Kombinationsfeld falsch eingestellt habe. Nur was?
Der SQL ist übrigens durch den Ausdrucksgenerator entstanden (siehe Anlage).
Ich dachte wenn ich in der Abfrage das entsprechende Kombinationsfeld mit dem Ausdrucks-Generator "verlinke" müsste es gehen.
Irgendwie funktioniert das aber nicht.
Das Ergebnis der Abfrage ist als ob in den Feldern nichts steht. Offenbar übergibt das Kombinationsfeld seinen Inhalt nicht an das Abfragekriterium.
Was kann ich machen?
Wie ich an das Kombinationsfeld ran gegangen bin sieht man ebenfalls in der Anlage.
Vielen Dank nochmal.
[Anhang gelöscht durch Administrator]
Was ich eigentlich will ist, dass der Inhalt den ich Kombinationsfeld (oder ein anderes Dropdown-feld) auswähle einfach in der Abfrage als Kriterium erscheint und die Abfrage die Datensätze entsprechend meiner Tabellenbeziehungen angezeigt werden.
Wenn ich von Hand z.B. "Hessen" im Anuswahlkriterium eingebe, dann funktioniert die Abfrage.
Nur die Übergabe aus dem Kombinationsfeld funktioniert nicht.
Vielen Dank im Vorraus. Ich hoffe ich/ihr/Du können mein Problem lösen...
Hallo,
lade lieber die DB hier hoch, die PDFs helfen nicht viel.
Am besten Du machst eine Beispieldb (Format Access2003 !!, A2010 haben noch nicht so viele) und lädst diese hier hoch.
Leider lässt sich die Datenbank aufgrund 2010 Features nicht konvertieren. Die Datenbank ist auch als zip zu groß zum upload.... M..t!!!
Hallo,
ZitatAm besten Du machst eine Beispieldb
Eine Beispieldb in A2003 neu machen, meinte ich damit.
Außerdem sollte die DB mit dem Access Diensprogramm komprimiert werden, was man sowieso regelmäßig tun sollte.
Zitataufgrund 2010 Features
Bei diesen neuen Features bin ich ohnehin skeptisch, da ist nach meiner Auffassung
keines dabei was man verwenden sollte.
Entschuldigt bitte die lange Reaktionszeit. Ich konnte die db nicht so schnell in Access 2003 neu machen.
Aber im Anhang Folgendes.
Auch hier funktioniert die Abfrage nicht nach Auswahl im Kombinationsfeld.
Ich hoffe es kann noch jemand helfen....
[Anhang gelöscht durch Administrator]
Hallo,
anbei...
[Anhang gelöscht durch Administrator]
Hi DF6GL,
vielen Dank für Deine Mühe. Aber irgendwie ist was faul. Bei mir funktioniert die Abfrage nach Auswahl im Kombinationsfeld immer noch nicht....
Ich habe gesehen was du in der Abbfrage umgeschieben hast...
Ich verstehe so langsam die Welt nicht mehr...
Korrektur... Die Abfrage funktioniert... DAAANKE. Die Aktualisierung findet aber nicht statt wenn ich auf den Button gehe.
Ich muss im Kombifeld die Auswahl treffen und die Abfrage neu ausführen.
Geht das auch automatisch? Also im Kombifeld auswählen und dann wird die Abfrage mit den Werten im Kombifeld neu ausgeführt und angezeigt.
Viele Grüße
PS: Was hab ich mit dem Zauberstab falsch gemacht? Warum wird SQL nicht gleich richtig generiert?
Warum wurde die Anfrage nicht korrekt ausgeführt?
Hallo,
zunächst: diese ganze Vorgehensweise mit Öffnen der Abfrage ist nicht zielführend (wobei ich das Ziel gar nicht kenne..)
Wenn beim Auswählen eines Kombifeld-Wertes die Abfrage jeweils erneut geöffnet werden soll , dann muss eben dafür gesorgt werden:
Private Sub Befehl8_Click()
On Error GoTo Err_Befehl8_Click
DoCmd.Close acQuery, "abfrage_1"
Dim stDocName As String
stDocName = "Abfrage_1"
DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_Befehl8_Click:
Exit Sub
Err_Befehl8_Click:
MsgBox Err.Description
Resume Exit_Befehl8_Click
End Sub
Private Sub Kombinationsfeld0_AfterUpdate()
Befehl8_Click
End Sub
Private Sub Kombinationsfeld2_AfterUpdate()
Befehl8_Click
End Sub
Hallo nochmal,
wo wird der Code eingefügt? Ich habe ihn bei der Abfrage eingefügt. Das hat natürlich ins leere geführt.... Fehlermeldung.
Ich weiß, langsam wird kindisch. Aber ich hätte mir das Einarbeiten in Access einfacher vorgestellt...
Warum funktioniert die Variante mit dem Zauberstab (Generator ) nicht? Das wäre so schön einfach...
Manches hat sich geklärt.Z.B. wo der Code hin kommt...
Ich musste allerdings was an der Datenbank ändern.Die Beziehungen waren schlecht gewält.
Ich habe versucht in SQL Deine Vorlage umzubauen, bzw. mit dem Generator zu helfen.
ich weiß auch warum es erst nicht ging... Ich habe zu wenige Felder in der Abfrage ausgewählt. z.B. fehlten die n:m Beziehungen.
Ich lade die DB nochmal hoch weil es wieder nicht klappt mit dem Aktualisieren.
Deinen VB Code habe ich ebenfalls schon eingefügt. Alles ohne großen Erfolg.
Ich bin am verzweifeln... Was habe ich da nur angefangen...
[Anhang gelöscht durch Administrator]
Hallo,
"Die Beziehungen waren schlecht gewählt"
in der Tat. Deshalb habe ich ja eine Änderung an den Beziehungen vorgeschlagen.
Fehler ist/war: Du musst bei "Sonderbau" (auch) mit den ID-Feldern arbeiten ...
SELECT [Bundesland(B)].B_ID, [Sonderbau(S)].S_ID, [Sonderbau(S)].Sonderbauart, [Reg_tec(R)].Reg_tec, [Reg_tec(R)].Art, [Reg_tec(R)].Link, [Gesetze(G)].Gesetze, [Gesetze(G)].Link
FROM [Reg_tec(R)] INNER JOIN ([Sonderbau(S)] INNER JOIN (([Bundesland(B)] INNER JOIN [Gesetze(G)] ON [Bundesland(B)].B_ID = [Gesetze(G)].B_ID) INNER JOIN [n:m_G_S_R] ON [Gesetze(G)].G_ID = [n:m_G_S_R].G_ID) ON [Sonderbau(S)].S_ID = [n:m_G_S_R].S_ID) ON [Reg_tec(R)].R_ID = [n:m_G_S_R].R_ID
WHERE ((([Bundesland(B)].B_ID)=[Forms]![Formular_Abfrage1]![Kombinationsfeld11]) AND (([Sonderbau(S)].S_ID)=[Forms]![Formular_Abfrage1]![Kombinationsfeld13]));
Und bitte: Eliminiere ÜBERALL in den (Objekt-)Namen die Sonderzeichen und benenne die Tabellen und und Tabellen/Formular-Felder entspr. ihrer inhaltlichen Bedeutung...
Hallo,
das Datenmodell hinkt noch an mehr Stellen. Wieso gibt es bei den Gesetzen Doppelungen, z.B. Ind, IndRL, InduRL; LBO usw. völlig unlogische Einträge. Die Doppelungen deuten für mich daraufhin, dass hier Gesetze den Bundesländern zugeordnet werden. Das wiederum bedeutet, dass eine Tabelle fehlt zur Zuordnung der Gesetze zu den Bundesländern. n:m zwischen BL und Gesetz.
Weiterhin sollten für die Beziehungen keine Textfelder verwendet werden, sondern die Paarung Autowert-LongInteger. Jede Tabelle sollte einen Autowert haben als Primärschlüssel der dann auch für die Beziehungen verwendet wird.
Was die Abfrage betrifft, so ist diese in der Form gar nicht notwendig. Man öffnet im Datenbankbetrieb keine Abfragen, sondern Formulare. Aber das hat Franz auch schon angemerkt.
Und verzichte auf Tabellenamen mit Klammern () und so etwas "n:m_G_S_R", das schreibt man etwas verürzt eher so: "Ges_Sonderb_Reg".
Bevor das Datenmodell nich klar ist, solltest Du Dich nur im die Tabellen kümmern, Formulare etc. werden noch nicht benötigt.
Erkläre also bitte erst mal die Aufgaben der DB und die Zusammenhänge zwischen Gesetz, Bundesland, Sonderbauarten und Techn Regeln.