Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Prikaz zapisa kot seznama lastnosti

Prikaz zapisa kot seznama lastnosti

Trenutni zapis obrazca ali zapis, izbran na seznamu, prikažite kot vrstice „napis | vrednost“, razvrščene v kategorije – na primer kot kartico „Lastnosti“ v stranski vrstici.

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

Pregled rešitve

WklPropertyGrid ima dva načina. Brez RecordSource prikazuje in zapisuje trenutni zapis lastnega obrazca. Z RecordSource, KeyField in LinkMasterFields prikazuje podrobnosti kontrolnika WklGrid ali WklTreeList na istem obrazcu. Njegove vrstice so objekti WklColumn (Rows); Band vrstice je njena kategorija.

Izvedba

Trenutni zapis obrazca – obrazec, vezan na tblStranka, mreža lastnosti brez vira zapisov:

Private Sub Form_Load()
    With Me!Props1.Object
        .Rows.Clear
        .Rows.Add "Ime", "Ime"
        .Rows.Add "Kraj", "Kraj", "Naslov"
        .Rows.Add "Aktivna", "Aktivna", "Status"
        .CategoryCollapsed("Naslov") = False
    End With
End Sub

Podrobnosti seznama, katerega vir je prepustna poizvedba: mreža lastnosti bere in zapisuje svoj lastni zapisljivi vir, seznam priskrbi le ključ.

Private Sub Form_Load()
    With Me!Props1.Object
        .RecordSource = "tblStranka"
        .KeyField = "ID"
        .LinkMasterFields = "Grid1"
        .LinkChildFields = "ID"
    End With
End Sub
 
Private Sub cmdNastaviKraj_Click()
    With Me!Props1.Object
        If .FieldEditable("Kraj") Then .Value("Kraj") = "Koper"
    End With
End Sub

Opombe

  • V načinu obrazca spremenjena vrednost označi zapis obrazca kot spremenjen; Access ga shrani, ko uporabnik zapusti zapis ali ko pokličete Me.Dirty = False, in pri tem izvede preverjanje veljavnosti obrazca in BeforeUpdate. Mreža sledi zapisom obrazca brez kode v modulu obrazca.
  • Če vrstic ne določite, postane vsako polje vira svoja vrstica z urejevalnikom za njegov podatkovni tip.
  • Z naborom zapisov, ki ga preda koda (Set .Recordset = rs), mreža o viru ne sprašuje ničesar: vsako polje šteje kot urejljivo, spremenjena vrednost pa gre v ta nabor zapisov – ali doseže podatkovno zbirko, je stvar nabora zapisov. Statični ali samo za branje odprti nabor zapisov ADO spremembo brez napake obdrži v pomnilniku: vsako polje je prikazano kot urejljivo, vnesena vrednost je v naboru zapisov, podatkovna zbirka pa ostane nespremenjena. V tem načinu sami nastavite ReadOnly za vrstice.
  • Vrstice se na polja sklicujejo z imeni. Preden mreža dobi vir brez teh polj, vrstice izpraznite z Rows.Clear; vrstica, katere polja novi vir nima, povzroči, da mreža vir zavrne z wkeSourceError („the recordset has no field …“).
  • Samo za branje brez nastavitev so: prepustna poizvedba ali poizvedba UNION, izračunano polje, polje s samoštevilom, stolpec, ki ga povezana tabela ODBC sporoča kot neposodobljiv; v načinu obrazca tudi obrazec z AllowEdits = Ne. Zapisovanje v tako polje s kodo sproži wkeInvalidValue.
  • Kako se preveri povezana tabela ODBC: Access sam za skoraj vsak stolpec povezane tabele ODBC sporoča DataUpdatable = True, zato se mreža na to ne zanaša. Z nizom povezave tabele odpre lastno povezavo in gonilnik za vsak stolpec vpraša (SQLColAttribute: posodobljivost in samodejna vrednost); stolpec, ki ga gonilnik sporoča kot samo za branje ali s samodejno vrednostjo, postane samo za branje. Pravilo, s katerim lahko avtor gonilnika gonilnik preveri brez preizkušanja: stolpec je samo za branje, ko SQL_DESC_UPDATABLE (polje 10, v ODBC 2 z imenom SQL_COLUMN_UPDATABLE) vrne SQL_ATTR_READONLY (0) ali ko SQL_DESC_AUTO_UNIQUE_VALUE (polje 11) vrne vrednost, različno od 0. SQL_ATTR_WRITE (1) in SQL_ATTR_READWRITE_UNKNOWN (2) brez samodejne vrednosti pustita stolpec, kar zadeva mrežo, zapisljiv; gonilnik, ki za stolpec odgovori „neznano“, mreži ne da ničesar, na podlagi česar bi se odločila, in shranjevanje tedaj odpove na strežniku. Z ODBC Driver 18 for SQL Server so stolpec IDENTITY, izračunani stolpec in stolpec rowversion samo za branje. Stolpci povezanega pogleda SQL Server, ki izhajajo iz izraza ali skalarne podpoizvedbe, za urejanje niso podprti – ali so prepoznani, je odvisno od tega, kaj gonilnik zanje sporoča. Dokler takega pogleda ne preverite, za te vrstice sami nastavite ReadOnly; shranjevanje, ki vključuje stolpec, ki ga strežnik ne more posodobiti, odpove v celoti in izgubi tudi uporabnikovo drugo spremembo.
  • Polje, zaklenjeno le za en zapis (ne za vse zapise, kot ga zaklene ReadOnly vrstice): v BeforeFieldEdit za ta ključ in polje nastavite Cancel = True; urejevalnik se ne odpre.
  • Kontrolnik števila vrstic ne omejuje; seznami s 100 in več vrsticami niso podprti.
  • WklGrid ob odprtju obrazca ne izbere nobenega zapisa: podrobnosti ostanejo prazne, dokler uporabnik prvič ne izbere zapisa.
  • Strnjene kategorije, nastavljene v pogledu načrta (CategoryCollapsed), se shranijo z obrazcem; kar strne uporabnik, velja do zaprtja obrazca.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/show-a-record-as-a-property-list.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille