Neuigkeiten:

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

Mobiles Hauptmenü

mit Kombifeld mittels VBA filtern

Begonnen von aisha, September 24, 2014, 10:06:23

⏪ vorheriges - nächstes ⏩

aisha

Ich habe noch ein wenig rumprobiert mit den Verbesserungen die Ihr mir gegeben habt. Danke dafür.
Also Hier ist der Code

SELECT DISTINCT Klinik.Titel, Klinik.Leiter_NN, Klinik.Leiter_VN, Klinik.K_Fax, Klinik.K_Telefon, Klinik.Klinkname, Klinik.Institut, Klinik.Straße, Klinik.PLZ, Klinik.Stadt, Klinik.Klinikkürzel, Klinik.Funktion, Klinik.D_NN, Klinik.D_VN, Klinik.D_Tel, Klinik.D_Fax
FROM Klinik
ORDER BY Klinik.Stadt;

Er zeigt mir die Tabelle jetzt ohne Fehlermeldung an, jedoch nimmt mein Kombifeld die Spalte Leiter_NN und nicht die Straße.
Mein Kombifeld hat 1 Spalte. (nur Stadt)
aisha

MaggieMay

Wenn das die Datensatzherkunft des Kombifeldes sein soll und es tatsächlich nur eine Spalte hat (ich tippe mal auf mindestens zwei), wozu dann die ganzen Datenfelder?

Möglicherweise wärest du mit zwei abhängigen Kombifeldern besser bedient. Eins zur Auswahl der Stadt und ein weiteres zur Auswahl der Klinik, bspw.
Freundliche Grüße
MaggieMay

aisha

Die anderen Datenfelder habe ich für den Deteilbereich eingeordnet. Die Datenfelder werden angezeigt wenn ich die Stadt ausgewählt habe.

DF6GL

HAllo,

red doch mal verständlich...

Zeige einfach den SQL-String aus der Datenherkunft des Formulars, bzw. den SQL-String der Abfrage, wenn dort eine solche steht.

Zeige zusätzlich den SQL-String aus der Datensatzherkunft des Kombifeldes, bzw. wenn dort ein Abfragename steht, den SQL-String dieser Abfrage.

aisha

@DF6GL
Hey, du musst mich nicht so angehen auch wenn du voll der checker in Access bist. Ich kann mich nicht besser ausdrücken.

SQL-String Kombifeld:Klinik Abfrage und wenn ich auf ... klicke kommt
SELECT DISTINCT Klinik.Titel, Klinik.Leiter_NN, Klinik.Leiter_VN, Klinik.K_Fax, Klinik.K_Telefon, Klinik.Klinkname, Klinik.Institut, Klinik.Straße, Klinik.PLZ, Klinik.Stadt, Klinik.Klinikkürzel, Klinik.Funktion, Klinik.D_NN, Klinik.D_VN, Klinik.D_Tel, Klinik.D_Fax
FROM Klinik
ORDER BY Klinik.Stadt;

Beim Formular steht Datensatzquelle ebenfalls Klinik Abfrage.

MaggieMay

Erkläre doch bitte mal, warum du die Abfrage als Datensatzherkunft des Kombifeldes einsetzt, wenn es lediglich dazu dient, eine Stadt auszuwählen.

Und dann schau doch einmal die folgenden Eigenschaften des Kombifeldes nach:
- Anzahl Spalten
- Spaltenbreiten
- gebundene Spalte

Und dann äußere dich bitte auch noch zu meinem Vorschlag mit den zwei Kombifeldern.
Freundliche Grüße
MaggieMay

DF6GL

#21
Hallo,

wo "geh ich Dich denn an" ??

Ich(wir) brauchen genaue und konkrete Angaben, um Dir helfen zu können. 

Ich zitiere mich selber:
Zitat
Wenn also nach dem Städtenamen gefiltert werden soll, dann muss zunächst das Tabellenfeld für den Städtenamen in der Datenherkunft des Formulars vorhanden sein. Das Kombifeld erhält eine Abfrage etwa so in seiner Datensatzherkunft:

  Select distinct Stadt from Klinik order by Stadt


Gefiltert wird entspr.  den vorangegangenen Hinweisen:

Me.Filter = "Stadt Like '" & Me!cbofilterstadt & "*'"

