Gali kilti situacijų, kai negalėsite redaguoti duomenų užklausos duomenų lapo rodinyje, kad pakeistumėte duomenis pamatinėje lentelėje. Šis straipsnis padės suprasti, kada galite redaguoti užklausos duomenis, kada negalite redaguoti užklausos duomenų ir kaip pakeisti užklausos struktūrą, kad galėtumėte redaguoti jos duomenis.
Šiame straipsnyje:
- Įvadas
- Kada galiu redaguoti užklausos duomenis?
- Kada negaliu redaguoti užklausos duomenų?
- Kaip pakeisti užklausą, kad galėčiau redaguoti jos duomenis?
Įžanga
Atidarę užklausą duomenų lapo rodinyje, galite pastebėti, kad norite redaguoti duomenis. Galbūt pastebėjote klaidą arba matote pasenusią informaciją. Atsižvelgiant į tai, kaip užklausa buvo sukurta, galite redaguoti duomenis tiesiogiai užklausos duomenų lape.
Jei bandote redaguoti užklausos duomenų lapo duomenis, bet nieko neįvyksta, arba "Windows" leidžia garsą ir jūsų redagavimas neįvyksta, redagavimo atlikti negalima. Gali būti, kad užklausos negalima redaguoti, pvz., kryžminė užklausa. Taip pat gali būti, kad redaguoti negalima tik lauko, kurį bandote redaguoti, pvz., jei laukas pagrįstas agregavimo funkcija, pvz., vidurkiu. Bet kuriuo atveju galite ką nors padaryti, kad įgalintumėte redagavimą.
Be duomenų redagavimo užklausos duomenų lapo rodinyje, taip pat galite naudoti naujinimo užklausą norėdami atnaujinti lentelės duomenis. Šiame straipsnyje naujinimo užklausos neaptariamos.
Daugiau informacijos apie naujinimo užklausas ieškokite straipsnyje Naujinimo užklausos kūrimas ir vykdymas.
Paprastai, kai norite redaguoti duomenis užklausos duomenų lapo rodinyje, norite, kad jūsų keitimai būtų įrašyti lentelėse, kuriomis pagrįsta užklausa. Jei nenorite keisti duomenų tose lentelėse, bet vis tiek norite redaguoti duomenis ir išsaugoti redaguotus duomenis baigę, galite pirmiausia naudoti lentelės sudarymo užklausą ir sukurti naują lentelę, kurios duomenis galėsite redaguoti. Be to, lentelės kūrimo užklausą galite naudoti norėdami įrašyti užklausos, kurios negalima redaguoti, rezultatus kaip naują lentelę ir redaguoti tos naujos lentelės duomenis. Šiame straipsnyje neaptariama, kaip kurti ir vykdyti lentelės kūrimo užklausas.
Daugiau informacijos apie lentelės sudarymo užklausas ieškokite straipsnyje Lentelės sudarymo užklausos kūrimas.
Kada galiu redaguoti užklausos duomenis?
Visada galite redaguoti užklausos duomenis, kai užklausa pagrįsta tik viena lentele arba dviem lentelėmis, kurios turi ryšį "vienas su vienu".
Pastaba
Net jei galite redaguoti užklausos duomenis, kai kurių jos laukų gali būti neįmanoma redaguoti. Tokie atvejai išvardyti kitame skyriuje.
Kada negaliu redaguoti užklausos duomenų?
Niekada negalite redaguoti užklausos duomenų, jei:
Užklausa yra kryžminė užklausa.
Užklausa yra SQL specifinė užklausa.
Laukas, kurį bandote redaguoti, yra apskaičiuotasis laukas. Tokiu atveju galėsite redaguoti kitus laukus.
Užklausa pagrįsta trimis ar daugiau lentelių ir yra ryšys "daugelis su vienu".
Pastaba
Nors šiuo atveju negalite redaguoti užklausos duomenų lapo, galite redaguoti formos duomenis, kai formos ypatybė RecordsetType nustatyta kaip Dynaset (nenuoseklūs Naujinimai).
Užklausoje yra sąlyga GROUP BY.
Kaip pakeisti užklausą, kad galėčiau redaguoti jos duomenis?
Šioje lentelėje išvardyti atvejai, kai negalite redaguoti užklausos, kartu su metodais, padedančiais užklausos duomenų lapą padaryti galimu redaguoti.
| Negalite redaguoti užklausos duomenų lapo reikšmių, jei: | Norėdami, kad užklausos duomenų lapas būtų redaguojamas: |
|---|---|
| Užklausos ypatybė Unikalios reikšmės nustatyta kaip Taip. | Nustatykite užklausos ypatybę Unikalios reikšmės į Ne. Norėdami sužinoti, kaip nustatyti šią ypatybę, žr. tolesnį skyrių Unikalių reikšmių ypatybės nustatymas į Ne. |
| Užklausoje yra susieta ODBC duomenų bazės lentelė be unikalaus indekso arba "Paradox" lentelė be pirminio rakto. | Įtraukite pirminį raktą arba unikalų indeksą į susietą lentelę naudodami susietos duomenų bazės tiekėjo pateiktus metodus. |
| Neturite teisių naujinti duomenis, skirtų esamai lentelei. | Priskirti teisę naujinti duomenis. |
| Užklausoje yra daugiau nei viena lentelė arba viena užklausa, o dizaino rodinyje lentelės arba užklausos nėra sujungtos viena linija. | Sukurkite atitinkamas jungtis. Norėdami sužinoti, kaip sukurti sujungimus, žiūrėkite skyrių " Jungčių kūrimas". |
| Duomenų bazė atidaryta kaip skirta tik skaityti arba yra tik skaityti skirtame diske. | Uždarykite duomenų bazę ir iš naujo atidarykite ją nepažymėję Atidaryti tik skaitoma; Arba, jei duomenų bazė yra tik skaityti skirtame diske, iš disko pašalinkite atributą Tik skaityti arba perkelkite duomenų bazę į diską, kuris nėra skirtas tik skaityti. |
| Įrašo laukas, kurį bandote atnaujinti, yra panaikintas arba užrakintas kito vartotojo. | Palaukite, kol įrašas bus atrakintas. Užrakintą įrašą galima atnaujinti iš karto, kai įrašas atrakinamas. Palaukite, kol kitas vartotojas baigs operaciją, kuri užrakino įrašą. |
| Užklausa pagrįsta lentelėmis su ryšiu "vienas su daugeliu", o sujungimo laukas iš pusės "daugelis" nėra išvesties laukas. Šiuo atveju sujungimo lauko duomenų iš pusės "vienas" redaguoti negalima. | Įtraukite sujungimo lauką iš ryšio pusės "daugelis" į užklausos išvesties laukus. Norėdami sužinoti, kaip įtraukti sujungimo lauką, žr. skyrių Lauko "daugelis" įtraukimas į užklausos išvesties laukus. |
| Sujungimo laukas iš pusės "daugelis" (po duomenų redagavimo) yra pusėje "vienas". | Paspauskite SHIFT + F9 , kad pateiktumėte keitimus ir atnaujintumėte užklausą. |
| Ryšio "vienas su daugeliu" pusėje "vienas" yra tuščias lentelės laukas, o sujungimas yra dešinysis išorinis sujungimas. | Įsitikinkite, kad to lauko "vienas" pusėje yra reikšmė. Sujungimo lauką pusėje "daugelis" galite redaguoti tik tada, jei to lauko pusėje "vienas" yra reikšmė. |
| Naudojate susietą ODBC duomenų bazės lentelę ir ne visi laukai iš susietos lentelės unikalaus indekso yra užklausos išvestyje. | Įtraukite visus laukus iš ODBC lentelės unikalaus indekso į užklausos išvesties laukus. Norėdami sužinoti, kaip įtraukti laukus, žr. skyrių Unikalių indekso laukų įtraukimas iš susietos ODBC lentelės. |
Nustatyti ypatybę Unikalios reikšmės į Ne
- Atidarykite užklausą kaip dizaino rodinį.
- Jei ypatybių lapas nėra atidarytas, atidarykite jį paspausdami F4. Vieną kartą spustelėkite užklausos dizaino tinklelyje, kad ypatybių lape būtų rodomos užklausos, o ne laukų ypatybės.
- Ypatybių lape raskite ypatybių lauką Unikalios reikšmės . Spustelėkite greta esantį lauką, tada spustelėkite jame esančią rodyklę, tada spustelėkite Ne.
Jungčių kūrimas
- Atidarykite užklausą kaip dizaino rodinį.
- Kiekvienai lentelei ar užklausai, kurią norite sujungti su kita, vilkite kiekvienos lentelės ar užklausos sujungimo lauką iš tos lentelės ar užklausos į atitinkamą lentelės ar užklausos lauką, kuriame norite sukurti sujungimą.
Daugiau informacijos apie sujungimų kūrimą ieškokite straipsnyje Lentelių ir užklausų sujungimas.
Įtraukite sujungimo lauką iš dalies "daugelis" į užklausos išvesties laukus
- Atidarykite užklausą kaip dizaino rodinį.
- Užklausų dizaineryje raskite jungtį, atitinkančią atitinkamą ryšį "vienas su daugeliu".
- Dukart spustelėkite sujungimo lauką, esantį ryšio "vienas su daugeliu" pusėje "daugelis". Lauko tinklelyje rodomas laukas sujungimas, nurodantis, kad dabar jis yra išvesties laukas.
Unikalių indekso laukų įtraukimas iš susietos ODBC lentelės
- Atidarykite užklausą kaip dizaino rodinį.
- Užklausų dizaineryje raskite susietą ODBC lentelę.
- Unikaliuose rodyklės laukuose šalia lauko pavadinimo bus rakto simbolis. Dukart spustelėkite kiekvieną lauką, kurio nėra lauko tinklelyje. Kiekvienas laukas rodomas lauko tinklelyje, nurodant, kad dabar jis yra išvesties laukas.