Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Formular mit Suchfeld auf Unterformular

Begonnen von AllenWalker, August 25, 2013, 21:08:57

⏪ vorheriges - nächstes ⏩

AllenWalker

Zitat
nach der Schilderung zu urteilen, benutzt Du Nachschlagefelder in der Tabelle...  Wirf die raus, die sorgen in den meisten Fällen für Verwirrung und Ärger.
Ich habe in der Tabelle Kontakte die Nachschlagefelder im Feld Standorte entfernt. In den Eigenschaften des besagten Feldes steht bei Lookup - Display Control nun TextBox anstelle von ComboBox. Durch die Relation stehen nun die Fremdschlüssel aus der Tabelle Standorte in den Feldern. Im Unterformular sind diese Nachschlagefelder auch nicht mehr vorhanden und es werden die Fremdschlüssel angezeigt. Wie bekomme ich da wieder die Namen der Standorte hin? Über eine Query?

Zitat
Me!tbVornameSuche & "*'  And KBO =" & Me!cbStandortAuswahl
Wenn ich den Quellcode entsprechend anpasse bekomme ich die gleiche Fehlermeldung mit Type mismatch.

bahasu

Hi

ist Me!cbStandortAuswahl eine Zahl oder ein Text-Feld?

Wenn Text:
... Me!tbVornameSuche & "*'  And KBO = '" & Me!cbStandortAuswahl & "'"


Harald
Servus

AllenWalker

#17
Ich habe in der Tabelle Standort das Feld ID entfernt und die Bezeichnung als Primärschlüssel gesetzt. Die Bezeichnung kommt jeweils nur einmal vor.
Auf dem Suchformular habe ich die Kombobox angepasst und im Quellcode waren die * zuviel wie bahasu es bereits erwähnt hat.

bahasu

Hi,

Zitat von: AllenWalker am Oktober 13, 2013, 14:24:54
Kann ich das Feld ID nicht löschen und Ort als Primärschlüssel nehmen?

