Hallo zusammen
Ich habe eine Adress DB in der ich eine 'Tbl Kennungen' und eine Tabelle 'Telef_Nrn' habe, damit ich den einzelenen Adressdatensätzen mehrere Kennungen oder Telefonnr. zuordnen kann.
Ich habe dann Pull-Down Felder erstellt in denen ich nach Kennungen oder Tel.Nr. suchen kann.
Im Hintergrund baue ich dann einen SQL-String zusammen. Bei der Kennung mußte ich ein InnerJoin nutzen.
Siehe:
FROM Tbl_ADRPRIV INNER JOIN Tbl_Kennung_Adresse ON
Tbl_ADRPRIV.Kennummer = Tbl_Kennung_Adresse.Adress_ID
Where (((Tbl_Kennung_Adresse.Kennung_ID) = " & Kom_Auswahl_Kennung.Column(2) & "))
Bei den Telef.Nr. einen LeftLoin
siehe:
FROM Tbl_ADRPRIV Left JOIN Tbl_Telef_Nrn ON
Tbl_ADRPRIV.Kennummer = Tbl_Telef_Nrn.Kennummer_Tel
WHERE (((Tbl_Telef_Nrn.TelefonNr) Like '*" & Text_TelefNr_suchen & "*'))
Beide funktionieren mit der Einschränkung, das ich dann in den gefilterten Sätzen keine Eigaben oder Änderungen an den Daten vornehmen kann.
Wie kann ich das ändern???
Hallo,
die Abfragen sind "nicht aktualisierbar" (---> gockeln!)
Was Du machst, ist ein Such/Filter-Vorgang.
Um Aktualisierungen durchzuführen, benutze Aktualisierungsabfragen ( Update.....), die direkt auf eine Tabelle wirken.
Danke für den Hinweis.
Leider ist er nicht zielführend da ich die Funktion Update nur auf eine Tabelle anwenden kann. Ich habe aber eine Abfrage die in der Tabelle Adressen alle Datensätze anzeigt, die über die Verbindung zur Tabelle Kennung die Datensätze Anzeigt, denen eine bestimmte Kennung zugeordnet wurde.
Das funktioniert.
Ich möchte dann aber zu einem dieser Datensätze gehen und dort beliebige Felder ändern. das ist mein Problem. ::)
Hallo,
wieso ist das nicht zielführend?
Es geht nicht, mehrere Tabellen auf einmal zu aktualisieren, bzw. DS aus left join zu bearbeiten...
Du musst Dir eine andere Strategie ausdenken.
Baue ein HFO mit einem UFO entspr. den Tabellenbeziehungen und schon geht es..
Hallo
Das mit dem InnerJoin u. dem LeftJoin war mir schon klar, deshalb ja meine Frage. ;D
Ich habe jetzt nur ein Verständnisproblem.
Wir ü-70 haben es nicht so mit dem Kürzeldeutsch. Deshab die Frage was ist ein HFO mit einem UFO.
Sollen das ein Hauptformular mit einem Unterformular sein?? Dann kann ich mal darüber grübeln wie ich das so lösen kann.
Schöne Grüße aus dem Norden
Ja,
hfo = hauptformular
ufo = unterformular
Hallo Honda
Da war meine Vermutung ja richtig.
Ich habe bereits ein Hauptformular mit einem Unterformular (in dem ich die Kennungen zuordne).
Ich werde jetzt weitergraben wie ich mein Problem in den Griff bekomme.
Ein Moin aus dem Norden
Ubbo
Hallo,
hast Du neben den Formularen auch Tabellen, die normalisiert und in Beziehung zueinander stehen?
Zeig mal einen Screenshot des Beziehungsfensters.
Hallo DF6GL
war etwas beschäftigt, deshalb erst jetzt meine Antwort.
Hier ein Screenshot der Beziehungen.
wenn ich nach Kennungen auswähle kann ich noch einmal zusätzlich einen Datensatz nur aus der erfolgten Auswahl
mit Suche nach Namen ausfiltern. Die Kennungen im Unterformular können geändert werden. Alle anderen Eintragungen nicht.
Bei den Kennungen kann ich über das 2. Kombinationsfeld noch bestimmen ob diese Kennung nur für den 1. (1) nur für den 2. (1) oder für beide (B) Namen gelten soll.
Das Kombinationsfeld 'Auswahl nach Kennungen' greift nur auf die Tabelle Tbl_Kennung_1 zu in der die ID des Adressdatensatzes mit den ID's der Kennungen verknüpft werden.
Ich hoffe Du kannst da etwas mit anfangen.
Gruß Ubbo aus dem Norden
Hallo,
ich überblicke jetzt nicht die gesamten Probleme, die Du hast.
Die gezeigten Beziehungen (beiden die Einstellung der referenziellen Integrität fehlt) sagen aus, dass es zu einer Adresse mehrere "Kennungen" geben kann.
Soweit ok, aber was hat das mit der Filterung und den nicht aktualisierbaren Abfragen zu tun?
Hallo,
ich würde bezweifeln, dass das Datenmodell überhaupt stimmt.
Kennung mit Adress_ID in Beziehungen, das kann doch nicht sein.
Versuche mal referenetielle Integrität einzustellen.
Die Kommunikatioseinträge müssen als je ein Datensatz in eine extra Tabelle.
Wieso gibt es immer 2 Namen ?
Auch das ist falsch.
Wieso ist an der Tabelle Tbl_Kennung_1 die _1 hinten angehängt ?
Das stimmt hinten und vorne nicht, so würde ich da mal nicht weiter machen.
Zeige mal ein vollständiges Beziehungsbild, so dass man alle Tabellen mit allen Feldern sieht.
Zitat von: DF6GL am Februar 11, 2020, 14:54:19
[...]die Einstellung der referenziellen Integrität fehlt[...]
Soweit ok, aber was hat das mit der Filterung und den nicht aktualisierbaren Abfragen zu tun?
Wenn die referenzielle Integrität nicht nur deshalb fehlt, weil sie nicht extra eingestellt wurde, sondern weil sie wegen Fehlende Primärschlüsseln gar nicht erstellt werden
kann, dann sind auch Abfragen nicht aktualisierbar.
PS/Edit: Auf den zweiten Blick ist in dem Beziehungsfenster-Screenshot klar erkennbar, dass dort keine Primärschlüssel definiert sind. - Somit können die Abfragen auch nicht aktualisierbar sein.
Hallo PhilS
Der entscheidende Hinweis auf meinen Fehler kam von Dir.
Das fehlen des Primärschlüssels in den Tabellen.
Den Primärschlüssel in der Tabelle Tbl_ADRESSEN (der Haupttabelle) und ich kann nach Kennungen filtern und dennoch die Datensätze bearbeiten.
Herzlichen Dank allen beteiligten.
Mein Problem ist gelöst.
Danke aus dem Norden.
ZitatMein Problem ist gelöst.
Wird bei dem Datenmodell aber nicht das letzte bleiben.
Hallo MzKlMu
Kennung mit AdressID in Beziehung läuft über eine weitere Tabelle.
Ich habe die Tbl_ADRESSEN mit einer ID. Ich habe die Tbl_Kennungen mit einer ID der Kennung und einem Feld in dem ich ablege ob der erste Name, der 2. Name oder beide Namen die Kennung haben. Das funktioniert.
Zur Frage warum es immer 2 Namen gibt:
Ich brauche für einen Datensatz natürlich 2 Namen da ja heute in eine Lebensgemeinschaft jeder seinen Namen behalten kann. alse brauche ich auch 2 Vornamen und 2 Nachnamen. Ob die bei jedem Datensatz genutz werden hängt von den Umständen ab.
Zur Tbl_Kennungen_1: Natülich kann die Tabelle auch ohne die_1 auskommen, das ist ja nur eine Benennung. die kann man halten wie man will. Das jetzt noch zu ändern ist mir zu zeitaufwendig durch alle Prozeduren, zumal die Datenbank läuft.
Trotzdem allen beteiligten herzlichen Dank für die Hinweise.
Mein DB läuft Gruß aus dem Norden Ubbo
Ps. Auf Wunsch stelle ich gern eine Bedienungsanleitung (als PDF )zur verfügung in der alle Funktionen erläutert werden.
Hallo,
der Aufbau ist trotzdem falsch. Die Namen müssen in eine extra Tabelle mit einem Fremdschlüssel zur Kennung. Die Namen werden in einem Unterformular zur Kennung angezeigt. Dann siehst Du auf einen Blick wer zu dieser Kennung gehört.
Auch die vielen Kommunikationseinträge lassen sich mit korrektem Aufbau der DB viel eleganter und einfacher anzeigen und pflegen.
Du brauchst eine Tabelle für die Kommunikationsarten (Tel priv., Tel. dienstl., Fax, Email, Internetseite, Autotel, usw. usw.) als je ein Datensatz.
In einer weiteren Tabelle werden die Arten der person zugeordnet und die entsprechenden Werte erfasst.
In Deine DB wäre noch viel zu tun, eine richtige Datenbank ist das so jedenfalls nicht (Sorry ;D. Das ginge wesentlich einfacher.
Im Anhang findest Du eine einfache Beispiel-DB wie man das mit den vielen Telefonnumern normalerweise macht. Schaue Dir auch mal die Beziehungen an.
Hallo MzKlMu
Du hast warscheinlich recht das die DB nicht der reinen Lehre enspricht.
Sie ist bei mir im laufe von ca 15 Jahren entstanden. Ich habe immer mal wieder etwas daran gemacht.
Viele Dinge darin habe ich nicht gemacht weil ich sie brauchte, sondern weil es mich gereitzt hat es zu machen.
Die DB läuft und ich werde jetzt mit über 70 Jahren nicht mehr anfangen und den graßen Wurf zu versuchen.
Alse immer schön locker und viele Grüße von der Nordsee
Ubbo
Noch ein Nachtrag.
Ich werde mir die angehängte DB natürlich ansehen und sehen was ich davon gebrauchen kann. Mann wird davon ja nicht dümmer. Und lernen im Alter hält den Kopf fitt; ;)
Gruß Ubbo
Hallo,
Zitat... immer schön locker und viele Grüße von der Nordsee
ich bin locker, es sind ja nur Hinweise.
Ich habe auch so eine Datenbank von 2002 (mit Access97 begonnen). Da würde ich nicht wagen die hier zu zeigen. ;D
Und ich arbeite gelegentlich immer noch mit dem Teil und würde da auch nichts ändern.
Ich kann Dich also durchaus verstehen. Du kannst ja aber auch die Hnweise benutzen, wenn Du vieleicht mal ein anderes Projekt mit einer Datenbank umsetzen willst. Wie Du ja auch angemerkt hast wird man ja nicht dümmer.
Zitatjetzt mit über 70 Jahren nicht mehr anfangen
Ich bin näher an den 80 als an den 70 und meine Motivation ist zum Teil einfach die Beschäftigung mit dem PC, damit man gerade wenn man älter wird, den Anschluß nicht verliert, denn es könnte ja noch richtig nützlich werden.
Liebst du auch den rauhen Wind
Wenn er schön von vorne bläst
Magst du die Menschen die hier sind
So ehrlich und echt
So rauh wie der Wind
Liebst du auch den rauhen Wind
Der das Meer nach vorne treibt
Der die Bäume zerzaust
Durch Kornfelder braust
Seit ewiger Zeit
Liebst du auch den rauhen Wind
....
Wenn ich Nordsee höre/lese, denke ich immer an dieses Lied. Wir haben über lange Jahre (12, immer im gleichen Haus) über Ostern Urlaub auf Nordstrand gemacht. Es war immer traumhaft, auch wenn das Wetter mal nicht so toll war. Leider ist die Fahrt für meine Frau zu lange geworden, sodass wir jetzt eher in der Nähe bleiben müssen.
In diesem Sinne schönen Gruß aus der heute sonnigen (13°) Pfalz an die Nordsee.
Hallo Klaus
Danke für die netten Zeilen!
Ich habe deine Worte auch so als Hinweis verstanden und im Kopf gehen die Gedanken doch schon mit dem Vorschlag spazieren ob ich ihn nicht doch noch umsetzten soll. ;D
Mal sehen was ich mache!
Ich finde es gut, wenn zwei 'alte Knochen' sich noch mit Dingen beschäftigen an die sich mach jüngere erst gar nicht herantrauen. ;) Gut für die grauen Zellen.
Der Liedtext ist mir so oder so ähnlich auch schon über den Weg gelaufen und es geht mir wie euch, ein Urlaub ohne Wasser (möglist viel) ist kein richtiger Urlaub.
Ich wünsche Dir und Deiner Frau noch viele schöne Tage.
Gruß aus Oldenburg (7° und Sturm) ;)
Ubbo