Supportnet Computer Supportnet Games Supportnet Kochen Explipedia
Login: guestBesucher online: 95
Supportnet Computerforum
SUPPORT
Home
Forum
Tipps & Infos
Blitz Angebote
Members
Hilfe
Video

TOP THEMEN
SSD Test
Alles über SSDs

Android Tipps
iPad Tipps
Google Tipps
Windows 8 FAQ
Windows 7 FAQ
E-Mail FAQ
Netzwerk FAQ
Festplatten FAQ
Datenrettung FAQ
Bildbearbeitung FAQ

Top iPhone Apps
Computer Einsteiger
Die 5 besten...
Explipedia
Themen
Direktlinks

Neue Einträge
News einsenden News einschicken
Tipps einsenden Tipp einschicken

SN-LINKS

Suche
Befreundete Seiten
Top Seiten

Supportnet/Forum/Datenbanken



Supportnet/Forum/Datenbanken
von P.T. vom 13.09.2004, 13:47 Diese Seite den Supportnet Favoriten hinzufügen  Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden


Abfrage als Kombifeld

 (942 Hits)

Hallo zusammen.

Jeder hier kennt mit Sicherheit die ganz einfachen Abfragen, wo man am Anfang noch eine Eingabe vornehmen kann und wonach dann Daten "gefiltert" werden.

Ich habe eine Abfrage, die dazu dient, alle Kunden eines Mitarbeiters in einem Formular anzuzeigen. Die Abfrage habe ich folgendermaßen generiert:

Im Abfrage-Editor habe ich bei dem Feldnamen "Nachname" unter 'Kriterien' folgenden Eintrag vorgenommen:
WIE [Bitte geben Sie den Namen des Mitarbeiters ein] & "*"

Nach der Eingabe des Namens bzw. des Namensteils werden dann also alle Kunden eines Mitarbeiters in einem Formular aufgelistet.

In diesem Formular gibt es auch ein Kombifeld, über das man dem Kunden einen Mitarbeiter zuordnen oder auch ändern kann.

Die Namen der Mitarbeiter stehen übrigens in einer eigenen Tabelle.

Um die Abfrage eleganter zu gestalten und falsche Eingaben zu vermeiden möchte ich nun die Namen bei der Abfrage in einem Kombifeld dargestellt bekommen.

Ist dies überhaupt möglich, und wenn ja, wie?

Nach Möglichkeit soll kein zusätzliches/extra Formular mit intergriertem Kombifeld geöffnet werden.

Mit freundlichen Grüßen
P.T.


Antwort schreiben 50 Bonuspunkte

Antworten...
Antwort 1 von laracroft_sp vom 13.09.2004, 14:59 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Halte mich jetzt bitte nicht für dumm, falls ich dich nicht richtig verstanden habe...

Du gehst in der Haupttabelle auf die Entwurfsansicht

dort in das Feld rein, dass mit der anderen Tabelle verknüpft werden soll.

Dann gehst du unten in die Kartei unter Nachschlagen

gibst ein unter "Steuerelement anzeigen" - Listenfeld

Unter "Herkunftstyp" - Tabelle / Abfrage

und unter "Datensatzherkunft" die entsprechende Tabelle oder Abfrage.

- fertig -

Gruß
Lara Croft


Antwort noch nicht bewertet
Antwort 2 von P.T. vom 14.09.2004, 06:35 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Nein, nein, das meine ich nicht.

Vielleicht habe ich mich auch falsch ausgedrückt, bin ja kein Access-Profi.

Also:

In einem von mir erstellten Menue kann ich über Buttons Formulare öffnen.

Das oben besagte Formular liefert mir alle Kunden eines Mitarbeiters und die Daten kommen aus einer Abfrage.

Bei der Abfrage (hervorgerufen durch: WIE [...] & "*" ) wird ein Fenster geöffnet, wo man dann seine Eingabe vornehmen kann (ähnlich eines Listenfeldes).

Ich möchte aber keine Eingabe in ein Feld vornehmen, sondern einen Namen aus einer Liste (Kombifeld) auswählen.

Ich hoffe, ich habe mich jetzt verständlicher ausgedrückt. Kenne mich mit den ganzen Fachbegriffen noch nicht so aus.

MfG
P.T.


Antwort noch nicht bewertet
Antwort 3 von JanVer vom 14.09.2004, 08:32 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Verstehe auch nicht, was Du meinst.

Klingt so, als wenn Du die standardmäßige InputBox einsetzt, aber kein Edit-Feld erscheinen soll, sondern eine Liste oder eine ComboBox.

Wenn dem so sein sollte, dann musst Du ein Formular als Popup anlegen mit einer KomboBox und als RowSource-Eigenschaft die Abfrage, die die Mitarbeiternamen liefert.

Du kannst diese Eigenschaft auch zur Laufzeit einstellen, falls Du nur Mitarbeiter zu einem bestimmten Kriterium sehen möchtest.

----8<----------cut---------8<-------

Problem, das ich hier sehe: Du bist Anfänger und bastelst eine Lösung, die wir als Access-Programmierer so nie machen würden. Deswegen hier mein Tipp:

Zum Beispiel würde ich so eine Aufgabe, wie Du sie beschreibst, dadurch lösen, dass ich ein Formular mit einer Kombobox "Mitarbeiternamen" erstelle und in dieses Formular ein Unterformular "Kunden zu Mitarbeiter". Das Unterformular wird mit der KomboBox verknüpft - d.h. wenn Du die Kombobox änderst, werden in der Tabelle im Unterformular automatisch nur die zu der dann aktuellen ComboBox-Auswahl die Kunden angezeigt. Man braucht keine extra Abfrage erstellen, keinen Filter zusammenbasteln - ist alles von Access schon vorgegeben.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 4 von oliverV vom 14.09.2004, 10:07 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo P.T.,

ich stimme meinen beiden „Vorrednern“ zu, das die Problembeschreibung immer noch nicht ganz klar ist.
Dennoch dürfte die von Jan beschriebene HF/UF-Variante die für dich „richtige“ Lösung sein.
Erstelle also das Formular ohne Verwendung des Abfrage-Parameters; ergänzend würde ich im Formularkopf ein ungebundenes Suchfeld als Kombifeld erstellen das zur Datensatz-Suche dient (ersetzt im Prinzip deine Parameterabfrage).
Siehe hierzu FAQ 4.4.

Gruß

Oliver


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 5 von P.T. vom 14.09.2004, 12:24 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

@ JanVer und oliverV

Ihr versteht so langsam, was genau ich meine. ;-)

Bei der Abfrage erscheint eine standardmäßige InputBox, die von Access vorgegeben wird!
Wer will schon Standard.

Wenn immer noch unklar, könnte ich ja auch mal eine kleine Test-DB mit dem Problem erstellen.
Wenn´s denn hilft.


Die Sache mit den HF/UF funktioniert bestimmt gut und ich habe dazu schon einige Anregungen vorher gefunden. Problem dabei:

Meine Datenbank ist sehr groß (viele Daten) und sie beinhaltet sehr viele Auswertemöglichkeiten (Abfragen). Die Ergebnisse werden in einem standardisierten Formular angezeigt, um die Benutzer nicht vollkommen zu verwirren. In diesen Formularen sind allerdings eine solch große Anzahl von Informationen, dass ich einige bereits durch einen Button auf ein anderes Formular verzweigen mußte.
Will heißen, das Formular ist voll und ich habe ehrlich gesagt auch keine Lust die Formulare umzustricken. Leider sind die Informationen alle wichtig und können nicht unter den Tisch fallen.

Wenn ich euch nun richtig verstanden habe, gibt es anscheinend keine simple Möglichkeit, das standardmäßige Eingabefeld gegen ein popeliges Kombifeld zu ersetzen!?
Schade.
Dachte ja auch nur an eine Erleichterung und Komforterhöhung für die Benutzer.

Wäre eine weitere Möglichkeit denn, ein ungebundenes Formular mit einem ungebundenen Kombifeld als Abfrage zu benutzen, um dann auf das eigentliche Formular mit den gefilterten Kunden zu gelangen?
Habe davon mal irgendwo etwas gelesen.

Vielen Dank für eure Tips!!!!

MfG
P.T.


Antwort noch nicht bewertet
Antwort 6 von oliverV vom 14.09.2004, 13:47 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo P.T.,

