Neuigkeiten:

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

Mobiles Hauptmenü

Datensätze nach Vorgabe von Parameter suchen und in einer Zeile darstellen

Begonnen von mohab, Juni 18, 2015, 13:42:05

⏪ vorheriges - nächstes ⏩

mohab

Guten Tag sehr geschätze Forumsmitglieder,

eine scheinbar einfache Aufgabe eskaliert wieder völlig.

Aufgabenstellung:
1 Tabelle mit den Werten Tour und Positionen
bsp:
tour ## Position
1 ## aaa
1 ## bbb
1 ## ccc
2 ## ddd
2 ## eee
Es soll nun nach Eingabe der Tour (bsp.: 1) eine Ausgabe in 1 Feld wie folgt erzeugt werden:
aaa;bbb;ccc

Kann doch nicht so schwer sein, oder?

Für eure Hilfe und Lösungsansätze bin ich wie immer sehr dankbar !
Grüße,
Mohab

MaggieMay

Hi,

dazu liest du die Tabelle mittels Recordset in einer Schleife aus und fasst die Positionen pro Artikel wunschgemäß zusammen. Das lässt sich mit Hilfe einer Funktion auch in einer Abfrage lösen. Ein Beispiel dazu findest du im dbWiki: "Liste per SQL aufbauen", unter "Access Tipps und Tricks, Anwendungsbeispiele".
Freundliche Grüße
MaggieMay

mohab

Danke Maggie,

aber das Resultat meines Nachbau-Versuchs endet in "undefinierte Funktion ´sqlliste´in Ausdruck"...!

Tipp?

Grüße,
mohab

MaggieMay

Du musst den Code der Funktion in einem allgemeinen Modul speichern.
Modul und Funktion dürfen nicht denselben Namen haben.
Freundliche Grüße
MaggieMay

mohab

so weit so gut... die Funktion findet er jetzt (danke!)
aber:  ich gebe wohl immer die falsche Anzahl an Argumenten vor.
ich kann die Argumente aber der wiki seite nicht entnehmen...!

MaggieMay

Dann zeige doch bitte den Code dazu, wie du die Funktion in der Abfrage einsetzt (-> kompletten SQL-Code).

Zitatich kann die Argumente aber der wiki seite nicht entnehmen...!
Dort gibt es aber doch Beispiele für den Funktionsaufruf...
Freundliche Grüße
MaggieMay

mohab

an den SQL-Code komm ich nicht, wegen der falschen Anzahl von Argumenten.

ich habe das ganze eben noch einmal in einem Textfeld versucht. selber fehler. meine eingabe:
=SQLListe("SELECT position FROM meinetabelle WHERE tour = " & tour; ","; ",")

MaggieMay

Lass dich nicht von den Gänsefüßchen verwirren, sie schließen jeweils einen String ein, müssen also paarig sein. Die Kommas trennen die Parameter, können aber auch als Trennzeichen eingesetzt werden.

Was möchtest du als Trennzeichen haben, das Komma oder ein Semikolon?

So könnte es bspw. klappen:
=SQLListe("SELECT position FROM meinetabelle WHERE tour = " & tour, ";", ",")
oder so, wenn tour vom Typ Text ist:
=SQLListe("SELECT position FROM meinetabelle WHERE tour = '" & tour & "'", ";", ",")
Freundliche Grüße
MaggieMay

mohab

vielen Dank für deine schnellen Antworten...

trotz copy paste... :  "der von Ihnen eingegebene Ausdruck ist syntaktisch falsch"...
Tour ist in meinem Fall ein Text, ja.
Positionen übrigens auch.
Aber wenn das falsch wäre müsste ja eine andere Fehlermeldung kommen denke ich? Diese Fehlermeldung müsste ja auf falsche klammern etc hinweisen, richtig?




mohab

jetzt bin ich komplett verwirrt:
ich habe jetzt den code doch hinbekommen:
=sqlliste(SELECT [tbl3a_positionsnr] FROM tbl3a_vl_erfassung WHERE [tbl3a_tournr] ="'" & [tbl3a_tournr] & "'",";",",")

wenn ich die Eingabe jetzt aber bestätige (Enter) löscht Access "sqlliste" aus dem code...
das Resultat ist "#Name" als Ergebnis...

DF6GL

Hallo,


naja, der Code (Ausdruck) ist noch nicht "hinbekommen"...

=sqlliste("SELECT [tbl3a_positionsnr] FROM tbl3a_vl_erfassung WHERE [tbl3a_tournr] ='" & [tbl3a_tournr] & "'";";";",")

mohab

Franz, danke dass du dich einschaltest.
es lag scheinbar nicht an der eingabe im steuerelement (die wohl zusätzlich falsch war) sondern an der Definition der Funktion.
wir haben die eben überarbeitet, jetzt funktioniert alles bestens!

tausend dank euch! auch dir maggie!!