Hallo zusammen - Wer kann helfen ?
Ganz simpler Aufbau 2 Tabellen
Tabelle 1 beinhaltet die Ortschaften
Tabelle 2 die Strassen
Über die Orte_ID wurde eine 1 zu n Beziehung hergestellt.
Beide Tabellen laufen über 2 Abfragen zwecks Sortierung aufsteigend.
Kann man zwar anders machen - weiß aber grade nicht wie ? Ist aber auch nicht das Hauptproblem
Im Kombifeld werden die Orte dargestellt (2.te Spalte - die 1.te Spalte auf 0 Breite gesetzt)
Im Unterformular werden die Strassen der gewählten Orte dargestellt (gefiltert nach Aktualisierung des Kombifeldes)
Also zum jeweiligen Ort die richtigen Strassen. Sollten nun weitere Strassen hinzu kommen so war der Gedanke
den jeweiligen Ort zu filtern und somit zum Ort eine neue Strasse einzutragen (z.B. Neubaugebiet wird erschlossen)
Beim Aufruf des Formulars werden mir nun Strassen im UFo angezeigt (gefiltert auf eine Ortschaft)
Die Ortschaft sehe ich aber nicht, das Kombifeld ist leer (Spalte 2) (Spalte 1 ist ja auf Null Breite)
Wähle ich nun den Ort dazu habe ich diesen zwar in der Anzeige des Kombifeldes. In der dazugehörigen Tabelle jedoch wird die ID gespeichert - Tsss
Beim nächsten Aufruf des Formulars habe ich nun in der Kombifeld Auswahl die Orte stehen sowie eine ID
Wer kann mir bei diesem Phänomen etwas zur Hand gehen - Wäre echt dankbar
Viele Grüße Ätsch (H)ans
Hallo,
das würde ich etwas anders lösen.
Im Hauptformular zeigst Du die Orte an und im ungefilterten Ufo die Straßen.
Hafo und Ufo werden über die Schlüsselfelder verknüpft. Dann werden automatisch nur die zum Ort passenden Straßen im Ufo angezeigt.
Da muss nichts gefiltert werden.
Neue Straßen zum Ort werden über das Ereignis "Bei nicht in Liste" erfasst.
Siehe hierzu:
FAQ 4.13 Kombinationsfeld - Eintrag hinzufügen (http://www.donkarl.com?FAQ4.13)
Hallo Klaus,
wenn ich Dich richtig verstanden habe sollte ich das Kombifeld lediglich dazu verwenden den Ort einzustellen.
Ungefiltert erhalte ich dann aber doch alle Strassen. Auch die Strassen die nicht in diesem Ort sind.
Da habe ich jetzt ein Verständnisproblem. Wie erfolgt dann die Beziehung zu "genau diesem" Ort der im Kombifeld
angezeigt wird.
Und ich vermute mal das ich das Problem mit der ID dann aber immer noch habe.
Außer im beiliegenden Link ist die Lösung versteckt. Denn muss ich mir aber erstmal in Ruhe zu Gemüte führen.
Dennoch erstmal herzlichen Dank
Ätsch (H)ans
Hallo,
Zitatsollte ich das Kombifeld lediglich dazu verwenden den Ort einzustellen.
nein, mit dem Kombi wird die Straße zum Ort eingestellt. Bei Bedarf kann auch über dieses Kombi eine neue Straße erfasst werden.
ZitatWie erfolgt dann die Beziehung zu "genau diesem" Ort der im Kombifeld
angezeigt wird.
Das erfolgt über die Verknüpfung von Hafo und Ufo über die Schlüsselfelder. Das ist dann wie gefiltert.
ZitatUnd ich vermute mal das ich das Problem mit der ID dann aber immer noch habe.
Was genau hast Du mit der ID für ein Problem ?
Die ID soll auch gespeichert werden, nicht der Ort selbst.
Zeige bitte mal ein Bild des Beziehungsfensters.
Hallo Klaus,
anbei die Beziehungen der beiden Tabellen.
Gegen die ID habe ich grundsätzlich nichts. Diese ist eindeutig und kann somit auch wieder zum entsprechenden Text gemacht werden. Sprechender ist es für mich (da ich ja kein Computer bin)
dennoch wenn ich Text vor mir habe.
Wenn ich "Endersbach" lese kann ich damit besser umgehen wie wenn da eine "8" steht.
Es wäre mir trotzdem lieber über das Kombifeld den Ort einzustellen und die richtigen Strassen zu diesem eingestellten Ort zu filtern und ggf. auch eine (oder mehrere) Strassen diesem Ort zuzuordnen.
Das müsste doch auch machbar sein ...... ???
Gruss Ätsch (H)ans
PS: Die Ausführungen die im Link hinterlegt sind habe ich noch nicht gesichtet
Hallo,
ZitatWenn ich "Endersbach" lese kann ich damit besser umgehen wie wenn da eine "8" steht.
Das ist eine Frage der Einstellung, im Regelfall kriegt man die ID in Formularen überhaupt nicht zu sehen.
ZitatEs wäre mir trotzdem lieber über das Kombifeld den Ort einzustellen und die richtigen Strassen zu diesem eingestellten Ort zu filtern und ggf. auch eine (oder mehrere) Strassen diesem Ort zuzuordnen.
Wie ich bereits geschrieben habe, nimmt man für den Ort ein Hauptformular und für die Straßen ein Unterformular. Hafo und Ufo werden über die ID verknüpft. Da wird nichts gefiltert. Die Verknüpfung von Hafo und Ufo zeigt
automatisch nur die zum Ort gehörenden Straßen.
Zum Suchen (nicht filtern) des Ortes baut man im Hafo ein ungebundenes Kombifeld ein.
Über das Kombi zur Auswahl der Straßen kann man bei Bedarf auch neue Straßen eingeben. Siehe Link in meiner 1. Antwort.
Hallo,
Nachtrag:
Die von Dir angelegt Beziehung ist falsch rum.
In den Ort muss ein Fremdschlüsel zur Straße, denn die gleiche Straße kann es in mehreren Ortschaften geben und das ist bei Deinem Aufbau nicht möglich.
Siehe Bild.
Mein obiger Vorschlag bezieht sich bereits auf meinen Beziehungsvorschlag. Den falschen Aufbau hatte ich vorhin nur übersehen.
@Klaus,
das würde aber bedeuten, dass jeder Ort maximal einen Straßennamen enthält - ist ziemlich unrealistisch.
Hallo,
Wobei dann auch noch zu bedenken wäre (jedenfalls bei Adressen in DE)
das ein Ort und auch eine Strasse mehrere PLZ haben kann.
Ich persönlich verzichte bei Adressen lieber auf die Normalisierung von
Strassen/Orten und speichere sie redundant bei den Adressen. Die
Tabellen mit Orts-/Strassennamen verwende ich nur als reine Datencontainer.
Zumal die Zuordnungen von Orten/Strassen zur PLZ auch Änderungen
unterworfen sind. Ich hatte aber auch jahrelang den Zugriff auf die Leitdaten
der Post.
gruss ekkehard
Hallo,
@Der Ureinwohnerweiterhin:
Die Vorstellung
ZitatEs wäre mir trotzdem lieber über das Kombifeld den Ort einzustellen und die richtigen Strassen zu diesem eingestellten Ort zu filtern und ggf. auch eine (oder mehrere) Strassen diesem Ort zuzuordnen.
ist m. E. nicht treffend. Vermutlich sind die Vorschläge nicht richtig verstanden worden.
Es wird kein Kombi benötigt, um Orte auszuwählen, außer dieses (ungebundene) Kombi ("cmbOrtsuchen") wäre rein für die Filterung eines Ortes im Hauptform zuständig.
Dann sollte dieses Kombi ungebunden sein und als Datenbasis (Abfrage in dessen Datensatzherkunft) die Tabelle "T002_Ortschaften" verwenden. (Select Orte_ID, Orte from T002_Ortschaften order by Orte).
Die Filterung nach dem ausgewählten Ort geschieht prinzipiell so im Hauptform (das die Orte anzeigt) :
Sub cmbOrtSuchen_Afterupdate()
Me.Filter= "Orte_ID = " & Me!cmbOrtsuchen
Me.FilterOn =True
End Sub
Sonstige Einstellungen:
gebundene Spalte: 1
Spaltenanzahl: 2
Spaltenbreiten: 0cm;4cm
Als Grundaufbau erklärend genügt:
Hauptform (Einzelform) mit Datenherkunft zur Tabelle T002_Ortschaften
Darin eingebaut ein UFO-Steuerelement, das das Endlosform "frm_Strassen" anzeigt und das in seinen Eigenschaften "Verknüpfen von/nach" die jeweiligen Schlüsselfelder enthält (Orte_ID, Orte_ID").
BTW: in der Strassentabelle fehlt der Primärschlüssel, welcher aber hier nicht unbedingt erforderlich wäre.
Das Endlos-Form "frm_Strassen" erhält in seiner Datenherkunft den Tabellennamen "T003_Strassen" (oder eine gleichwertige
ungefilterte Abfrage) zugewiesen.
Beim Durchblättern des Hauptforms (frm_Orte) werden dann "automatisch" die zum aktuellen Ort zugehörenden Strassen angezeigt und es kann jederzeit eine Strasse hinzugefügt oder auch herausgenommen (gelöscht) werden.
Ein gezieltes Suchen nach einem Ort kann mit z. B. dem o. g. ungebundenen Kombifeld erreicht werden.
Hallo,
Zitat von: Lachtaubedas würde aber bedeuten, dass jeder Ort maximale einen Straßennamen enthält
manchmal stehe ich halt auch etwas neben mir. Ich habe da zu schnell und zu unüberlegt geantwortet.
Hier fehlt einfach noch eine Tabelle zur Zuordnung der Straßen zum Ort als n:m Beziehung.
Hallo,
ich frage mich da, ob der Aufwand sich lohnt, bzw. ob das Ganze nicht übernormalisiert ist oder wird.
Sicherlich gibt es in verschiedenen Orten Strassen mit gleichem Namen, (PLZ lass ich jetzt mal außen vor), aber wegen der doch übersichtlichen Anzahl wäre mir eine redundante Erfassung eher lieber. Es kommt aber darauf an, welches Ziel die Db verfolgt.
Hallo Franz,
ich stimme Dir zu. Ich habe das jetzt nur vervollständigt und richtig beschrieben, weil ich zuerst etwas daneben gegriffen habe.
In Verbindung mit der PLZ wird das Vorhaben noch problematischer, weil die PLZ bei gleichem Straßennamen auch von der Hausnummer abhängen kann.
Und dann, müsste man noch weiter normaliseren, weil es zu einer Stadt mehrere PLZ geben kann, also müsste die PLZ auch wieder über eine n:m Beziehung zugeordnet werden.
Ich stimme daher auch ekkehard zu und würde das nicht so weit treiben.
@Ekkehard,
ZitatIch persönlich verzichte bei Adressen lieber auf die Normalisierung von Strassen/Orten und speichere sie redundant bei den Adressen.
Da bin ich durchaus bei Dir. Mit Länder- und Sprachcodes sowie Vornamen halte ich das übrigens auch so.
Hallo alle Beteiligten,
ich möchte mich bei allen für ihre Tipps und Anregungen an dieser Stelle erst einmal bedanken.
Ich werde mal versuchen ob ich das (was ich oben schon beschrieben hatte) mit eurer Hilfe nun hinbekomme.
Eine PLZ ist für mein Vorhaben (so denke ich) nicht erforderlich.
Die Datenbank soll wie gesagt nur eine kleinere Menge Ortschaft in einem Umkreis von etwa max. 50 KM erfassen und die dortigen Strassen auflisten. Da sich die Strassen über das letzte Jahrhundert vom Namen durchaus geändert haben kann es schon sein das sich z.B. die Hauptstrasse in mehreren Orten befunden hat. Dann kam die Gemeindreform und 5 Ortschaften wurden zu einer Gemeinde zusammengefasst die es vorher gar nicht gegeben hatte und die doppelten Strassen wurden in eliminiert so das es nur noch eine Hauptstrasse gab. Die andere (zweite) Hauptstrasse erhielt dann in der Reform einen anderen Namen.
Ich werde nun also weiterhin versuchen in einem Hauptformular ein Kombifeld zu installieren das mit den ID´s vom HaFo zum UFo verknüpft ist.
Durch Auswahl einer Ortschaft im Kombifeld sollen nun alle Strassen dieses Ortes angezeigt werden.
Auch die vor der Reform.
Bisher hatte ich immer das Problem das im Kombifeld beim ersten Öffnen nichts angezeigt wurde aber Strassen im UFo auftauchten.
Wenn ich dann im Kombifeld eine Ortschft gewählt habe kammen schon die richtigen Strassen dazu. Jedoch wurde in der Tabelle 2 dann eine ID der Ortschaft gespeichert anstatt dem Namen. Das heisst der Name der vorher in der Tabelle 2 gestanden hat wurde durch die ID überschrieben. Das wollte ich so eigentlich nicht.
Bin nun echt gespannt ob ich mit euren Tipps und Empfehlungen an mein Ziel komme.
Ich werde berichten - So oder so
Liebe Grüße an alle und ein schönes Wochende
wünscht
Ätsch (H)ans
Hallo,
ZitatIch werde nun also weiterhin versuchen in einem Hauptformular ein Kombifeld zu installieren das mit den ID´s vom HaFo zum UFo verknüpft ist.
Da kannst Du lange versuchen, das geht nicht, macht auch keinen Sinn. Verknüft wird nur Ufo mit dem Hafo. Ich habe auch nichts anderes geschrieben.
ZitatJedoch wurde in der Tabelle 2 dann eine ID der Ortschaft gespeichert anstatt dem Namen.
Das ist ja für eine Datenbank auch richtig. Es
muss die ID gespeichert werden, nicht der Name.
Um das richtig umzusetzen, braucht es aber 3 Tabellen, wie ich das weiter oben in meiner Antwort (#10) beschrieben habe. Mit 2 Tabellen lässt sich Dein Vorhaben nicht umsetzen.
Hallo Klaus,
wäre es sehr unverschämt wenn ich Dich frage ob Du mir zu diesem Thema mit den drei Tabellen etwas helfen könntest. Vielleicht würde ich es ja auch so hinbekommen. Aber ich denke mit deiner Hilfe wäre es bestimmt einfacher....... und schneller.....
Die Verknüpfung der beiden bestehenden Tabellen hatte ich ja schon gezeigt. Wo müsste ich jetzt die dritte Tabelle abhängen bzw. verknüpfen ???
Kannst Du mir da etwas mehr Details nennen ?
Würde mich sehr freuen
Danke einstweilen schon mal
und
Viele Grüße Ätsch (H)ans
Hallo,
ZitatWo müsste ich jetzt die dritte Tabelle abhängen bzw. verknüpfen
in meinem Beitrag #10 ist doch ein Bild, nicht gesehen ?
In der Tat - Klaus - das hatte ich nicht gesehen - Sorry
Habe die Beziehungen nun so hergestellt - Die mit dem Primärschlüssel als Autowert.
Wie gehe ich nun weiter vor ?
Im Hauptformular nun das Kombinationsfeld mit den beiden Spalten ID und Orte einfügen nehme ich an ? Wobei wie gehabt die ID Wertspalte auf Breite Null gesetzt wird - richtig ?
Im Unterformular dann die Strassen ???
Warum ich jetzt noch eine Tabelle dazwischen verknüpfen sollte erschließt sich mir immer noch nicht.
Vielleicht kann du ja einem Unwissenden das fehlende Wissen einhauchen.
Ich bin weiterhin sehr gespannt wie es nun weitergeht damit mein Tun von Erfolg gekrönt ist :-)
Viele Grüße einstweilen
Ätsch (H)ans
Hallo,
im Anhang findest Du ein komplettes Beispiel.
Im Unterformular kannst Du in dem Kombi auch neue Straßen erfassen/eingeben. Nach Rückfrage wird diese auch in der Tabelle mit den Straßen gespeichert.
Die Ort und Straßenamen in dem Beispiel sind völlig zusammenhangslos und stammen aus meinem Fundus für Beispieldaten.
Hallo Klaus,
ich habe mir gestern Abend dein Beispiel mal zu Gemüte geführt.
Leider habe ich mir das aber anders gedacht.
Die Orte die in Deiner Beispiel Datenbank im linken Feld stehen - Diese hätte ich gerne in einem Kombinationsfeld zum aufklappen und auswählen. Dies nimmt einfach weniger Platz weg.
Nach der Auswahl sollen dann die Strassen im Unterformular angezeigt werden. So wie bei Dir auch.
Nur halt nicht als Kombinationsfeld. Einfach Auflistung reicht völlig.
Ich denke so etwas sollte doch in Access möglich sein. Das habe ich ja an sich auch schon hinbekommen. Nur halt mit der Krux der ID-Speicherung. Was ja an sich richtig ist aber mir die Namensanzeige dennoch wichtiger wäre. Was Access im Hintergrund mit der ID macht möchte ich visuell gar nicht wissen/sehen. Das kann im Hintergrund ablaufen.
Ich denke das ist einfach eine Einstellungssache. Bin aber noch nicht dahinter gekommen wie ich es für meine Belange einstellen muss.
Wenn Du mir da nochmal behilflich sein könntest wäre das Prima.
Wünsche auf jeden Fall schon mal einen schönen Tag
Ätsch (H)ans
Hallo,
ich kann Deine Einwände nicht nachvollziehen.
Aus dem Listenfeld kannst Du ohne sonst irgendetwas ändern zu müssen direkt ein Kombifeld machen.
Feld markieren > Rechtscklick > ändern zu > Kombinationsfeld.
ZitatNur halt nicht als Kombinationsfeld. Einfach Auflistung reicht völlig.
Das Kombi ist doch die Auflistung. Mit den Klarnamen. Wie willst Du ohne das Kombi die Straßen zum Ort erfassen ?
Du musst doch die ID der Straße wissen, Du müsstest also esrt in der Straßentabelle die ID suchen und diese dann eintragen. Das macht doch das Kombi ganz automatisch. Und bietet noch den Vorteil der sehr einfachen Suche nach Straßennamen. Du siehst also auch sehr schnell, ob es den Namen schon gibt. Ohne das Kombi wird das alles viel, viel umständlicher.
Du kannst in einer Abfrage mit allen drei Tabelle und der Verknüpung völlig problemlos alle Klarnamen anzeigen und diese Abfrage ggf. für ein Formular (das nur der Anzeige dient) oder einen Bericht verwenden.
Klaus - ich bin es nochmal
Das mit der dem Rechtsklick ändern zu Kombifeld kannte ich nicht.
Habe ich versucht - Hat auch sofort geklappt. Ja - so stelle ich mir das vor.
Nur habe ich nun das Problem das ich in diesem Kombifeld zwar die Ortschaften selektieren kann.
Das geht schon - nur die Strassen werden nicht mehr nachgezogen.
Also ich ändere im Kombifeld den Ort. Die Strassen bleiben aber stehen. Da ändert sich nichts.
Wie wenn die Beziehung verloren gegangen wäre.
Das hatte ich auch schon mal. Hatte es dann aber irgendwie geschafft das es wieder funktioniert hat.
PS: Ich weiß schon das die Ortschaften über die Beziehungen mit den Strassen verknüpft sind. Das ist und war auch noch nie das Problem. Das Problem war immer nur die Anzeige - also zur ID der Name
Vielleicht liegt es daran das ich mich falsch Ausdrücke - kann ja sein .......
Grüßle nochmal
Ätsch (H)ans
und Danke für Deine Geduld
Hallo,
da fehlt der Eintrag [Ereignisprozedur] für das Ereignis "Nach Aktualisierung". Der geht verloren nach der Änderung.
ZitatDas Problem war immer nur die Anzeige - also zur ID der Name
Aber dieses Problem hast Du doch mit dem Kombi nicht mehr. Es wird der Straßenname doch im Klartext angezeigt.
Also wo ist da noch ein Problem ?
Und wie bereits gefragt, wie willst Du ohne das Kombi die Straßen zum Ort erfassen ?
Das ist doch die einfachste Methode überhaupt.
Hallo,
anbei.. Die Ereignis-Eigenschaften müssen von Hand nachgetragen werden.
Hallo Franz, hallo Klaus,
jetzt sind wir ja schon ein ganzes Stück weiter. So langsam geht es in die richtige Richtung.
Anbei habe ich nun nochmal ein Bild hochgeladen.
Nachdem das nun mit dem Kombifeld ganz gut klappt wollte ich nun das Strassen-Kombifeld ebenfalls über die "Rechts Klick - Ändern zu" Funktion ändern. Das Ergebnis seht ihr in dem Bild.
Immer wieder stoße ich auf die ID´s. Ich habe verstanden das diese wichtig sind - alles klar.
Diese stellen die Verküpfung dar. Logo. Dennoch will ich die Strassen sehen und bekomme das nicht gebacken.
Vielleicht kann der eine oder andere mir hier nochmal (evt. ein letztes Mal) helfen. Wäre toll
Wie gesagt - das Kombifeld möchte ich nicht haben.
Es sollte so aussehen wie im Bild nur eben mit Strassen-NAMEN.
Ich bin der Meinung das man auch ohne Kombifeld eine weitere Strasse dem gewählten Ort zuordnen kann in dem man eben auf den aller letzten (leeren) Datensatz der Strassen geht und dort eine weitere einträgt.
Diese wird ja dann über die ID´s (*lach*) dem Ort zugeordnet.
Das sollte doch machbar sein
Liebe Grüße nochmals an alle
Ätsch (H)ans
Hallo,
Du brauchst dieses Kombi. Ich kann auch absolut nicht verstehen, warum Du das Kombi nicht willst, das zeigt Dir doch genau das an was Du willst.
Wie willst Du ohne dieses Kombi die Straßen für eine Ortschaft erfassen ?
Habe ich schon mehrfach gefragt, hast Du nie beantwortet.
Angenommen Du hast für Entenhausen die Schulstraße und die Hauptstraße erfasst. Diese Straßen gibt es nun auch noch für Buxdehude, wie willst Du jetzt diese beiden Straßen zu Buxdehude kriegen ohne das Kombifeld ?
Bitte erkläre das mal.
Hallo Hans,
Was gefällt dir den an Klaus' Beispiel nicht?
Da hast du doch alles was du willst. Orts- und Strassennamen sind zu
sehen, das Erfassen neuer Strassen geht genauso (neuen DS anklicken -
Strasse eingeben).
Im Prinzip würde es auch mit einem Textfeld gehen, aber da musst du viel
mehr Code schreiben und ausserdem hast du dann das Problem doppelter
Strassen wegen Schreibfehlern.
gruss ekkehard
Hallo,
des Menschen Wille ist sein Himmelreich...
Hallo alle zusammen,
Selbstverständlich werde ich meine Gründe erläutern.
Dazu habe ich ein weiteres Bild angehängt.
Auf diesem ist die Ortschaft Gerdshagen zu sehen. Diese Ortschaft hat im normalen Zustand drei Strassen.
Klappe ich jedoch das Kombifeld auf werden mir alle Strassen angeboten. Das finde ich nicht Okay.
Sollte ich der Ortschaft eine neue Strasse (eine vierte) zuordnen wollen würde ich das wie Ekkehard das beschrieben hat tun.
Dann hätte Gerdshagen 4 Strassen.
Wozu also dieses Kombifeld in dem mir alles angeboten wird was es gibt - ich das aber eigentlich gar nicht auswählen darf da außer den 4 zu geordneten Strassen ja alle anderen gar nicht in dieser Ortschaft zu finden sind.
Wenn ich dieses Kombi Element so aber gar nicht benutzen soll bzw. kann macht es an dieser Stelle für mich keinen Sinn.
Einen Sinn würde es machen wenn ich es aufklappe und es wären nur drei Strassen zu sehen - nämlich die zugeordneten. Nach Zuordnung der nächsten (neuen) Strasse wären es dann vier usw.
Ich hoffe ich konnte mein Verständnisproblem einigermaßen rüber bringen.
Das Beispiel von Franz habe ich mir mal runtergeladen aber noch nicht angeschaut. Dazu melde ich mich dann einfach nochmal
Finde die Hilfsbereitschaft hier aber dennoch SEHR GUT und freue mich echt darüber wieder ein klein wenig mehr zu Wissen als zuvor.
Liebe Grüße
Ätsch (H)ans
Hallo,
ZitatSollte ich der Ortschaft eine neue Strasse (eine vierte) zuordnen wollen würde ich das wie Ekkehard das beschrieben hat tun.
Damit hast Du exakt das gleiche Problem, nämlich aus vielen Straßen eine auszuwählen die zutreffend ist. Wählen aus Vielen musst Du immer, egal mit welcher Methode, auch mit dem Vorschlag von Ekkehard. Wie soll es auch anders gehen, Du musst ja wissen, welche Straßen es schon gibt um eine auswählen zu können.
ZitatEinen Sinn würde es machen wenn ich es aufklappe und es wären nur drei Strassen zu sehen
Genau dann macht es keinen Sinn. Wenn die Straßen schon zugeordnet sind, ist ein Kombi überflüssig.
Du hast die Zusammenhänge noch nicht verstanden.
Im Anhang findest Du ein etwas modifiziertes Beispiel aufbauend auf dem Vorschlag von Franz. Zum Verständnis: Die Straßen sind 2 genau übereinander liegende Felder die über den Button "Ansicht umschalten" abwechselnd angezeigt werden.
Hallo Hans,
ZitatEinen Sinn würde es machen wenn ich es aufklappe und es wären nur drei Strassen zu sehen - nämlich die zugeordneten.
Diese Konstruktion kannst du auf einem anderen Formular verwenden,
wo du z.B. zu einem Kunden eine Adresse erfasst. Da wählst du dann
den Ort aus und bekommst in einem
abhängigen Kombi nur die
Strassen des ausgewählten Ortes zu sehen. Hier, bei der Erfassung der
zugehörigen Strassen brauchst du, wie bereits von Klaus geschrieben,
alle Strassen zur Auswahl.
gruss ekkehard
Hallo zusammen,
Anbei meine Version - so wie ich mir das vorstelle.
Ich wähle die Ortschaft und bekomme die Strassen.
Da diese nun alphabetisch geordnet sind kann ich gleich erkennen ob eine NEUE Strasse die ich dieser Ortschaft zuordnen will schon vorhanden ist oder nicht.
Mir ist schon klar das es zum Beispiel eine "Hauptstr." in vielen Orten geben kann. In diesem wird Sie nun mal so geschrieben (Hauptstr.)
Das kann in einem anderen Ort natürlich anders sein - Da gebe ich Euch schon recht.
Ich muss aber vielleicht erklärend erwähnen (oder hatte ich das weiter vorne schon ?) das es sich hier nicht um Großstädte wie München, Frankfurt, Hamburg oder sogar Berlin handelt.
Nein ich bewege mich hier in einem Umkreis von 50 KM in denen eigentlich nur kleine Dörfer zu finden sind. Diese sind durch die Gemeindereform vor einigen Jahren zusammengelegt worden es sind einige Strassen dazu gekommen (Neubaugebiete) und doppelte Strassennamen sind verschwunden bzw. durch neue ersetzt worden.
Das heisst das mir diese kleine Datenbank völlig ausreicht um die paar Käffer und deren Strassen zu erfassen. Das kann ich übrigens im letzten (Neuen) Datensatz (*) immer noch. Dazu brauche ich kein Kombifeld.
Ich bin mit dem Resultat somit hoch zufrieden und bedanke mich bei allen die beteiligt waren. Den Threat werde ich auf (für mich) erledigt setzen und freue mich schon auf die Mithilfe von Euch beim nächsten Problem. Sofern es eines geben sollte.
Vielen Dank nochmals
Ätsch (H)ans
Hallo,
ZitatDa diese nun alphabetisch geordnet sind kann ich gleich erkennen ob eine NEUE Strasse die ich dieser Ortschaft zuordnen will schon vorhanden ist oder nicht.
Und woran erkennst Du dass es diese Straße nicht schon in einem anderen Ort gibt ?
Bei deiner Version hast Du dann mehrfach z.B. die Hauptstraße bei den Straßen. Und musst den Straßennamen jedes mal neu eintragen. Dann hast Du hier auch Straßen mit Tippfehlern. Es wird dann eines Tages die Schulstraße, die Shulstraße, die Sculstraße und die Schulstrasse geben.
Und ich halte auch jede Wette, dass es im Umkreis von 50km mehrere gleiche Straßennamen gibt.
Dein Beispiel hinkt hinten und vorn und kann als Beispiel dienen, wie man es nicht machen soll. ;D
Aber des Menschen Wille ist sein Himmelreich.
PS:
Aus Platzgründen Beispieldbs immer als Zipfile anhängen. Aus 528 KB werden dann 32 KB, das ist der Faktor 16, das ist beträchtlich. Ich habe das oben geändert.
Hallo,
ZitatAber des Menschen Wille ist sein Himmelreich.
Ist wohl so. Aber mit Beratungsresistenz haben wir ja öfter zu tun.
ZitatDas kann ich übrigens im letzten (Neuen) Datensatz (*) immer noch. Dazu brauche ich kein Kombifeld.
Die Nachteile wurden ja mehrfach genannt.
Zitatbeim nächsten Problem. Sofern es eines geben sollte.
Worauf du einen lassen kannst bei einem falschen Aufbau. ;-)
gruss ekkehard
EOT
Zu der hochgeladenen DB hätte ich nun doch noch einmal eine Frage.
Ich wollte im HF ein ungebundenes Textfeld installieren das mir die Stückzahl der Strassen anzeigt.
Textfeld hat den Namen AzDsUfo
Dabei habe ich folgenden Code verwendet. Leider tut sich aber nichts.
Ist der Code grundlegend falsch oder an was hängt es ?
Private Sub Form_OrtschaftenUfoStrassen ()
If Me.NewRecord = False Then Me.AzDsUfo = DCount("*", "[Strasse]", "StrasseID = " & Me.StrasseID)
End If
End Sub
Liebe Grüße vom lernresistenzen
Ätsch (H)ans
Hallo,
wenn Du das richtige Ereignis nimmst (Beim Anzeigen) und die richtigen Felder zählst in den richtigen Tabellen , klappt das auch. :D
If Me.NewRecord = False Then
Me.AzDsUfo = DCount("*", "[OrtschStr]", "OrtschID_F = " & Me.OrtID)
End If
Zusätzlich zu dem vorhanden Code in das genannte Ereignis.
Hallo Hans,
Vielleicht noch zum Verständnis
Private Sub Form_OrtschaftenUfoStrassen ()
ist kein Ereignis des Formulars nur weil du ein "Form_" vor den
Prozedurnamen schreibst. Das ist eine normale Sub, die du aufrufen
musst damit sie ihren Dienst verrichtet.
Also entweder Klaus' Code direkt in die Prozedur
Private Sub Form_Current
If Me.NewRecord = False Then
Me.AzDsUfo = DCount("*", "[OrtschStr]", "OrtschID_F = " & Me.OrtID)
End If
oder
Private Sub Form_Current
Call Sub Form_OrtschaftenUfoStrassen
End Sub
Eine dritte Möglichkeit ist es aus der Sub eine Function zu machen, und
deren Namen direkt in die Eigenschaft "Beim Anzeigen" einzutragen
(=Form_OrtschaftenUfoStrassen())
Private Function Form_OrtschaftenUfoStrassen() As Integer
If Me.NewRecord = False Then
Me.AzDsUfo = DCount("*", "[OrtschStr]", "OrtschID_F = " & Me.OrtID)
End If
End Function
gruss ekkehard
Hallo noch einmal,
Jetzt habe ich den Code so eingegeben wie es mir Klaus vorgeschlagen hat
Private Sub Form_Current()
If Me.NewRecord = False Then Me.AzDsUfo = DCount("*", "[OrtschStr]", "OrtschID_F = " & Me.OrtID)
End If
End Sub
und bekomme nun folgende Fehlermeldung
Sie haben als Einstellung den Ausdruck Beim Anzeigen eingegeben. Dieser Ausdruck hat einen Fehler verursacht: Mehrdeutiger Name: Form_Current.
Vielleicht hängt es ja mit diesem Code zusammen. Den gibt es ja auch noch ....... und beginnt ebenso.
Private Sub Form_Current()
Me.OrtSuchen = Me.OrtID
Me.OrtSuchen.SetFocus
End Sub
Das weiß ich aber nicht. Vielleicht weiß es ja jemand von Euch
Ätsch (H)ans
ZitatZusätzlich zu dem vorhanden Code in das genannte Ereignis.
Nicht gelesen?
Hallo,
genau lesen hilft. :D
Ich habe ja das Private Sub Form_Current() bewusst weg gelassen und "zusätzlich" geschrieben. Also dann so:
Private Sub Form_Current()
Me.OrtSuchen = Me.OrtID
Me.OrtSuchen.SetFocus
If Me.NewRecord = False Then
Me.AzDsUfo = DCount("*", "[OrtschStr]", "OrtschID_F = " & Me.OrtID)
End If
End Sub
Und einen Zeilenumbruch hatte ich auch nach dem Then.
Hallo Leute,
ich habe den Code nun ausprobiert.
Und soll ich Euch was sagen - Der funktioniert
Vielen Dank nochmals allen und Sorry das ich nicht lesen kann
Gruß Ätsch (H)ans
PS: Ich freue mich schon auf das nächste Problem
Hallo zusammen,
anbei noch einmal die Datenbank mit einer Verständnis frage.
Wenn ich auf den letzten DS gehe (Aichschiess) werden mir im ungebundenen Feld 4 DS angezeigt.
Schalte ich nun mit der Schaltfläche unten links auf den nächsten (28 Datensatz) wird mir diese Zahl (4) weiterhin angezeigt obwohl weder eine Ortschaft noch Strassen angezeigt werden.
Da sollte doch eigentlich dann Null stehen - oder nicht ?
Wie kann ich das bewerkstelligen das hier nicht 4 sondern 0 angezeigt wird.
Für Hilfe bin ich wie immer sehr dankbar
Viele Grüße Ätsch (H)ans
Hallo,
im Code "Beim Anzeigen" wird ja festgelegt, dass nur gezeählt wird, wenn es kein neuer DS ist. Und 28 ist ja ein neuer Datensatz. Bei einem neuen Datensatz ist ja die ID NULL (nicht 0 !!). Da kann man mit Nz eine 0 draus machen und dann zählen. Dann wird 0 gezählt. Die Prüfung auf NewRecord kann dann entfallen.
Ändere wie folgt:
Private Sub Form_Current()
Me.OrtSuchen = Me.OrtID
Me.OrtSuchen.SetFocus
Me.AzDsUfo = DCount("*", "[OrtschStr]", "OrtschID_F = " & Nz(Me.OrtID, 0))
End Sub
Hallo Klaus,
das funktioniert ja Prima
Wie würde dann der Code aussehen wenn anstatt der Null einfach "Nichts" in dem Feld stehen würde.
Also keine 4 - keine 0 - Einfach ebenfalls leer, Wie der DS 28 und die Kombifelder.
Sieht vielleicht besser aus - Wenn alles leer ist sollte das auch leer sein.
Grüßle
Ätsch (H)ans
Hallo,
dan braucht es doch wieder die Prüfung auf NewRecord.
Private Sub Form_Current()
Me.OrtSuchen = Me.OrtID
Me.OrtSuchen.SetFocus
If Me.NewRecord = False Then
Me.AzDsUfo = DCount("*", "[OrtschStr]", "OrtschID_F = " & Nz(Me.OrtID, 0))
Else
Me.AzDsUfo = Null
End If
End Sub