Zum Inhalt springen

Feldinhalt in SQL-Anweisung


Commander_COM

Empfohlene Beiträge

Ok, die Suchfunkution hats nichtz gebracht, also hier die Frage....

Ich hab ne Abfrage und möchte in die SQL-Anweisung dieser Abfrage den Inhalt eines Textfeldes mit als where-Bedingung hineinnehmen. Wie lautet die korrekte Syntax, mit der ich dieses Feld ansprechen kann. Das ganze soll OHNE VBA gehen...

Bsp:

Select Bsp from Bsptab where bspnr= [Feldinhalt]

THX4URHLP

Cmd.COM

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin Commander_COM;

ich verstehe deine Frage zwar nicht ganz, aber ich interpretiere einfach mal nen bisschen. Kann es sein, dass du einen Teil des Feldes bspnr suchst ? Dann wäre es so:

SELECT [bsp]

FROM [bsptab]

WHERE [bspnr] LIKE [%Feldinhalt%]

Stünde dann in dem Feld zB eine 2 wäre das Resultset alles, wo eine 2 vorkommt. Die %-Zeichen stehen für ein beliebiges Zeichen vor und hinter dem inhalt von [Feldinhalt].

Oder suchst du einen Satz, wo [Feldinhalt] in einer anderen Tabelle steht, allerdings auch das Feld [bspnr] darstellt? Dann wäre es so:

SELECT [bsp]

FROM [bsptab]

WHERE [bspnr] IS IN (SELECT [bsp1] FROM [bsptab2] WHERE [bspnr] = [Feldinhalt])

Gruß

[0x51]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich diesmal interpretiere, meinst du die Parameterabfrage in Access. Wenn das so sein sollte, dann schaue in der Online-Hilfe unter "Erstellen einer Parameter-Abfrage". Da kommt dann so ein kleines PopUp-Fenterchen, wo man einen Wert eingeben kann. Also Zum Beispiel: Bitte geben Sie eine Nummer für den Wert des Feldes [bspnr] an:"

Gruß

[0x51]

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm, nein ich meine mit Textfeld so ein kleines dummes ungebundenes Formularfeldchen, wo man selber Text neischreiben kann....

Das bekommt nen Namen und heißt zb Textfeld1 jetzt bei mir.

so und dass was ich dann da reingeschrieben habe, soll mit in die sql anweisung eines zweiten feldes, welche bei den eigenschaften dieses zweiten feldes zu finden ist und DATEN-> Datensatzherkunft da steht irgendwo die Sql-Anweisung select blablabla und da soll ans Ende, where Nr=[Textfeld1.Value] oder so. wie ich nun genau dieses textfeld anspreche möchte ich gerne von euch wissen, denn das weiß ich net.

So, ich hoffe, ich habs jetzt besser beschrieben

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by [0x51]

Moin Commander_COM;

Die %-Zeichen stehen für ein beliebiges Zeichen vor und hinter dem inhalt von [Feldinhalt].

[0x51]

@0x51:

sorry, dass ich dich enttäuschen muss, aber % steht für beliebig viele Zeichen, das ? steht für ein Zeichen.

@Commander_com:

Wenn du ein ungebundenes Formular hast, dann hast du ohne VBA sowieso keine Chance. Ich nehme mal an, dass er Suchen soll, sobald du auf einen Button drückst. Hier mal ein Vorschlag für eine Kundensuche mit mehreren Suchoptionen:

Private Sub btn_suchen_Click()

Dim rst As DAO.Recordset

Dim SQL As String

' Allgemeine Festlegungen

If g_db Is Nothing Then Set g_db = CurrentDb()

SQL = " SELECT K_Name. K_Vorname, K_Strasse FROM tbl_Kundendaten WHERE 1=1"

if vartype(me.F_Name) <> vbnull then

sql = sql & " AND K_Name LIKE '*" & me.f_name & "*'"

end if

if vartype(me.F_Vorname) <> vbnull then

sql = sql & " AND K_Vorname LIKE '*" & me.f_vorname & "*'"

end if

if vartype(me.F_strasse) <> vbnull then

sql = sql & " AND K_strasse LIKE '*" & me.f_strasse & "*'"

end if

set rst = db.openrecordset(sql)

if rst.eof then

msgbox "keine daten gefunden"

else

rst.movelast

if rst.recordcount = 1 then

docmd.openform "frm_Kunden_Anzeigen"

else

docmd.openform "frm_suchergebnis", openargs:=sql

endif

endif

rst.close

docmd.close acForm, Me.Name

End Sub

Erklärung:

WHERE 1=1 erspart dir die Prüfung beim zusammensetzten vom SQL - String, ob du jetzt schon ein Where drin hast oder nicht

Bei keinem gefundenen Kunden -> Fehlermeldung

bei einem gefundenen Kunden -> Kunden dirket anzeigen

bei mehreren gefundenden Kunden -> Auswahlformular öffnen.

Gruß

Alex

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...