Toon posts:

[VB] Enumaration van Strings?

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
De laatste tijd ben ik een aantal problemen tegenkomen waarbij ik als parameter van een functie alleen een beperkt aantal verschillende waardes wil meegeven. Dit riekt dus naar een enum :).
Maar dat is (uiteraard) geen probleem. Het probleem is dat ik eigenlijk een enum van strings wil maken. Het volgende voorbeeld illustreerd het een en ander:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit

Private Enum enumTest
  fieldTest
  fieldTwee
  fieldDrie
End Enum

Private Sub updateDatabase(sField As enumTest, sNewValue As String)
Dim sSQL As String

  sSQL = "UPDATE tabel " & _
       " SET " & _
       sField & " = '" & sNewValue & "'"
       
  'Execute sSQL
End Sub

De parameter sField van de functie updateDatabase kan dus maar een beperkt aantal waardes hebben (nl. alleen de velden die voorkomen). De namen van de elementen uit de enumaration zijn ook de namen van de velden in de DB (om het simpel te houden).

Dit gaat zo natuurlijk niet werken. Om dit werkend te krijgen zie ik twee oplossingen:
1) Ik kan natuurlijk de veldnaam als string meegeven, maar dan moet je de database structuur er naast houden en da's natuurlijk niet zo netjes *D.
2) Ik kan ook steeds gaan testen op de waarde van de variabele en die zelf omzetten naar een string, dus:
code:
1
2
3
4
5
6
7
8
9
10
  Select Case sField
    Case fieldTest
    sFieldName = "fieldTest"
    
    Case fieldTwee
    sFieldName = "fieldTwee"
    
    Case fieldDrie
    sFieldName = "fieldDrie"
  End Select

Maar dit is wel heel veel code, en bij meer dan 10 velden heel moeilijk te onderhouden ;(

Nu is mijn vraag: Hoe kan dit makkelijk en mooi opgelost worden :?

  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 09:12

johnwoo

3S-GTE

Ik zou zeggen, definieer er een paar mooie string constanten voor :)

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


Verwijderd

Topicstarter
Op vrijdag 08 februari 2002 21:24 schreef johnwoo het volgende:
Ik zou zeggen, definieer er een paar mooie string constanten voor :)
Kan je dit iets toelichten? Want met string constantes moet ik nog steeds de naam de constantes weten...
Of kan je enums van constantes maken :?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14-08 12:38

Crazy D

I think we should take a look.

Als je in je enum zelf geen waardes zet (dus dat ie gewoon van 0 tot n loopt), kun je een array vullen met de string-versies, en via een functie makkelijk opvragen. Waarbij de enumWaarde dan dus de index in de array is.

Exact expert nodig?


Verwijderd

Topicstarter
Op zaterdag 09 februari 2002 12:30 schreef Crazy_D het volgende:
Als je in je enum zelf geen waardes zet (dus dat ie gewoon van 0 tot n loopt), kun je een array vullen met de string-versies, en via een functie makkelijk opvragen. Waarbij de enumWaarde dan dus de index in de array is.
Da's inderdaad een heel aardig idee! Dat ga ik dan maar eens proberen. Bedankt! :)