Datentyp von "Stadt": Text
Nutzung von "Like" und "Sternchen" , um bei  einem leeren Kombifeld alle Datensätze im Formular anzuzeigen.


Demnach ist die Datensatzherkunft für das Kombifeld falsch, was schon mehrfach angesprochen wurde.  Wenn Du nun zu einer Lösung des Problems kommen willst, dann ändere die Einstellung für das Kombi nach o. g. Vorschlag.


PS: weitere Einstellungen für das Kombifeld:

Spaltenanzahl: 1
gebundene Spalte: 1
Spaltenbreiten: 4cm

mit Ereignisprozedur:

Sub cbofilterstadt_Afterupdate()
Me.Filter = "Stadt Like '" & Me!cbofilterstadt & "*'"
Me.FilterOn=True
End Sub


aisha

Also ich hatte das so verstanden, das ich die Abfrage machen sollte, weil ich ja die mehrfach vorkommenden Ausgaben weg haben wollte. Damit meine ich zum Beispiel Würzburg, Hamburg und so weiter. Ich hatte vorher ja die Tabelle mit dem Feld Stadt als Datensatzherkunft drin.

Eigenschaften des Kombis
Anzahl Spalten: 2
Spaltenbreite:0cm;2,54cm
gebundene Spalte: hab ich nicht gefunden

Zwei von einander abhängende Kombifelder benötige ich miner Meinung nach nicht, da ich meist in einer Stadt nur 1 Klinik habe. 

aisha



aisha

OK jetzt geht es wieder aber mein Problem mit der Auflistung der mehrfachen Städten hab ich trotzdem noch. Deswegen hatte ich ja die Umstellung mit der Abfrage gemacht

MaggieMay

Wenn du das Kombifeld aus der Klinik-Tabelle fütterst und die ID mitführst nützt dir DISTINCT wenig. Doppelte Städte bekommst du immer dann, wenn du mehr als eine Klinik in der Stadt gespeichert hast. Andererseits nützt dir die Auswahl der Stadt allein nichts, wenn sie mehrere Kliniken hat.
So geht es also nicht, das solltest du mal einsehen. Und daher der Vorschlag mit den zwei Kombifeldern.

Oder du nimmst es in Kauf, durch die nach Ort gefilterten Datensätze zu blättern, um die gesuchte Klinik zu finden.
Freundliche Grüße
MaggieMay

aisha

Anbei habe ich einen Bildschirnscreen gemacht. So ungefähr sieht das dann Später aus.
Es ist alles gleich ausser der Name und Vorname und eventuell Fax oder so was. Die Klinik jedoch ist gleich für diese Stadt. Und trotzdem hat mein Kombifeld 2x Würzburg enthalten. Wenn ich eins von denen anklicke erscheinen auch beide DS aber ich will nun mal nur einmal im Kombifeld Würzburg drinstehen haben. Anbei habe ich eine Anfrage aus einem anderen Forum gefunden die das beschreibt was ich möchte. Hier wurde auch geraten eine Abfrage zu machen.

"
ich habe eine Frage... bzw. ein Problem, ich habe eine Tabelle in der 200 Einträge vorhanden sind! Im Formular habe ich eine Combobox erstellt (RowSourceType: Tabelle/Abfrage ;; RowSource: "Name der Abfrage")!
Nun sind in dieser Tabelle 10 mal "Computer" vorhanden, wie kann ich nun machen, dass "Computer" in dieser Combobox nur 1 mal und nicht 10 mal dargestellt wird? "

MaggieMay

Ich verstehe nicht, warum du dem Vorschlag von Franz von Heute um 14:21:20 nicht folgst.
Dann wäre das Problem doch längst erledigt.

PS:
Dass es sich um ein Endlos-Formular handelt hättest du gleich zu Anfang sagen können.
Freundliche Grüße
MaggieMay

DF6GL

Hallo,

ich verstehe nicht, warum das nicht verständlich ist:  :'(

ZitatIm Formular habe ich eine Combobox erstellt (RowSourceType: Tabelle/Abfrage ;; RowSource: "Name der Abfrage")!
Nun sind in dieser Tabelle 10 mal "Computer" vorhanden, wie kann ich nun machen, dass "Computer" in dieser Combobox nur 1 mal und nicht 10 mal dargestellt wird? "



--->  RowSource:  Select distinct Computer from [Name der Abfrage]

In der Select-Liste NUR EIN Feld mit DISTINCT davor...