für das Problem der „Informationsflut“ heißt die Lösung: Registersteuerelement.
Beispiel:
Hauptformular „Kunde“ mit Registersteuerelement
auf die einzelnen Register-Blätter hast du die verschiedenen Unterformulare, wie „Anschrift“, „Bankverbindungen“, „Ansprechpartner“, „laufende Projekte“, „abgeschlossene Projekte“ usw.
Der Benutzer wählt einen Kunden aus (beschriebenes Suchfeld) und kann dann einfach zwischen den einzelnen Registern wechseln um die z.Zt. benötigte Info zu gekommen.

Die Alternative zur Parameter-Eingabe wäre das Formular mit dem ungebunden Kombifeld (sinnvollerweise als Pop-Up), und einer Schaltfläche zum Öffnen des eigentlichen Formulars.
In der Datenherkunft musst du dein Kriterium auf einen Formularverweis ändern, d.h. [Formulare]![Formularname]![Feldname].

Etwas „unschön“ ist es, das das Auswahlformular beim Öffnen des Hauptformulars geöffnet sein muss (denn dort wird ja dein Kriterium ausgelesen), das bedeutet nach „getaner Arbeit“: Schließen des HF, Schließen Pop-Up-Formulars (denn dieses war im Hintergrund noch geöffnet).

Diese Pop-Up-Geschichte benötigst du aber IMHO nicht, wenn du im Formularkopf das Suchfeld einbaust und das Formular ohne einschränkendes Kriterium öffnest.

Aber egal für welche Lösung du dich letztendlich entscheidest, „von selbst“ passiert es nicht, also du musst schon etwas „umbauen“.
Grundsätzlich bedeutet eine höhere Benutzerfreundlichkeit auch einen höheren Programmieraufwand.

Gruß

Oliver


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 7 von P.T. vom 15.09.2004, 06:57 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Oliver,

das Registersteuerelement kenne ich, entspricht aber nicht meinen Bedürfnissen.
Ich sehe so etwas als sinnvoll an, wenn man mehr als zwei oder drei Register füllen kann/muss.
Für 1,5 bzw. zwei Seiten finde ich dieses Steuerelement eher als nicht brauchbar an.

Das Pop-Up-Formular scheint auch keine besonders elegante Lösung zu sein, wenn andere Formulare dafür geöffnet sein müssen. Das sich das Hauptformular nach dem Auswahlformular öffnet ist ja irgendwie logisch, schließlich will man ja etwas selektieren. Das Pop-Up-Formular sollte sich allerdings beim Schließen des HF dann schon gleich mit schließen.

Wie dem auch sei.

Mein Wunsch scheint auf einfache Wiese nicht realisierbar zu sein. Möglich, dass so eine Art der Abfrage bei Access auch nicht implementiert ist. Obwohl, wie ich finde, es eine elegante Lösung wäre. Das Programmierer die Abfrage so nicht machen würde ist einleuchtend für mich, ich bin aber weder Programmierer noch Access-Profi und habe mich der Datenbank freiwillig angenommen, um sie zu verbessern. Dies mache ich dann auch noch nebenbei wohlgemerkt.

Ich werde meine Bemühungen, die Abfrage anwenderfreundlicher zu gestalten hiermit aufgeben und bedanke mich noch mal bei allen konstruktiven Vorschlägen.

Eine Frage habe ich aber noch:
Was heißt IMHO????

MfG
P.T.


Antwort noch nicht bewertet
Antwort 8 von oliverV vom 15.09.2004, 08:29 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

IMHO =
In my humble/honest opinion
nach meiner bescheidenen/ehrlichen Meinung

Bin sonst nicht so der Abkürzungstyp, aber bevor ich rumeiere mit „ich bin der Meinung, das...“ oder „wenn du mich fragst...“ oder „ich meine zwar, aber es könnte auch anders sein...“; verwende ich des öfteren IMHO, wenn ich sagen will das das mein Lösungsvorschlag ist, es aber natürlich auch noch andere Wege gibt.

Gruß

Oliver


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 9 von JanVer vom 15.09.2004, 10:23 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Zitat:
Wenn ich euch nun richtig verstanden habe, gibt es anscheinend keine simple Möglichkeit, das standardmäßige Eingabefeld gegen ein popeliges Kombifeld zu ersetzen!?


