PDA

Vollständige Version anzeigen : Datenansicht mit: Me.RecordSource = "SELECT...


Gast
25.09.2003, 16:52
Guten Abend,
Für jede Hilfe bin ich sehr dankbar.

Ich möchte bestimmte Datensätze in einem Formular über „RecordSource“ anzeigen.
Zuerst gebe ich das Auswahlkriterium (String) in ein ungebundenes Textfeld (dfSuche) ein. Dann wird durch das Klicken auf eine Befehlsschaltfläche die neue Datenquelle ermittelt. (tblDaten ist die Grundtabelle mit allen Datensätzen, Suchfeld ist das Feld in dem gesucht werden soll nach dem eingegebenen Kriterium (dfSuche)).


Me.RecordSource = "SELECT * FROM tblDaten WHERE ([Suchfeld] = Like " * " & [dfSuche] & " * ")"


Leider klappt es nicht...
Danke
Helena

Nouba
25.09.2003, 17:04
Hallo,

da scheinen einige Leerzeichen um die Sterne herum überflüssig zu sein, dafür fehlen aber die Krähenfüße ('), die bei Übergabe von Text an SQL_Zeichenketten erforderlich sind. Eckige Klammern braucht man nur, wenn Sonderzeicheichen verwendet werden.
Me.RecordSource = "SELECT * FROM tblDaten WHERE Suchfeld = Like '*" & Me!dfSuche & "*'"

Gast
25.09.2003, 18:31
Hallo nouba,

vielen Dank für Deine Antwort.
Wenn ich den Code anwende kommt leider eine Fehlermeldung:

Syntaxfehler (fehlender Operator) in Abfrage 'Suchfeld = Like'*Test*",

Kannst Du mir noch einen Tipp geben, was noch fehlt?

DANKE
Helena

Nouba
25.09.2003, 18:47
zwischen Like und dem ' muß ein Leerzeichen stehen, so wie ich es geschrieben habe.

Arne Dieckmann
25.09.2003, 19:37
Ich würde es mal so versuchen:

Me.RecordSource = "SELECT * FROM tblDaten WHERE Suchfeld Like '*" & Me!dfSuche & "*'"

Das Gleichzeichen war IMHO falsch.

Gast
25.09.2003, 19:43
Jungs Ihr seid KLASSE!!!

Danke für die Hilfe. Das "=" Zeichen war zuviel.

Helena

Nouba
25.09.2003, 19:56
@Arne,

Hasen haben halt bessere Augen als Affen, (weil sie Möhren essen?). :D

Gast
26.09.2003, 08:57
Noch mal kurz nachgefragt.
Wie muß der Code sein, wenn das Suchfeld numerisch ist? So wie unten dargestelt klappt es nicht.

Me.RecordSource = "SELECT * FROM tblDaten WHERE Suchfeld = Me!dfSuche”

Gibt es Literatur, wie bei Sql mit den Anführungszeichen und &... verfahren werden soll?

Danke und schönes Wochenende
Helena

Nouba
26.09.2003, 09:23
Hallo,

Du willst eine Zeichenkette zusammensetzen. Dafür kennt sowohl VBA als auch Jet-SQL den Operator &. Alles was innerhalb der Anführungszeichen steht, wird 1:1 in die Eigenschaft RecordSource übernommen. Du brauchst aber im Where Ausdruck für das numerische Suchfeld den (ausgewerteten) Wert des Steuerelements. Das würde dann so aussehen.
Me.RecordSource = "SELECT * FROM tblDaten WHERE Suchfeld = " & Me!dfSuche
Für Texte kann " oder ', für einen Datumswert # als Trennzeichen verwendet werden. Bei Zahlen mit Nachkommastellen wandelt man den Wert idealerweise int der Str$-Funktion in die Punkt-Schreibweise um.
Zahl: "... WHERE Feld = " & Variable
Text: "... WHERE Feld = '" & Variable & "'" ' oder
"... WHERE Feld Like '*" & Variable & "'"
Datum: "... WHERE Feld = " & Format$(Variable, "\#yyyy-mm-dd\#") ' oder
"... WHERE Feld = " & Format$(Variable, "\#mm\/dd\/yyyy\#")
Double: "... WHERE Feld = " & Str$(Variable)

Gast
26.09.2003, 10:55
Hallo nouba,

WOW - danke für verständliche Erklärung für sql-Anweisungen.
Es ist eine klasse Fähigkeit, Dinge auf dem Punkt zu bringen, so das es jeder versteht.

Nochmals Danke und schönen Tag noch

Helena