• 16.04.2024, 20:33
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

VBA - Zeichenkette abschneiden...

Donnerstag, 12. Juni 2014, 11:09

Hi zusammen,

ich muss mich hier gerade mit VBA in Access rum schlagen und das ist so gar nicht mein Universum.

Hab hier ein Formular mit verknüpiften ListBox Elementen. Die sind mit einer Abfrage verknüpft die je auf eine Spalte einer Tabelle zeigen...
Ich bau gerade eine Methode welche ein ListBox-Objekt inkl. auswahl etc. übergeben bekommt und dieses auswertet. Das funktionuckelt auch schon soweit, was noch fehlt ist folgendes:
Ich möchte aus dem ListBox Objekt jetzt auch die verknüpfte Spalte ermitteln.

Die einzige brauchbare Methode der ListBox selber dafür ist .RowSource, die gibt mir das SQL der verknüoften Abfrage zurück...
Aus dem kann ich nun natürlichlich verknüpfte Spalte raus schneiden... unter Java wäre ich damit jetzt schon 20 mal fertig (Tokenizer und gut...) aber bei VBA fehlen mir die sprachfeatures um einen String so auseinander zu nehmen...
Hat hier einer eine Schlaue Idee wie man das einfach lösen kann?

Beispiel String:
SELECT spalte FROM tabelle ORDERED BY spalte <- es würde reichen alles Vor ORDERED BY abzuschneiden... und "ORDERED BY" als Token zu benutzen :rolleyes:

Sören

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Man_In_Blue« (12. Juni 2014, 11:15)

A sinking ship is still a ship!

Donnerstag, 12. Juni 2014, 13:17

hi,

ich weiß wieder mal nicht so genau, was du willst... ich versuch´s trotzdem:
es heißt übrigens "order by" und NICHT "orderED by"...

etwa so:
Dim strFIELD as string

strFIELD = LISTBOXNAME.column(0) oder 1, 2 usw.

dann also
"SELECT" & strFIELD & " FROM tabelle ORDER BY " & strFIELD

gruß,
seaslug

Donnerstag, 12. Juni 2014, 13:25

Huhu,

na ich will den umgekerten Fall.
Nene String bekomm ich grad selber noch zusammen gesetzt. ;)

ich bekomme den oben genannten String zurück aus der ListBox geliefert... (ListBox.RawSource) und ich möchte ihn auf "ORDER BY spalte" bzw. eben nur auf "spalte" zusammen kürzen...
Oder im Konzext, ich möchte als String, den Namen der Spalte erhalten, auf den sicht mein ListBox Element in der UI bezieht.


Analog in Java würde über den Tokenizer gehen, ORDER BY als Trenner setzen und mir den zweiten Wert zurück geben lassen. In VBA habe kenne ich die passenden Standardmethoden nicht... Und google hat mir nichts brauchbares zurück gegeben.

EDIT:
Hab's nun mit dem Sprachelement inStr gelöst... danach hatte ich gesucht...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Man_In_Blue« (12. Juni 2014, 13:42)

A sinking ship is still a ship!

Donnerstag, 12. Juni 2014, 13:49

damit sollte es gehen eventuell mußt aber das Ganze noch verfeinern.

Quellcode

1
2
3
4
5
6
7
8
9
10
Function Abschneiden(sQuery As String) As String
    Dim iOrderPosition As Integer
    iOrderPosition = InStr(1, sQuery, "ORDER BY", vbTextCompare)
    If iOrderPosition = 0 Then
        'kein Order By gefunden Fehlerbehandlung
        Abschneiden = ""
    Else
        Abschneiden = Mid(sQuery, iOrderPosition + 9)
    End If
End Function

Edit
Ups ein paar Minuten zu spät

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »andreas_322« (12. Juni 2014, 13:50)

Donnerstag, 12. Juni 2014, 17:13

Jo, im Prinzip hab ich's so gemacht. Danke ;)

Bin's einfach 0 gewohnt dass das String Objekt selber keine Methoden mit bringt und es keine kompakteren Sprachtools für so einfache String-Operationen gibt... :/
Unter VBA ist Coden gerade etwas wie Laufen mit zusammen gebundenen Schnürsenkeln... ;)

Sören
A sinking ship is still a ship!

Ähnliche Themen