Da wäre eine wunderbare Möglichkeit, Chaos zu produzieren!  :(
Stell Dir vor, Du hattest "Duesseldorf" mit "ue" geschrieben und willst es in "Düsseldorf" ändern.
Dann stimmen die Beziehungen nicht mehr.

Harald
Servus

AllenWalker

Habe die Entfernung des vorherigen Primärschlüssel wieder rückgängig gemacht aber dann kommt wieder die Frage wie ich im Unterformular anstelle des Fremdschlüssels die Bezeichnungen der Standorte gezeigt bekomme?

bahasu

Hi,

das Kombifeld hat eine Datenquelle, die besteht aus:
- der ID zum Standort und
- der Bezeichnung vom Standort


Im Reiter "Daten" steht bei "gebundene Spalte" = 1

Im Reiter "Format" steht bei:
- Spaltenzahl = 2
- Spaltenbreite: 0; 10 cm     ' oder irgendein besser passender Wert

Harald
Servus

AllenWalker

Es geht nicht um das KombiFeld. Das habe ich bereits richtig dargestellt. Es geht um das Feld Standorte im Unterformular. Da das Unterformular auf die Tabelle Kontakte aufbaut stehen im Feld Standort die Fremdschlüssel durch die Relation mit der Tabelle Standorte. Diese Fremdschlüssel möchte ich durch die Bezeichnung des Standortes ändern.

DF6GL

Hallo,


"Es geht nicht um das KombiFeld." 

Es geht (jetzt) um das Kombifeld im Unterformular, das den Standort anzeigen soll...


In welcher Ansicht wird das Unterformular dargestellt?  Ist in diesem Formular als Anzeige für den Standort ein Kombifeld eingesetzt?

Wenn so, wie lautet die Datensatzherkunft dieses Kombis?


Lt. den Beschreibungen sollte es so lauten:
SELECT ID, Ort FROM Standort ORDER BY Standort


mit den restlichen Kombi-Einstellungen:

gebundene Spalte: 1
Spaltenanzahl: 2
Spaltenbreiten:  0cm;3cm


Das Ganze funktioniert nur, wenn "KBO" das Fremdschlüsselfeld (das Feld, das den ID-Wert aus "tblStandorte" aufnimmt) ist.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

AllenWalker

Hatte vergessen anzugeben dass es sich bei dem Feld Standort im Unterformular nach dem Entfernen der Nachschlagefelder in der Tabelle Kontakte um ein Textfeld handelt.

DF6GL

HAllo,

Du beantwortest nicht meine Fragen...

In der Tabelle muss es sich um eine Textfeld handeln, im (Unter)-Formular um ein Kombifeld, wie ich es beschrieben habe...

Es kann sein, dass im Falle der "Datenblattansicht" des Formulars kein Kombifeld angezeigt wird.  Ändere dann auf "Endlosform" und erstelle dort wie beschrieben ein Kombifeld für das Standort-ID-Feld (Fremdschlüsselfeld).
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

AllenWalker

Ich habe das wie beschrieben geändert und musste noch die Abfrage etwas anpassen um die Werte aus der Tabelle Kontakte richtig angezeigt zu bekommen.

SELECT ID, Standort
FROM Standorte AS O, Kontakte AS K
WHERE O.ID = K.KBO
ORDER BY Standort;

Die Ansicht des Unterformulars hat sich nach der Beschreibung komplett geändert. Es wird jeweils nur ein Datensatz angezeigt zwischen denen ich wechseln kann. Vorher war dies eine Art Tabellenform mit den 3 Spalten Name, Vorname und Standort. Und wenn ich jetzt eine Eingabe durchführe erhalte ich die Fehlermeldung Type mismatch.

AllenWalker

@DF6GL
Ich habe das Feld Standort im Unterformular laut deiner Beschreibung angepasst und habe die SQL Abfrage aus dem vorherigen Post von mir benutzt. Bekomme aber jetzt wieder ein Kombifeld mit Auswahl angezeigt wenn ich in das Feld Standort klicke im Unterformular. Dies ist aber nicht gewollt für die weiteren Aufgaben dieses Formulars.

DF6GL

#27
Hallo,


ZitatDies ist aber nicht gewollt für die weiteren Aufgaben dieses Formulars.

???


habe jetzt keinen Überblick mehr über Deine Sachlage.  

Beschreibe nochmal den Istzustand (genau und mit Angaben der jeweiligen SQL-Strings) und was genau erreicht werden soll.


Vielleicht wäre es zielführend, die DB oder eine Demo- DB , die das Verhalten zeigt, hier hochzuladen.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

AllenWalker

IST-Zustand

Das Formular besitzt 5 Suchkriterien nach den sortiert werden kann. Davon sind 2 Kriterien Textfelder (Name, Vorname) und 3 Auswahlfelder (Standort, Aktiv, Kontaktart). Diese Kriterien werden auf das Unterformular angewendet. Im Unterformular wird neben den bereits genannten Feldern noch zusätzlich das Feld für die Mobiltelefonnummer angezeigt.

Für die Suchkriterien gilt beim Event "OnChange" der jeweiligen Elemente der folgende Code:

Private Sub cbAktivArchiv_Change()

  Me!SucheKontakteDetailSub.Form.RecordSource = "SELECT kliName, kliVorname, KBO FROM Kontakte WHERE kliName LIKE '" & Me!tbNachnameSuche & "*'   And kliVorname LIKE '" & Me!tbVornameSuche & "*'  AND KBO = " & Me!cbStandortAuswahl & " AND aktivArchiv = " & Me!cbAktivArchiv & " AND KontaktArt = " & Me!cbKontaktart

End Sub

Private Sub cbKontaktart_Change()

  Me!SucheKontakteDetailSub.Form.RecordSource = "SELECT kliName, kliVorname, KBO FROM Kontakte WHERE kliName LIKE '" & Me!tbNachnameSuche & "*'   And kliVorname LIKE '" & Me!tbVornameSuche & "*'  AND KBO = " & Me!cbStandortAuswahl & " AND aktivArchiv = " & Me!cbAktivArchiv & " AND KontaktArt = " & Me!cbKontaktart

End Sub

Private Sub cbStandortAuswahl_Change()
 
  Me!SucheKontakteDetailSub.Form.RecordSource = "SELECT kliName, kliVorname, KBO FROM Kontakte WHERE kliName LIKE '" & Me!tbNachnameSuche & "*'   And kliVorname LIKE '" & Me!tbVornameSuche & "*'  AND KBO = " & Me!cbStandortAuswahl & " AND aktivArchiv = " & Me!cbAktivArchiv & " AND KontaktArt = " & Me!cbKontaktart
   
End Sub

Private Sub tbNachnameSuche_Change()

  Me!SucheKontakteDetailSub.Form.RecordSource = "SELECT kliName, kliVorname, KBO FROM Kontakte WHERE kliName LIKE '" & Me!tbNachnameSuche & "*'   And kliVorname LIKE '" & Me!tbVornameSuche & "*'  AND KBO = " & Me!cbStandortAuswahl & " AND aktivArchiv = " & Me!cbAktivArchiv & " AND KontaktArt = " & Me!cbKontaktart

End Sub

Private Sub tbVornameSuche_Change()

    Me!SucheKontakteDetailSub.Form.RecordSource = "SELECT kliName, kliVorname, KBO FROM Kontakte WHERE kliName LIKE '" & Me!tbNachnameSuche & "*'   And kliVorname LIKE '" & Me!tbVornameSuche & "*'  AND KBO = " & Me!cbStandortAuswahl & " AND aktivArchiv = " & Me!cbAktivArchiv & " AND KontaktArt = " & Me!cbKontaktart

End Sub


SOLL-Zustand


  • Der Inhalt der Auswahlfelder (Standort, Aktiv, Kontaktart) basiert auf der jeweiligen Tabelle (Standort, Aktiv, Kontaktart). Neben diesem Inhalt soll eine Art "Default" Wert genutzt werden, welcher alles aus der Tabelle anzeigt. Beispiel: Wurde bei Aktiv "Ja" gewählt werden alle aktiven angezeigt und wenn "Default" gewählt wird werden alle aktiven und inaktiven angezeigt. Momentan wird eine Fehlermeldung ausgegeben wenn Ein Auswahlfeld leer ist.
  • Das Feld "Standort" im Unterformular soll unsichtbar sein.
  • Anstelle des Fremdschlüssels bei "Aktiv" und "Kontaktart" soll der entsprechende Inhalt angezeigt werden.

Danke sehr,
Gruß,
AllenWalker

DF6GL

Hallo,


-- wie lauten die Datensatzherkünfte der 3 Auswahlkombis?

-- Kann das Feld "Standort" im UFO nicht "unsichtbar" gesetzt werden (oder, falls vorhanden, nicht aus der Form-Abfrage entfernt werden)?

-- einfach auch für diese UFO-Felder je ein Kombi verwenden...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access