Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: harvey186 am August 28, 2010, 13:06:39

Titel: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 28, 2010, 13:06:39
Moin zusammen,

also, ich habe einen Bericht gebastelt. Die Datenauswahl erfolgt per Prompt. Nun soll der User die Möglichkeit haben mehrere Werte in das Prompt einzugeben.
Folgendes hab ich schon erfolglos probiert:
Wert1;Wert2 
Wert1+Wert2
Wert1,Wert2

Ich habe auch schon per google einiges gefunden, aber leider alles ziemlich unverständlich für nen Laien.
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: Manfred S am August 28, 2010, 16:09:44
Hallo,
ich vermute einmal aufs Blaue geraten was Du willst, über den gesamten Datenbestand (= alle einzelnen Dateneingabefelder) in einer Suchleiste MEHRERE Begriffe aus den jeweiligen Datenfeldern zusammenfügen?

Das  sollte so nicht gemacht werden, weil durch unterschiedliche Eingaben gleichgemeinter Begrifflichkeiten Berichtsdatenverluste entstehen. Dein Datenmodell sollte so aussehen, das Eingaben in einem Dateneingabefeld einem Standart unterliegen. Also für die Eingaben Kombifelder zur Verfügung stehen, die ihre Informationen aus dahinterliegenden Tabellen beziehen. 

Mit einem "formulargesteuerte Abfragesystem" greifst Du dann auf eben diese Tabellen zurück und stellst Dir dann einen Bericht zusammen.

Wenn ich es mal so verstanden habe, was als Endprodukt rauskommen soll.

Gruß

Manfred


Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 28, 2010, 16:26:39
Ne, so hab ich das nicht gemeint.

Beispiel:
SpalteA  SpalteB
Meier      Bälle
Meier      Tassen
Meier      Schuhe,
Müller      Tassen
Müller      Bilder
Müller      Schuhe,
Schulze   Bälle
Schulze   Tassen
Schulze    Bücher

Im Promt steht nun "Artikel eingeben:"
und dort will ich eingeben: Bälle UND Schuhe. Nun sollen alle Datensätze angezeigt werden in denen Bälle oder Schuhe seht.

Das heißt, ich will in dem Prompt für SpalteB mehrere Values eingeben können.

Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: Manfred S am August 28, 2010, 16:46:30
Da kann ich Dir mangels Kenntnis dann auch nicht weiterhelfen. Ist und bleibt aber fehlerträchitg.
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 28, 2010, 17:12:58

Eigentlich sollte das nicht Fehlerträchtig sein. Jeder Query, bzw. jeder SQL kann sowas. Und Access baut arbeitet ja mit SQL.

Aber trotzdem Danke.
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: Manfred S am August 28, 2010, 19:02:12
Hallo,
hat mir ja immer noch keine Ruhe gelassen und so ein Problem am Wochendende nervt, wenn man weiterkommen will und eine Lösung in Sicht ist. Versuchs mal hiermit. Mit der Lösung ist aber auch keine händische Eingabe verbunden...

http://www.access-home.de/cms/?kat=29&subsite=1&cms_id=0&bsp_db_id=95

Gruß

Manfred
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 28, 2010, 19:08:46
Danke Manfred,

werd ich ich werd mir es mal anschauen. Aber wohl erst Morgen.
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 29, 2010, 09:31:23
Moin Manfred,

ne, das war's nicht. Ich habe mal eine von den Mustertabellen umgebaut. Ich will nun die Daten so selectieren, dass mir alles von Claus UND Eva auf dem Bericht angegeben wird.

Gruß,
Harvey

[Anhang gelöscht durch Administrator]
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: MzKlMu am August 29, 2010, 09:45:32
Hallo,
wenn Du Deine Beispiele nach Access2003 konvertierst, erhältst Du eher Hilfe, Access2007/10 haben noch nicht so viele.
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 29, 2010, 10:06:52
OK, hier nochmal im 2003 Format

[Anhang gelöscht durch Administrator]
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: MzKlMu am August 29, 2010, 10:23:41
Hallo,
aber das funktioniert doch wie gewünscht.
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 29, 2010, 10:40:00
nee, irgendwie versteht mich keiner. Und ich dachte, das wäre so einfach.

Also mal angenommen, ich habe die beigelegte Tabelle und ich möchte nun nun die Daten so selectieren, dass mir alles von Claus UND Eva auf dem Bericht angegeben wird.
Auf dem Großrechner würde ich jetzt einen Query wie folgt machen:
Nam  LIST   'Claus' 'Eva'
In Excel würde ich einen Filter setzten und dabei "Claus" und "Eva" auswählen.
In beiden Fällen würden mir nur die Datensätze angezeigt, wo im Feld [Nam] entweder "Claus" oder "Eva" steht. und genau sowas suche ich. Das muß nicht per DropDown oder Auswahlliste oder so erfolgen, da der User genau was, was er sucht.





[Anhang gelöscht durch Administrator]
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: MzKlMu am August 29, 2010, 10:46:35
Hallo,
ZitatIn beiden Fällen würden mir nur die Datensätze angezeigt, wo im Feld [Nam] entweder "Claus" oder "Eva" steht. und genau sowas suche ich.
Aber genau das funktioniert doch. Du wählst in dem Listenfeld Claus und Eva und im Bericht hast Du Claus und Eva.
So wie Du es haben wolltest.
Jediglich in die Datenherkunft des Listenfeldes solltest Du noch das Schlüsselwort DISTINCT aufnehmen, damit die Namen nicht doppelt sind.
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 29, 2010, 10:56:15
ich habe das Ganze aus einer Beispiel Datenbank. Wenn ich das richtig sehe, ist das Listfeld ein ungebundendes Feld mit der Anweisung:
SELECT Namen.Nam FROM Namen ORDER BY Namen.Nam;

