Hoe haal ik een tekst uit een string obv een keywoord

Status
Niet open voor verdere reacties.

gerrie2

Gebruiker
Lid geworden
1 feb 2011
Berichten
6
Hallo,

op een SQL server staat een productie en een test databases.
Nu wil ik graag op een formulier aangeven welke database wordt benaderd.
Uit de MSysObjects tabel haal ik een string waar dit in staat:

Public Function GetDBName() As String
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("SELECT Connect FROM MSysObjects WHERE Type = 4")
GetDBName = rs("Connect")
End Function

Het is echter een string met meerdere keywoorden met daarachter de betreffende waarden, alles gescheiden door ";".
Wat is een goede methode om uit onderstaande string de naam achter het keywoord DATABASE te halen?

DRIVER=SQL Server;SERVER=srv001.company.com;APP=2007 Microsoft Office system;DATABASE=Batteries_TEST;Trusted_Connection=Yes

ALvast hartelijk dank voor de hulp!

Ger

PS of is er een andere -eenvoudigere- manier om de naam van de SQL database op te halen?
 
Connectionstrings zijn tweeledig samengesteld dus je moet hem dan ook tweeledig ontleden.
Stap 1: wijs de string toe aan een matrix met het SPLIT commando op basis van de puntkomma.
Stap 2: loop door alle posities in de matrix en splits die met het SPLIT commando op het =-teken
Stap 3: de LBound van stap 2 levert de parameter op (DRIVER, DATABASE etc) de UBound de waarde (SQL server, Batteries_TEST etc).
 
Hallo OctaFish,

bedankt voor jouw hulp.
Met de aanwijzingen is het gelukt om de gewenste variabele uit de string te filteren!

In eerste instantie dacht ik nog van: waarom schrijf je de code niet verder uit, maar omdat ik nu zelf ff verder moest kijken heb ik bijgeleerd!

Ik zal het probleem sluiten.

Groeten,
Ger
 
Ik had de code uiteraard wel verder voor je uitgewerkt, als je er niet uit was gekomen. Maar het is veel beter dat je het zelf hebt ontdekt :). Al mag je het resultaat ook nog wel even posten, dan hebben andere lezers er ook nog wat aan!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan