Color scheme: Riviera
You are here: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Uporaba sestavljenega ključa

Uporaba sestavljenega ključa

Drevo vežite na zapise, katerih ključ sestavlja več polj, na primer postavke naročila s ključem iz številke naročila in številke postavke, ki jih Access sam lahko prikaže le v ploskem podobrazcu.

Zahteva WKL Forms Object Library 1.23 ali novejšo različico.

Pregled rešitve

KeyField in ParentField sprejmeta več imen polj, ločenih s podpičji, v enakem številu in enakem vrstnem redu. V VBA je sestavljeni ključ polje (array) z eno vrednostjo za vsako polje, in to povsod, kjer nastopa ključ: v lastnostih, argumentih metod, vrnjenih vrednostih in parametrih dogodkov. KeyCriteria sestavi pogoj WHERE za ključ. Posamezno polje deluje kot doslej: njegov ključ ostane posamezna vrednost.

Izvedba

Vežite drevo (list z lastnostmi, zavihek Drugo, ali stran oblikovalnika Vir zapisov):

LastnostVrednost
RecordSourcetblPostavke
KeyFieldNarociloID;StPostavke
ParentFieldNarociloID;NadrejenaPostavka
TextFieldOpis

S ključi delajte v modulu obrazca:

Private Sub List1_NodeSelect(ByVal Key As Variant)
    ' Key is Array(NarociloID, StPostavke)
    Me!txtPostavka = Key(1)
    Me!sfmDetails.Form.Filter = Me!List1.Object.KeyCriteria(Key)   ' [NarociloID] = 4711 AND [StPostavke] = 2
    Me!sfmDetails.Form.FilterOn = True
End Sub
 
Private Sub cmdNovaPostavka_Click()
    Dim newKey As Variant
    newKey = Me!List1.Object.AddNode(Array(4711, 1), "Nova postavka") ' below line 1 of order 4711
    Debug.Print newKey(0), newKey(1)                                  ' 4711, next free line number
End Sub

Opombe

  • Sestavljeni ključ nima samoštevila. Za novo vozlišče kontrolnik predlaga ključ: zadnji del se nadaljuje za najvišjo vrednostjo pri enakih vodilnih delih. BeforeNodeAdd in BeforeNodeCopy lahko z NewKey = Array(…) nastavita lasten ključ.
  • Zapis je koren, če ima njegov nadrejeni ključ del z vrednostjo Null ali se ne ujema z nobenim zapisom.
  • Premik vozlišča zapiše vse dele ParentField.
  • Polje napačne dolžine sproži wkeInvalidValue. Deli se primerjajo po pravilih programa Access: števila po vrednosti, besedilo brez razlikovanja velikih in malih črk.
  • Datoteke in besedila, ki jih zapišeta SaveToFile in SaveToString, sestavljeni ključ hranijo kot polje JSON; v FindNodes je @.Key to polje, @.Key[1] pa en del.
  • V tabeli indeksirajte vsa polja ključa skupaj; vsaka poizvedba primerja vse dele.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/use-a-composite-key.txt · Last modified: by Wolfgang van der Stille