Wo schreibe ich nun das DISTINCT hin ?? Am Anfang und am Ende klappt nicht.
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: MzKlMu am August 29, 2010, 11:02:47
Hallo,
so:
SELECT DISTINCT Namen.Nam FROM Namen ORDER BY Namen.Nam;
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 29, 2010, 11:06:38
na, das hört sich ja gut an und sieht gut aus.  :D
Ich werd das nachher mal in meinen "echten" Bericht einbauen und hoffe, dass es dort auch so gut aussieht.

Ich meld mich dann wieder.

Danke schon mal.
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 29, 2010, 12:55:11
OK, wenn das Feld für die Auswahlliste ein String ist, klappt es gut. Nun wollte ich das auf ein Zahlenfeld umbauen und bekomme einen Fehler.
Private Sub Befehl1_Click()

Dim LF As Control
Dim Zeile As Long
Dim Erg As Long <-------------------------------------  Das habe ich von String auf Long geändert
Dim t As Integer

' Auswahl im listfeld durchlaufen und auf ausgewählte DS ausgeben
' Listfeld setzen
    Set LF = Me.Liste
' For-Nextschleife starten
    For Zeile = 0 To LF.ListCount - 1
    ' Schauen ob Eintag markiert
        If LF.Selected(Zeile) = True Then
        ' Zähler erhöhen
            t = t + 1
        ' Wenn ja Ausgeben
            Erg = Erg & "[Nam]='" & LF.Column(0, Zeile) & "' OR "     <----- Diese Zeile wird angemeckert  (Laufzeitfehler 13)
        ' Auswahl zurücksetzen, wenn aktiviert
            If DelAW = -1 Then
                LF.Selected(Zeile) = False
            End If
        End If
    Next Zeile
    If t = 0 Then
        MsgBox "Bitte wählen Sie die Daten aus, die im Bericht ausgegeben werden sollen!", 48, "http://www.access-home.de"
    Else
        Erg = Left(Erg, Len(Erg) - 4)
        DoCmd.OpenReport "TestBericht", acViewPreview, , Erg                       
    End If
   
End Sub
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: MzKlMu am August 29, 2010, 19:04:24
Hallo,
Du kannst einer Zahl (Long) keinen String zuweisen. Erg ="Nam ...." ist doch eine Text, wie willst Du da eine Zahl zuweisen?
Erg muss String bleiben, zwingend.
Was hast Du genau vor?
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 29, 2010, 20:06:26
Ich habe in dem Feld jetzt aber einen numerischen Wert eingepflegt.
Ich hab mir aber zwischenzeitlich so geholfen, dass ich bei der abfrage das Feld auf Text umwandle. Das funktioniert auch, aber es wäre halt eleganter, wenn das von vornherein mit einer Zahl funktionieren würde.
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: MzKlMu am August 29, 2010, 20:12:01
Hallo,
in welchen Feld hast Du eine Zahl eingepflegt?
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: Manfred S am August 29, 2010, 22:12:05
Hallo,
ich sehe nur, dass sich die Anforderungen stetig ändern  ???  :-\

#2 Artikel
"...Promt steht nun "Artikel eingeben:"
und dort will ich eingeben: Bälle UND Schuhe. Nun sollen alle Datensätze angezeigt werden in denen Bälle oder Schuhe seht...".

und in #7 sind es wieder Personennamen und dann wieder Zahlen.

"Eigentlich sollte das nicht Fehlerträchtig sein. Jeder Query, bzw. jeder SQL kann sowas. Und Access baut arbeitet ja mit SQL."
Das habe ich auch nicht gemeint. Gemeint ist die wenig anwenderfreundliche Lösung durch fehlerträchtige Eingabe/n des Users durch dessen händisch eingegebenen Suchbegriff.
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: oma am August 30, 2010, 00:39:41
Hallo,

wenn du im Listenfeld Zahlen zur Auswahl hast, musst du ändern:

Dim Zeile As Long
Dim Erg As String
Dim t As Integer

    For Zeile = 0 To Me!Liste.ListCount - 1
        If Me!Liste.Selected(Zeile) = True Then
            t = t + 1
            Erg = Erg & "[DeinNummernFeld]=" & Me!Liste.Column(0, Zeile) & " Or "  <------ Änderung

                If DelAW = -1 Then
                    Me!Liste.Selected(Zeile) = False
                End If
        End If
    Next Zeile
    If t = 0 Then
        MsgBox "Bitte wählen Sie die Daten aus, die im Bericht ausgegeben werden sollen!", 48
    Else
        Erg = Left(Erg, Len(Erg) - 4)
        DoCmd.OpenReport "TestBericht", acViewPreview, , Erg
     End If
   
End Sub



Gruß Oma
Titel: Re: Wie kann ich in ein Promt mehrere Werte eingeben?
Beitrag von: harvey186 am August 30, 2010, 07:22:02
Danke, das war's wohl.

Ich werd das später einbauen.

Gruß
Harvey