Cum se adaugă un element în dblookupcombobox

Cum adaug un element în DBLookupComboBox?

Am completat DBLookupComboBox cu înregistrări din tabel. Cum se adaugă elementul de tip "No value" cu KeyValue = -1 în lista DBLookupComboBox și apoi în listă toate intrările din tabel






Acest lucru este necesar pentru ca utilizatorul să nu poată selecta nimic din listă și să stochez valoarea -1 într-un alt tabel ca urmare a faptului că nu a fost selectat nimic

Adăugați această intrare în setul de date pe care se află combinația.

apoi ce, la fiecare umplere DBLookupComboBox pentru a adăuga înregistrare?

Îl umpleți cu mâinile sau ce?

DBLookupComboBox nu are înregistrări.


> Îl umpleți cu mâinile sau ce?

nu de mâinile unor moșii. Înțeleg că ar trebui să existe o intrare "în așteptare" în tabel cu valoarea "Nici o valoare" și id = -1?


> Nu există înregistrări în DBLookupComboBox

Am vrut să mă refer la tabele


> ar trebui să existe o înregistrare "în așteptare" în tabel

Nu în tabelul a din setul de date. Nu este același lucru.

Selectați -1 ca id, "Nici o valoare" ca valoare
uniunea tuturor
Selectați id, Valoare din tabelul1

Și nu inventați nimic, "totul este deja furat înaintea noastră" (c)

Este posibil și așa, dacă nu intervine. Puteți adăuga un tip în interogare
selectați * din tabel
uniunea tuturor
selectați -1, "Nici o valoare" de la ceva - cum ar fi

puteți introduce pur și simplu intrarea în DATASET fără a stabili modificările aduse bazei de date.

De fapt, clasicul genului nu recomandă înregistrarea a ceva acolo, este mai precis să se scrie valoarea NULL.


> În general, clasicul genului nu recomandă nimic acolo
> scrieți sau, mai degrabă, scrieți o valoare NULL.
>

Standard DBLookupCombo pe null ca și cum nu este poziționat.

Deci, super! totul este potrivit. Vă mulțumesc foarte mult!

Vreau să spun că nu trebuie să scrieți la masa principală, cu valoarea NU selectată a directorului.


> Vreau să spun, ca să notăm nimic în tabelul principal
> este necesar, la NU valoarea selectată a directorului.

A. Te-am înțeles greșit în [9].

permiteți-mi să fac o mică corecție.






Cred că nu ar trebui să folosesc uniunea tuturor, ci doar uniunea

Include toate rândurile în rezultate, inclusiv duplicate. Dacă nu este specificat, rândurile duplicate sunt eliminate.

În cazul tău - nici o diferență. Pur și simplu totul este deja un obicei, pe mașina automată decolorare.

Înțeleg. Comentariu rezonabil din partea dvs., experți domnilor - "învățați meciul" :-)


> Pentru a fi sincer, nu știu, dar atunci când uniunea tuturor,
> atunci valorile "Nici o valoare" nu sunt exact la fel de multe ca și înregistrările
> în tabel (set de date)

Și numiți baza de date. Pentru că la mine în TSQL totul este perfect.

Selectați -1 ca id, "Nici o valoare" ca nume FROM spr_nakladnaya
uniunea tuturor
SELECT id, nume FROM spr_nakladnaya

Selectați -1 ca id, "No value" ca nume
uniunea tuturor
SELECT id, nume FROM spr_nakladnaya

Nu sunt de acord cu prima parte - sunt departe de un expert. Susțin a doua parte complet. 8-)

Apoi merită să nu corectați o persoană mai bine informată, ci să solicitați din nou clarificări. (deși aceasta este deja o versiune lirică)

> dar atunci când uniunea tuturor, atunci dintr-un anumit motiv valorile "Nici o valoare"
> exact ca multe înregistrări în tabel (set de date)

1. când este "unirea tuturor"?
2. Și cât de mult v-ați așteptat și cât de mulți au fost acolo (și în general unde?) Există?
3. tabel<>set de date

Uniunea, dacă citiți documentația, returnează suma înregistrărilor celor două tabele, excluzând intrările duplicat. Uniunea ALL nu exclude nimic, în plus, nu face gruparea / gruparea implicită necesară pentru a exclude duplicatele. Prin urmare, în cazul tău, trebuie doar să faci uniunea tuturor.

așa a încercat. Ați arătat asta prima dată. Dar dă o eroare
"Ca intrare, interogarea trebuie să aibă cel puțin un tabel sau o interogare"

clătite. Aici în Access nu știu. Pe TSQL și PgSQL, pur și simplu "din nicăieri" Selectați se poate face.
În FB - de la RDB $. (ceva acolo, nu-mi mai amintesc)

multumesc oricum! principalul lucru este ideea în sine

Dacă tot decideți să scrieți valoarea -1 în tabela principală, atunci va trebui să adăugați o intrare suplimentară în director. În caz contrar, nu va fi posibil să notați, cu excepția cazului în care, desigur, există legătura între tabele sub forma unei chei străine (și ar trebui să fie.). Apoi cererea cu unire va dispărea de la sine.

Da. probabil, ai avut mintea că tot la fel în director ar trebui să fie raportul -1 -> "Nici o valoare"
De exemplu, cel puțin # xA0; pentru afișarea în aceeași rețea. Deci înțeleg?

Grilă este aici. Tabelul principal ar trebui să aibă o cheie străină pe director. Prezența acestei conexiuni presupune că câmpul de tabel conține linkuri numai la ceea ce se află în director. Aceasta se numește integritate referențială.

Dacă valoarea nu este selectată, aceasta este NULL. și -1 este o valoare specifică care TREBUIE să existe în director.

Ce ai nevoie, mai vechi. (c) Pușkin
8-)

Că "nu am nevoie de acest lucru și nu va mai trebui în viitor"? Integritatea referențială? Nu-Nu.

În nici un fel nu va fi afișat / poziționat. În grilă va fi un câmp gol.


> Nu va fi afișat / poziționat. În grila va fi
> câmp gol.

Mi-am scris DBLookupCombo, este poziționat. # xA0 ;: o)







Articole similare

Trimiteți-le prietenilor: