Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Feldinhalt in SQL-Anweisung

Empfohlene Antworten

Veröffentlicht

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

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]

yo die Idde is schon ma net schlecht das Problem ist nur das es um ein Suchformular geht und das eine Feld ein Eingabefeld im Formular ist und nicht in einer Tabelle steht.

(net wundern sitz bei Commander_COM)

Thx4uhelp

yo die Idde is schon ma net schlecht das Problem ist nur das es um ein Suchformular geht und das eine Feld ein Eingabefeld im Formular ist und nicht in einer Tabelle steht.

(net wundern sitz bei Commander_COM)

Thx4uhelp

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]

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

Vielleicht meinst du:

Select * from Tabelle where Feld LIKE Forms!Formularname!Formularfeld.value;

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.