[VB] Dropdown - andere waarde opslaan

Pagina: 1
Acties:

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 24-05 09:56

Kaastosti

Vrolijkheid alom!

Topicstarter
Ik heb een formulier waarin een dropdown menu zit. Dat menu is aangemaakt als een dropdown list, aangezien er altijd een keuze gemaakt moet worden uit die lijst. De lijst die er in komt, wordt gehaald uit informatie uit een MySQL database.

Op het moment dat er wat toegevoegd of gewijzigd wordt, moet de gekozen waarde dan ook weggeschreven worden in de database. Tot zover is dat allemaal okee en het werkt.

Toen kwam men op het leuke idee dat er een verschil moest zijn tussen hetgeen wat weggeschreven wordt en hetgeen wat te zien is in het menu. Daarmee bedoel ik dat er een naam in de dropdown staat, terwijl het bijbehorende ID weggeschreven wordt.

Allemaal heel prachtig, maar ik krijg het niet voor elkaar. Hij schrijf gewoon weg wat er in dat veld staat. Ik heb geprobeerd een array aan te maken waarin de 'schaduwwaarden' staan en om die dan weg te schrijven, maar op het punt dat het geheel opgeslagen wordt, is die array niet meer bekend. Die array wordt namelijk opgebouwd op het moment dat de data gevraagd is, wat in een aparte function gedaan wordt.

Mijn vraag hierover is eigenlijk of er een alternatieve of nieuwere versie van een dropdown bestaat waarmee iets dergelijks makkelijk mogelijk is. Ik heb al een beetje rond zitten kijken, maar aangezien ik nog niet zo gek lang met VB bezig ben ken ik ook niet de places-to-be als het op scripts en dergelijken aan komt :)

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 18:39

RayNbow

Kirika <3

Uitgaande van VB6 neem ik aan dat je een ComboBox met Style Dropdown List (=2) heb. Als deze lijst ongeordend is (.Sorted = False), dan kan je items op deze manier toevoegen:

Visual Basic 6:
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Load()
    Combo1.Clear
    
    Combo1.AddItem "Naam 1"
    Combo1.ItemData(Combo1.ListCount - 1) = 10
    
    Combo1.AddItem "Naam 2"
    Combo1.ItemData(Combo1.ListCount - 1) = 20
    
    Combo1.AddItem "Naam 3"
    Combo1.ItemData(Combo1.ListCount - 1) = 30
End Sub


De ComboBox houdt twee lijsten bij. Een Strings lijstje (.List(Index)) en een Long lijstje (.ItemData(Index)). De eerste wordt gebruikt om wat de lijst moet tonen, de tweede voor eventuele numerieke informatie die je eraan wilt koppelen.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 26-05 23:39

mulder

ik spuug op het trottoir

Er is ook een DBCombobox waar je een value en een text veld hebt.

oogjes open, snaveltjes dicht


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 24-05 09:56

Kaastosti

Vrolijkheid alom!

Topicstarter
Ah briljant.. die info had ik nodig! Eens proberen :)
-- Geweldig! Alles werkt :P thx

[ Voor 156% gewijzigd door Kaastosti op 23-03-2004 10:19 ]

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.