Nein - dann hast Du uns falsch verstanden. Es gibt eine simple Möglichkeit - nur gibt es andere, elegantere.

Wenn ein modales Popup-Fenster mit ComboBox Deine Input-Box nicht ersetzen kann, dann habe ich Dein Problem immer noch nicht verstanden.

Und ich kann Oliver nur beipflichten - ein Register-Element ist besser als zwei Formulare - und es sieht auch gediegener aus. Bei so einem Formular gibt es Daten, die immer sichtbar bleiben sollen, die man außerhalb des Register-Elements platziert, und solche, die man als zweitrangig bezeichenen würde und je nach Priorität auf die erste doer zweite Seite setzt.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 10 von P.T. vom 15.09.2004, 14:59 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Also gut, noch mal zum Popup-Fenster.

Ich habe jetzt mal eine Mini-Test-DB erstellt mit zwei Tabellen (eine für die Mitarbeiter, die andere für die Firmen) (tbl_Mitarbeiter und tbl_Kundendaten).

Dann habe ich ein Formular als Menue (frm_Menue), wo ich über einen Button die Abfrage starten möchte.

Und ich habe ein Formular, in dem mir nach der Abfrage die entsprechenden Daten angezeigt werden sollen (frm_Kundendaten).
In diesem Formular ist auch ein Kombifeld (Nachname), über das ich den Mitarbeiternamen einem Kunden zuweisen kann.

Dann habe ich eine Abfrage erstellt und ins Kriterium bei Nachname wie bei oliverV beschrieben folgendes reingeschrieben:
[Formulare]![frm_Kundendaten]![Nachname]

Wenn ich das Formular über den Button im Menue öffne, bekomme ich gar nichts mehr angezeigt, geschweige denn ein Popup-Fenster.

Wie, bitte, geht es jetzt weiter?
Was habe ich falsch gemacht?

MfG
P.T.


Antwort noch nicht bewertet
Antwort 11 von oliverV vom 15.09.2004, 16:27 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

OK, neue Runde – wenden wir uns dem Problem erneut zu (wie ein Hund dem eigenem Erbrochenen).

Wir reden glaube ich immer noch etwas aneinander vorbei.

Punkt 1)
Ich glaube du verwechselst ein Pop-Up-Formular mit der Parameter-Eingabe-Aufforderung die du kennst wenn du als Kriterium Wie bla bla ... verwendes.

Ein Pop-Up-Formular ist ein „normales“ zusätzliches Formular, in den Formulareigenschaften unter dem Register „Andere“ kannst du ein Formular als Pop-Up definieren.

Ein Pop-Up wird gern verwendet, um eine Eingabe vom Benutzer zu erzwingen, da du nicht über die Taskleiste in ein anderes Formular wechseln kannst.

Punkt 2)
Du redest immer von einer Abfrage die du startest.
Wenn eine gespeicherte Abfrage die Datenherkunft eines Formulars ist, ist das OK; du kannst den SQL-String aber auch direkt als Datenherkunft des Formulars eingeben.
Führe allerdings nie eine Abfrage für den Benutzer sichtbar aus.

Punkt 3)
Formularverweis
Der Formularverweis dient dazu einen Wert aus einem anderen geöffneten Formular auszulesen. Oftmals wird dieser Wert (wie bei dir) als einschränkendes Kriterium verwendet.

D.h. der Benutzer bekommt keine Parameter-Eingabe-Aufforderung.


Vorgehensweise:
frmMenü öffnet frmMitarbeiterauswahl (kann Pop-Up sein)

frmMitarbeiterauswahl besitzt
- ein ungebundenes Kombifeld „Mitarbeiter“
- eine Schaltfläche zum Öffnen des frmKundendaten

frmKundendaten
Datenherkunft des Formulars (bzw. deine Abfrage ?) hat den Formularverweis als einschränkendes Kriterium (ersetzt dein bisheriges Wie bla bla...)
[Formulare]![frmMitarbeiterauswahl]![Mitarbeiter]

Achte darauf, das die gebundene Spalte der Felder [Mitarbeiter] im frmMitarbeiterauswahl und [Mitarbeiter] im frmKundendaten übereinstimmen.
Schau dir an, ob der Nachname oder die ID gespeichert wird.

HTH (Hope this helps)

Oliver


Antwort noch nicht bewertet