Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Dodavanje izracunate kolone u Accessu putem Select Case

  • 5 odgovora
  • 4.762 pregleda

Najnovija ↓

Dodavanje izracunate kolone u Accessu putem Select Case 03.07.2006. u 13:05 · pre 247 meseci #1
Imam Tabelu u Accessu sa podacima tipa, "ImeIPrezime", "Pol", "Starost", "Adresa".... Hteo bih da napravim query sa novom kolonom. Nova kolona bi se zvala "StarosniInterval", a sadrzala bi podatke izracunate na osnovu podataka iz kolone "Starost".
Npr, za sve vrednosti kolone "Starost"<15, u koloni StarosniInterval odgovarajuca vrednost bila bi "1", za Starost>15 a <30
bila bi "2". Otprile ovako:

Select Case Starost
Case 0 to 15
StarosniInterval= 1
Case 16 to 30 = 2
StarosniInterval= 2
Case 31-45 = 3
StarosniInterval= 3
Case >45 = 4
StarosniInterval= 4
End case

Kako da ovo uradim pomocu upita? Pomocu IIf znam, ali IIf nije prakticna za mnogo slucajeva, i select Case mi izgleda mnogo funkcionalnije. Hvala

Re: Dodavanje izracunate kolone u Accessu putem Select Case 03.07.2006. u 15:06 · pre 247 meseci #3


Ako se dobro sećam Select Case bira prvu tačnu vrednost pa je jako bitno kojim redom postavimo uslove.
Recimo ako je Case is < 15, a u kodu imamo, ovim redom: Case is < 30, Case is < 25, Case is < 20, Case is < 15, a proveravamo za slučaj =12, program će uzeti da je već u prvom slučaju, Case is < 30, uslov ispunjen.

u tvom primeru, otprilike ovako:
Select Case Starost
Case is < 15
StarosniInterval= 1
Case is < 30
StarosniInterval= 2
Case is <45
StarosniInterval= 3
Case is >45
StarosniInterval= 4
End Select ( End Select, a ne end Case)
Re: Dodavanje izracunate kolone u Accessu putem Select Case 04.07.2006. u 09:04 · pre 247 meseci #4
Jel bas moras sa upitom ??
Koliko sam skuzio tebi treba u cjeloj tablici uopisati starosni interval jel ga sad nemas.
Pa skreiraj to polje i zvrtis cjelu bazu i i upises


Ja bi to u kodu napravio ovak

Dim dato As Database
Dim rek As Recordset
Set dato = CurrentDb
Dim sqlupit As String
sqlupit = "select * From Radnik"
Set rek = dato.OpenRecordset(sqlupit)

Do While Not rek.EOF

rek.Edit

if rek.fields("starost") <= 15 then
rek.Fields("starosnadob") = 1
endif

if rek.fields("starost") > 15 and rek.fields("starost") <= 30 then
rek.Fields("starosnadob") = 1
endif

............ itd.....

rek.MoveNext
loop

rek.Close
Set dato = Nothing


Eto , to ti je kad ja volim sve rucno programirat

Pozdrav Trtko

Re: Dodavanje izracunate kolone u Accessu putem Select Case 04.07.2006. u 15:03 · pre 247 meseci #5
Moze i pomocu upita.

Kreiraj tabelu StarosniIntervali ovako:

Interval, Od, Do
1, 0, 15
2, 16, 30
3, 31, 45
4, 46, 1000

Onda kazes ovako:

SELECT Pacijenti.PacijentiID, Pacijenti.Ime, Pacijenti.Prezime, Pacijenti.Starost, StarosniIntervali.Interval, StarosniIntervali.Od, StarosniIntervali.Do
FROM Pacijenti, StarosniIntervali
WHERE (((Pacijenti.Starost) Between [Od] And [Do]));

Ovaj query dobijes lako - navuces obe tabele u query design prozor, NE RADIS NIKAKAV join, samo ukucas WHERE uslov.

Medjutim, znimljivo pitanje je: treba li ti uopste polje Starost u tabeli Pacijenti. Predpostavljam da imas polje DatumRodjenja, pa se starost moze izracunati odatle. A izracunata pollja se ne cuvaju u tabeli. Pogotovu starost, jer se menja. Kome je prosle godine Starost bila 12, sada je 13. I svakom se starost menja na njegov rodjendan. Ispada da svaki dan trebas da radis enkakakv UPDATE tabele Pacijenti, da bi starost uvek bila tacna. Mislim da na forumu ima funkcije koja racuna starost, ali moze to i kroz kveri naravno. Ako ti treba, mozemo pomoci da izracunas starost kroz kveri.

:-)

Re: Dodavanje izracunate kolone u Accessu putem Select Case 05.07.2006. u 10:35 · pre 247 meseci #6
"Medjutim, znimljivo pitanje je: treba li ti uopste polje Starost u tabeli Pacijenti. Predpostavljam da imas polje DatumRodjenja, pa se starost moze izracunati odatle. A izracunata pollja se ne cuvaju u tabeli. Pogotovu starost, jer se menja. Kome je prosle godine Starost bila 12, sada je 13. I svakom se starost menja na njegov rodjendan. Ispada da svaki dan trebas da radis enkakakv UPDATE tabele Pacijenti, da bi starost uvek bila tacna. Mislim da na forumu ima funkcije koja racuna starost, ali moze to i kroz kveri naravno. Ako ti treba, mozemo pomoci da izracunas starost kroz kveri."

E ovaj upit odlicno radi. Hvala svima na pomoci.
Problem je sto sam naucio da radim u Excel_u i Spss_u u kojima se svako izracunato polje vidi u tabeli. Stvar navike.

Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme