Tesko je naci odgovor na ovaj problem, jer moze biti mnogo toga. Dizajn baze jeste jedan od problema, ali mislim da nije presudan u ovom slucaju. Verujem da je problem u komunikaciji Accessa i SQL baze. Postoji vise nacina da se komunikacija ostvari. Jedan od nacina je linkovanje tabela is SQL baze na Access aplikaciju. To se najcecse i radi. Na zalost, to je najlosiji nacin. Cesto dolazi do gusenja na mrezi. Zbog toga se u principu ne moze ocekivati da aplikacije koje us radila OK sa linkovanim Acess tabelama nastavi da radi na potpuno isti nacin sa linkovanim SQL tabelama. Problem je verovatno u dizajnu formi i row source za nijh i za sve ostalo. Sto je bilo OK za Access, ne mora da bude OK za SQL server. Dok ne vidimo aplikaciju, ne mozemo da kazemo nista konkretno. Nekakva generalna prica sledi:
Na primer, konstrukicje tipa "SELECT * FROM tabela" proci ce u Accesu kao record source za formu ili report. Tako nesto ne mora (ali moze) da prodje uvek ako su tabele SQL. Takodje, imati samu tabelu kao rekord souce za formu ne mora uvek da prodje ako je tabela SQL. Kod mene na primer, promena podataka direktno u linkovanim SQL tabelama nekada radi, a nekada ne. Cesce ne radi nego sto radi i simptomi su isti kao kod tebe. Kad to radim kroz formu, sanse za uspeh rastu, ali nema garancije. Resenje? Umesto da direktnog kucanja u tabeli, moram da odradim UPDATE kveri. Zasto je to tako? Kad imas link na SQL tabelu, pa kliknes na nju da je otvoris, onda SQL salje Accesu celu tabelu. To zagusi kanal kojim dolaze podaci. Acces da ne bi cekao da se cela tabela ucita u memoriju, pocne da prikazuje podatke cim moze. Tako ti vidis podatke na ekranu i pokusas da promenis nesto. Nece, jer naprosto nije cela tabela ucitana. A kad radis sa Access formama desava se upravo to - gledanje direktno u tabelu. Cak i kad je ucitavanje zavrseno, za jedn jedini UPDATE Access salje nazad celu tabelu, pa SQL i ODBC gledaju sta je promenjeno a sta nije. Ako na primer imas nedovoljno RAMa, ovo nece uvek da prodje. Ako na mrezi imas switcheve umesto hubova, imaces probelm. Ako imas hubove i oni nisu dobro podeseni, imaces problema. Ukratko, mnogo stvari utice na komunikaciju izmedju Accesa i SQL-a, a mnoge od njih su hardware ili podesavanja u sistemu. Sve to ti kao programer ne mozes da kontrolises => cupanje kose i nervni slom
VB i C++ programeri zato smatraju da je nacin na koji se odvija Access programiranje neozbiljna stvar i moram da priznam da su u pravu, kad je u pitanja rad sa SQL bazama i Access front endom. Drugim recima, da bi bio 100% siguran da ce tvoja aplikacija raditi sa SQL tabelama, mora da se preradi aplikacija. U principu svi INSERT/UPDATE treba da se rade pozivanjem stored procedura koje sede na serveru. To je lepo kad nemas subforme. Ako imas subforme (a imas) ondato postaje komplikovano, ali mora da se odradi. A da bi koristio stored procedure, neko mora da ih i napise. Mnoge stvari koje je radio Access, sada se mogu i trebaju prebaciti na SQL.
Naravno, sve ovo "moz' da bude al' nemora da znaci". Ponekad sve ili neki delovi rade, pa se covek pita sta to ne valja. Rad (razvoj aplikacija) sa SQL tabelama i Access front endom je veoma razlicita stvar od razvoja aplikacija koje su linkovane na Access tabele. Nema garancije da ce Access aplikacije pisane za rad sa Access tabelama raditi i sa SQL tabelama. Neki delovi mogu da rade, ponekad ili uvek, a neki ce raditi nikad ili veoma retko. Prica je suvise duga da bi se ispricala na forumu jer uticaj hardvera, konfiguracije mreze i ko zna cega jos je mongo veci nego u slucaju rada Acces - Access. Nije dovoljno startovati wizard i prebaciti bazu na SQL server, pogotovu ako pokusavas da podrzavas kase u maloprodaji.
Rad u Accessu jeste na neki nacin amaterska stvar makar mnogi od nas primali platu za to. U Accesu sve mozes sam. Kad se SQL uvede u igru, vise nisi sam, neophodan je timski rad a to je portpuno jedan drugi nivo na kome se sve odvija. Takav rad pocinje veoma da lici na rad na main frame sistemima. Treba ti zaista dobar dizajn baze, administracija baze, administracija servera, administracija same mreze, security, backup, recovery plan, RAID..... To ne radi jedan covek. To nije za usamljene kauboje i me moze se tek tako nauciti, kao sto naucimo recimo Access. NHazalost :-(