24 Stimmen

Gibt es eine Entsprechung der SUBSTRING-Funktion in MS Access SQL?

Ich möchte etwas Ähnliches innerhalb einer MS Access-Abfrage machen, aber SUBSTRING ist eine nicht definierte Funktion.

SELECT DISTINCT SUBSTRING(LastName, 1, 1)
FROM Authors;

35voto

Tomalak Punkte 320467

Sie können die VBA-Zeichenfolgenfunktionen verwenden (wie in den Kommentaren von @onedaywhen erwähnt, handelt es sich nicht wirklich um die VBA-Funktionen, sondern um deren Äquivalente aus den MS Jet-Bibliotheken. Was die Funktionsunterschriften betrifft, sie werden genauso aufgerufen und funktionieren genauso, auch wenn die tatsächliche Präsenz von MS Access nicht erforderlich ist, damit sie verfügbar sind.):

SELECT DISTINCT Left(LastName, 1)
FROM Authors;

SELECT DISTINCT Mid(LastName, 1, 1)
FROM Authors;

6voto

JP Alioto Punkte 44283

Ich glaube, es gibt MID() und vielleicht auch LEFT() und RIGHT() in Access.

4voto

webzy Punkte 330

Ich habe viel mit MSAccess VBA gearbeitet. Ich denke, du suchst nach der MID-Funktion

Beispiel

    dim myReturn as string
    myreturn = mid("bonjour tout le monde",9,4)

wird dir den Wert "tout" zurückgeben

2voto

Sverre Punkte 21

Ich konnte kein Modul von der Stange finden, das diese Funktion hinzufügte, also habe ich eins geschrieben:

In Access gehen Sie zum Menüband Datenbanktools, im Makrobereich klicken Sie auf Visual Basic. Im Bereich Projekt oben links klicken Sie mit der rechten Maustaste auf den Namen Ihrer Datei und wählen Einfügen -> Modul. Fügen Sie in das Modul folgendes ein:

Public Function Substring_Index(strWord As String, strDelim As String, intCount As Integer) As String

Substring_Index = delims

start = 0
test = ""

For i = 1 To intCount
    oldstart = start + 1
    start = InStr(oldstart, strWord, strDelim)
    Substring_Index = Mid(strWord, oldstart, start - oldstart)
Next i

End Function

Speichern Sie das Modul als "Module1" (Standard). Sie können jetzt Anweisungen wie folgt verwenden:

SELECT Substring_Index([fieldname],",",2) FROM table

0voto

Ernestico Punkte 1

Ich habe eine Aktualisierungsabfrage wie folgt verwendet: Ich habe meiner Zugriffstabelle eine leere Spalte für das Zeichenelement hinzugefügt, das ich benötigt habe. Dann habe ich die neue Spalte mit einer Aktualisierungsabfrage gefüllt, die in der "UpdateTo"-Zeile diese Logik verwendet hat: "Mid([TABELLE].[FELD],3,1)", da ich genau das 3. Zeichen des Feldes benötigte. Die vorherigen Antworten haben mich hierher geführt (danke).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X