Novo

Forum kao aplikacija na telefonu

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

  • 11 odgovora
  • 4.701 pregleda

Najnovija ↓

Dodavanje kolona u Access-u 07.11.2005. u 12:40 · pre 255 meseci #1
Treba da dodam kolonu u Accessu, ali tako da imam i default vrednost u toj koloni (0). Pokušao sam sa raznim kombinacijama ove komande

Code:

Alter Table Table1 add column NovaKolona numeric default 0


ali naravno bez uspeha. Tražio sam i po netu i po njima ovaj kod je ispravan za SQL server. Kako to isto uraditi u Access-u


Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: Dodavanje kolona u Access-u 07.11.2005. u 13:39 · pre 255 meseci
izmenjeno 1 put, poslednji put banem 07.11.2005. u 13:40
  1. banem07.11.2005. u 13:40zapis iz teksta poruke
#2
Mislim da ti treba i db.Execute, nešto nalik ovome:

Dim db As DAO.Database
Set db = CurrentDb
db.Execute "ALTER TABLE MyTable ADD COLUMN MyField NUMERIC DEFAULT 0;"
Potpis
Pozdrav,
Branislav
Re: Dodavanje kolona u Access-u 07.11.2005. u 13:44 · pre 255 meseci #3
znam da mi treba neka veza sa accessom i to nije problem (nisam početnik u radu sa bazama), nego mi treba sql naredba za dodavanje kolone.

Ova naredba koju si ti postavio ne radi ni u samom access-u
Citat:
Sintax error in ALTER TABLE statement

i selektuje mi "0" (nulu)
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: Dodavanje kolona u Access-u 07.11.2005. u 14:49 · pre 255 meseci #4
Ne znam napamet kako bi islo sa sql statementima, ali mozes koristiti DAO. Imas table i field objekte, kreiras novi field CreateField metodom, i onda mozes setovati DefaultValue property. Sve u svemu par linija koda.
Potpis
Blue Man Group
Re: Dodavanje kolona u Access-u 07.11.2005. u 20:59 · pre 255 meseci #5
Zar se DefaultValue ne odnosi _samo_ na novi zapis?

Ako prijavljuje onu grešku sa DefaultValue, izbaci taj deo pa napravi jedan Update upit gde će uslov biti IIf(IsNull(MyField);0;MyField). Dakle prvo kreiraš kolonu i onda sa SQL "protrčiš" kroz nju i izmeniš sve IsNull vrednosti sa 0.
Potpis
Pozdrav,
Branislav
Re: Dodavanje kolona u Access-u 07.11.2005. u 21:23 · pre 255 meseci #6
@mladenovicz

Znam za to i koristim ga već u programu, ali hteo sam da uradim preko jedne SQL komande i onda me iznervirao što ne radi i morao sam da pitam kako se radi.


@banem

nije problem za recorde koji postoje, ali šta je sa rekordima koji će tek biti dodati. Onda bih morao da prepravljam aplikaciju da upisuje "0" u to polje, a to mi se bas ne radi
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: Dodavanje kolona u Access-u 08.11.2005. u 08:22 · pre 255 meseci
izmenjeno 1 put, poslednji put banem 08.11.2005. u 08:29
  1. banem08.11.2005. u 08:29zapis iz teksta poruke
#7
db.Execute "ALTER TABLE MyTable ADD COLUMN MyField NUMERIC SET DEFAULT '0';"

Obrati pažnju na iskaz SET. Za apostrofe oko nule nisam siguran, proveri.
Potpis
Pozdrav,
Branislav
Re: Dodavanje kolona u Access-u 08.11.2005. u 09:30 · pre 255 meseci #8
Da probao sam i to ali prijavljuje grešku kod DEFAULT reči
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: Dodavanje kolona u Access-u 08.11.2005. u 12:29 · pre 255 meseci
izmenjeno 1 put, poslednji put banem 08.11.2005. u 12:31
  1. banem08.11.2005. u 12:31zapis iz teksta poruke
#9
Veoma interesantan problem, ali rešenje uvek postoji. :)

Kod Accessa u raznim verzijama su ljudi prijavljivali različite probleme u zavisnosti od verzije. U A97 DEFAULT je nemoguć, kod A2000 je (tako kažu) nekad radi kada naziv tabele ogradiš sa [], nekada kada postaviš apostrofe na vrednost, a nekada kada ukloniš tačka-zarez (;) na kraju izraza.

Međutim, postoji drugi način da ne moraš da misliš o verziji. Ovo *sigurno* radi:

Code:

Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field

Set db = CurrentDb

db.Execute "ALTER TABLE [NazivTabele] ADD COLUMN NazivPolja NUMERIC"
Set tdf = db.TableDefs("NazivTabele")
Set fld = tdf.Fields("NazivPolja")
fld.DefaultValue = "0"


Za slučaj da imaš opet grešku (ali ne verujem) idi u Tools/Options/ Tables/Queries i uključi polje "This Database" opcije SQL Server Compatibility Syntax (ANSI 92). Meni u Acc2000 radi na oba načina i kada je uključeno i kada je isključeno.

PS. E, da, u VBA prozoru Tools/References mora biti uključeno "Microsoft DAO 3.6 Object Library.
Potpis
Pozdrav,
Branislav
Re: Dodavanje kolona u Access-u 08.11.2005. u 12:46 · pre 255 meseci #10
Hvala što si se toliko potrudio, ali kao što rekoh mladenovicz-u :) taj način znam nego sam hteo sve preko jedne SQL komande. No nije bitno rešiću ga ovako jer kao što reče *sigurno* radi :)

Pozdrav
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: Dodavanje kolona u Access-u 08.11.2005. u 13:39 · pre 255 meseci #11
Dosta davno sam to radio . pa ti saljem dio koda.
Tablica je bila na formi u gridu i dodavao sam u tu tablicu novo polje
u koje sam zbrajao sumu neke odabrane kolone

Application.SetOption "Default Field Type", 2
DoCmd.RunCommand acCmdInsertTableColumn
Set ctlCurrentControl = Screen.ActiveControl
novop = ctlCurrentControl.Name
, novop je nastalo novo polje poslije komande accmdinsert........


DoCmd.SetWarnings True

' tu sam ja zbrajao rezultate i upisivao u novo polje

defpolj = tekuce + "+" + baznopolje

noviid = "UPDATE " + tabla + " set " + tabla + "." + novop + "=" + defpolj
DoCmd.RunSQL noviid
DoCmd.SetWarnings False


Nadam se da sam pomogao

Pozdrav Trtko
Re: Dodavanje kolona u Access-u 08.11.2005. u 13:43 · pre 255 meseci #12
Problem je bio postaviti DEFAULT u novom polju za za svaki novi record , a ne dodavanje polja u bazu. Hvala u svakom slučaju
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme