Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Probleme mit Kombifeld

Begonnen von Der Ureinwohner, Oktober 18, 2018, 18:11:18

⏪ vorheriges - nächstes ⏩

MzKlMu

#30
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.
Gruß Klaus

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Der Ureinwohner

#32
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

MzKlMu

#33
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.
Gruß Klaus

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Der Ureinwohner

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

MzKlMu

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.
Gruß Klaus

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Der Ureinwohner

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

Beaker s.a.

ZitatZusätzlich zu dem vorhanden Code in das genannte Ereignis.
Nicht gelesen?
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MzKlMu

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.
Gruß Klaus

Der Ureinwohner

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

Der Ureinwohner

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

MzKlMu

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
Gruß Klaus

Der Ureinwohner

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