Februar 27, 2021, 16:46:23

Neuigkeiten:

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


Feld vom HF über UFO platzieren

Begonnen von Paddy24, Februar 01, 2021, 19:47:04

⏪ vorheriges - nächstes ⏩

Paddy24

Hallo zusammen,

ich versuche derzeit ein Feld, das zum HF gehört über ein UFO zu legen, allerdings ist das UFO permanent im Vordergrund und ich konnte es noch nicht in den Hintergrund verschieben.

Hintergrund ist der, das ich für die Adressen ein UFO habe und die Hausnummer gehört aber zum HF, da es sich beim UFO um ein Straßenverzeichnis handelt, das Nutzer über eine Kombobox erreichen.

Damit nun die Hausnummer nicht so allein irgendwo da drunter steht, wollte ich diese über das UFO legen. Leider verschwindet es aber immer hinter dem UFO und ist dadurch nicht erreichbar und sichtbar.

MzKlMu

Hallo
Wieso hast Du für die Adresse ein Ufo, das kann doch nur eine Adresse sein, es ist ja auch nur eine Hausnummer.
Gruß
Klaus

Paddy24

Die Adressen kommen zum Großteil aus einer Tabelle die als Straßenverzeichnis dient, wo man also per Listelement eine Adresse aussucht und diese füllt dann die Felder. Straße passt nicht in die Adressentabelle, da das zu individuell ist.

MzKlMu

Hallo,
das ist keine Antwort auf meine Frage.
Die Frage ist, wozu Du ein Ufo brauchst wenn Du nur eine Adresse hast.
Die Adresse gehört wie die Straße und die Hausnummer in das Hafo. Die Auswahl sollte über ein Kombi (im Hafo) erfolgen und nicht über ein Listenfeld, das nimmt viel zu viel Platz ein.

Also noch mal die Frage: Wozu ein Ufo ?
Gruß
Klaus

Paddy24

Im HFO werden nachher ca. 4-5 Adressen abgefragt

Person, Hausarzt, Einrichtung, ggf. Krankenhaus, Betreuer usw.

Ich habe die Adresse nun ohne UFO in das Formular des Hausarztes gemacht wo unter anderem noch ein UFO zu den Kontaktdaten haust.

d.h. im Formular "frmHausarzt" habe ich einmal die Daten zum Hausarzt selber (Name, Vorname, Titel) und dann 2 UFOs (Adresse und Kontaktdaten).

Ein Kombinationsfeld ist elegant aber ich find es nicht so "schön" wie die Funktion einer Textbox in Zusammenhang mit einem Listenfeld. Da ich mir bei dieser Kombi während des Eintippens das Listenfeld mit den gefilterten Werten anzeigen lassen kann. Das funktioniert auch sehr gut, ist ja im Grunde nichts anderes als ein Kombinationsfeld nur halt etwas aufwändiger aber dafür auch "hübscher".

Allerdings habe ich damit für die Adressen noch das Problem, das er den selektierten Wert nicht auf die Felder im Formular übernimmt. Was wiederum bei der Auswahl der Person problemlos funktioniert :S


MzKlMu

Hallo,
das HAfo braucht in der Abfrage auch die Tabelle mit den Adressen.
Gruß
Klaus

Paddy24

Jetzt stehe ich gerade auf dem Schlauch.

Das HAFo "frmPerson" hat als Datensatzherkunft die Tabelle tblPerson und da klappt das mit der Textbox und dem Listenelement einwandfrei.

Das Formular "frmHausarzt" hat als Datensatzherkunft die Tabelle tblHausarzt und dort klappt es nicht.

Er lädt und zeigt die richtigen Daten, aber bei dem Ereignis Doppelklick auf einen Datensatz macht er bei dem frmHausarzt nichts. Bei frmPerson lädt er komplett den richtigen Datensatz mit allen UFo's usw.

Ich nutze für die Listenelemente folgenden Code zum anzeigen der Daten und der Sichtbarkeit des Elements:
Private Sub txtSuche_Change()
    Dim frm As Access.Form
    Dim strSQL As String
   
    If Len(Me!txtSuche.Text) > 0 Then
        strSQL = "SELECT hau_id, hau_name, hau_vorname FROM tblHausarzt WHERE hau_name LIKE '" & Me!txtSuche.Text & "*'"
        Me!lstSuchergebnis.RowSource = strSQL
        If Me!lstSuchergebnis.ListCount > 0 Then
            Me!lstSuchergebnis.Visible = True
        Else
            Me!lstSuchergebnis.Visible = False
        End If
    Else
        Me!lstSuchergebnis.RowSource = ""
        Me!lstSuchergebnis.Visible = False
    End If

Und in dem Doppelklick Ereignis wird folgende Prozedur aufgerufen:

Private Sub DatensatzAnzeigenHausarzt()
    Me.Recordset.FindFirst "hau_id = " & Me!lstSuchergebnis
    Me!lstSuchergebnis = Null
    Me!txtSuche = Null
    Me!txtSuche.SetFocus
    Me!lstSuchergebnis.Visible = False
End Sub

Irgendwo steckt der Fehlerteufel aber ich kann ihn nicht finden.

In diesem Beispiel ist es für den Hausarzt, aber das gleiche Problem tritt auch bei den Adressen auf. Bis jetzt funktioniert, wie gesagt, nur die Personensuche mit dieser Funktion.

MzKlMu

Hallo,
mit fehlt da die Vorstellungskraft was Du da gerade vorhast.

Wenn ich mir das Beziehungsbild (aus einem Deiner anderen Themen) ansehe, so willst Du im Hafo eine Adresse aus der Adressentabelle auswählen und die Adressdaten im Hafo anzeigen.
Dazu muss das Hafo als Datenherkunft die Personentabelle und die Adressentabelle haben (verknüpft über die Schlüsselfelder). Dann kannst Du alle Felder aus beiden Tabellen anzeigen. Nach Auswahl einer Adresse werden die Adressdaten in den entsprechenden Feldern des Hafo auch angezeigt.
Gruß
Klaus

Paddy24

Hallo,

sobald ich in der Datensatzherkunft eine Abfrage anlege mit den Tabellen für Person und Adresse, wird mir auch keine Person mehr angezeigt.

Zum besseren Verständnis füge ich die aktuelle DB hier mit an.

Sie dürfen in diesem Board keine Dateianhänge sehen.

MzKlMu

Februar 02, 2021, 19:51:32 #9 Letzte Bearbeitung: Februar 02, 2021, 20:06:12 von MzKlMu
Hallo,
die Felder der Adresse die bei der Person auch sind, müssen dort gelöscht werden, dazu hast Du ja die Adressentabelle, es bleibt nur der Fremdschlüssel zur Adresse und die Hausnummer in der Personentabelle.
Nimm die Tabelle mit der Adresse in die Abfrage für das HAfo mit auf und stelle den Beziehungstyp auf 3.
Ein Ufo für die Adresse ist ersatzlos überflüssig, die Felder kommen direkt auf die Registerseite. Dann kannst du auch die Hausnummer völlig problemlos an passender Stelle direkt auf der Registerseite platzieren.
Gruß
Klaus

Paddy24

Danke ich probiere es einmal aus. Die zusätzlichen Adressenfelder in den Tabellen sind noch Altbestand und werden gelöscht, hatte da nur was ausprobiert :)

MzKlMu

Februar 03, 2021, 00:20:46 #11 Letzte Bearbeitung: Februar 03, 2021, 07:40:01 von MzKlMu
Hallo,
ich habe Dir das mal für das Adressenregister eingebaut. Ich habe auch ein Kombi verwendet zur Suche der Straße. Ich halte das für wesentlich einfacher und eleganter, ohne einen einzigen Buchstaben Code. Und weniger Platz braucht es auch. Das was Du da für das Listenfeld programmiert hast, kann ein Kombifeld serienmäßig.

Ich habe auch das Suchen einer Person auf Kombi umgestellt und auch sonst den Formularkopf mdes Formulars "frmPerson" angepasst. Das Suchen erfolgt mit Kombi das sich auch beim Blättern automatisch anpasst.
Beachte wie wenig VBA Code dazu notwendig ist. Und die Suche wird mit jedem Tastendruck auch automatisch genauer.
Ich habe mir nur oberflächlich mal den ganzen Code angesehen. Ich behaupte mal, mindestens die Hälfte des Codes ist ersatzlos überflüssig. Z.B. ist im Ereignis "Beim Anzeigen" des Personenformulars gerade mal noch eine kleine Zeile drin.
Du verwendest auch mehrfach Unterformulare wo es nicht notwendig ist, was die Programmierung auch unnötig verkompliziert.

Schaue es Dir an.

Nachtrag:
Ich habe die Hausnummer noch eingefügt. Bitte ggf. noch mal herunterladen.

PS:
Du solltest eine Datenbank in regelmäßigen Abständen "Komprimieren/Reparieren", besonders wärend der Entwicklung. Datensätze werden z.B. immer erst wirklich aus der DB gelöscht, wenn Du dieses Diensprogramm ausführst. Vor dem Zippen und Hochladen auch.
Dein Upload 470 KB
Meiner 308 KB
Das Forum wird es Dir danken.
Gruß
Klaus

Paddy24

Februar 03, 2021, 08:30:40 #12 Letzte Bearbeitung: Februar 03, 2021, 17:34:44 von Paddy24
Vielen Dank,

ich habe es mir gerade mal angeschaut und du hast recht, mit dem Kombifeld geht doch mehr als ich dachte, besonders bei der Personensuche zu sehen. Das mit dem KomplettNamen hatte ich nicht auf dem Schirm, dass das in der Art möglich ist.

Aber was ich noch nicht so recht verstehe, wann benutze ich am besten ein Unterformular und wann kann ich die Felder einfach direkt im Hauptformular hinterlegen?

Soweit ich das bis jetzt sehe, immer dann, wenn ein Endlosformular gebraucht wird, dann als UFo, ansonsten kann man die Felder auch direkt in dem HAFo hinterlegen oder was ist da eine gesunde Herangehensweise?


Edit: Ich habe jetzt mal versucht das Formular frmHausarzt mit der selber Technik umzubauen, allerdings funktioniert es nicht um den Hausarzt per Kombobox auszuwählen. Er zeigt mir zwar die Namen an, wenn ich aber drauf klicke, werden die Felder dazu nicht ausgefüllt.