» »

Ms access neke vrste auto number

alesko05 ::

Ok... Imam tak problem..

Vnašam podatke in recimo imam 5 podatkov, do konca lista jih bi pa recimo šlo še 15... A bi se dalo narest, da bi tisti, ki bi vnašal podatke, da bi mu izpisalo številko vrstice v label.. A se da to?

Seadoo ::

Ne to je pa absolutno nemogoče naredit.

ghaefb ::

Ja, tako je.. popolnoma nemogoče.Znanstvena fantastika:)) malo heca more bit

Fim ::

Če bi malo bolj opisal svoj problem, se pravi kako vnašaš podatke. Ali uporabljaš formo in kakšno. Problem se načeloma da rešiti z VB funkcijo na Form_BeforeUpdate..... Sam npr. na ta način povečujem zaporedno številko dokumenta. Zadnjo številko dokumenta vedno shranim v neko tabelo in preden dodam nove podatke v bazo z dlookup funkcijo pogledam katera je ta zadnja št., jo za 1 povečam in zapišem v polje, labelo, kamor hočeš. To funkcijo lahko daš v polje kar na default value ali pa na label.caption ...... Vrednost lahko spremljaš do 15 nato pa napišeš opozorilo in jo resetiraš na 0.

Upam, da bo šlo..... :) drugače pa še kaj napiši.

mp218 ::

Ej, Fim...

Kaj delaš kakšno aplikacijo za spremljanje dokumentov al kaj podobnega. Ker sem jo jaz tud delal in mi je požrla kar nekaj živcev...na koncu sem pa jo do onemoglosti poenostavil...
IF "si delal aplikacijo"=TRUE then
Bi mogoče lahko poslal en PRINT SCREEN povezav med tabelami?
kako si tretiral verzije?
Imaš tabelo z zgodovino?
Sledenje spremembam?
Full text search(ok, to je že mal preveč napredno...)=> jaz ga nimam
else
Hvala za link z API funkcijami! izjemno so mi koristile! (Sploh GetUSerName, filedialogi, čekiranje pravilnosti poti,...)
endif


Dej povej mi, ali je kaj narobe, če številko dokumenta povečuje tako, da najprej poišče max šifre in jo nato poveča za eno. Jaz sem bil malo v dvomih, a je kar lepo delalo. Saj do zdaj je delal... ;)

Fim ::

Malo pozno pa vendarle ....

Glede 'Dokumenta' sem mislil na splošno, pač vsak sklop zapisov, ki potrebuje neko štetje npr. račun, izdajnica, ..... Številko dokumenta lahko povečuješ tudi s funkcijo Max, nič narobe. V nekaterih primerih je to morda lahko počasno (pri velikem številu zapisov). Ali uporabljaš Max v group Queri-ju ali funkcijo Dmax?

Glede aplikacije za spremljanje dokumentov. Programiram že zelo dolgo in sem programiral že veliko raznoraznih programov. Za spremljanje dokumentov v takem smislu (če te prav razumem), kot si napisal pa žal ne. Aplikacij na to temo je lahko ogromno - kakor se pač stranka (ali programer) zamisli. Ne vem kako bi ti lahko pomagal print screen relacij kakšne moje baze, ker pač enostavno ne veš kaj sem sam mislil ko sem to delal (včasih še sam zase ne vem). Če imaš kakšen konkreten primer ti bom rade volje pomagal ...

Mislim, da se mi dozdeva kje je problem pri tem povezovanju tabel z relacijami. Napaka se največkrat pojavi, ker programer postavi napačno strukturo tabel, na koncu pa se zapleza in če hoče potem s podatki kaj narediti programira kot nor, da je program zakompliciran in težko ga je vzdrževati pa še s podatki so problemi. V literaturi se to razlaga pod "Normalization". Obstajajo tri osnovne oblike, potem pa še tri izpeljanke pa še kaj bi se našlo, vendar tukaj ni prostora za opisovanje tega. V kakšni literaturi si oglej to poglavje (še v vsaki SQL knjigi sem ga zasledil npr. Keeping your data normal ali Normalization and other basic design issues,...) pa bo kar naenkrat veliko problemov manj - glede tabel in ostalih struktur mislim. Včasih zaradi napačne strukture tabel določen problem sploh postane nerešljiv....

Dovolj ...., če imaš kaj konkretnega pa napiši.....

Zgodovina sprememb…

  • spremenil: Fim ()

ghibly ::

Mogoče nisem dobro razumel problema, ma jaz bi to enostavno rešil z "COUNT" funkcijo v Query-ju.

mp218 ::

nima veze...tisto sem rešil...dela...optimiziral bom pa kasneje, a ne? ;)

rad bi pa vprašal kako obravnate napake, oziroma kaj o napaki zapisujete ozirome kje vse to shranjujete...

jaz mam dve varianti: v txt file ali pa v tabelo

in sicer: datum, čas, user, err.number, err.descrtiption, forma, ...

Fim ::

Mislim, da je to stvar trenutne potrebe oz. odločitve. Sam imam narejeno posebno funkcijo, ki mi v txt datoteko zapiše podatke katere si že sam navedel (Err, Error$, ImeFunkcije, Datum, ...).

Za posebne primere pa uporabljam tudi funkcijo, ki mi napako zapiše še v tabelo in to tabelo lepo urejeno na koncu operacije prikažem uporabniku. V tabelo glede na error vpišem še možno rešitev in nato uporabnik ponavlja operacijo dokler mu javlja error in napake počasi odpravlja.... Ima pa tudi možnost, da mi tabelo napak pošlje po mailu, da jo pregledam še sam in mu lahko svetujem. Ta način uporabljam predvsem za kakšno premetavanje (Import/Export) ali obdelovanje podatkov, ko se lahko kaj zalomi zaradi napačnih vnosov itd. Tabelo seveda pred vsako operacijo izpraznim.

mp218 ::

nisem se poglabljam, a vseeno vprašam....

kako zabelezis, funkcijo, kjer se je zgodila napaka. Avtomaticno ali za vsa ko funkcijo posebej...

lp

mp218 ::

cist zmedeno sem napisal....

se enkrat:

Nisem se poglabljal kako se resi, a vseeno...

Kako ves pri kateri funkciji/sub se je zgodilia napaka. Ali to za vsako funkcijo posebej napises ali obstaja kaksen ukaz, ki pove kje v kodi se je zgodila napaka...

lp, M

PS:Upam, da je to bolj jasno...

Fim ::

V funkcijo ali proceduro vpišeš stavek "On Error goto Func_Error" nato pa v funkciji Func_Error postoriš vse kar je treba, pokličeč svojo error funkcijo kateri predaš ustrezne parametre (Error.description, Err, func. name,...).
V svoji Error funkciji pa podatke zapišeš v txt in morda po potrebi še Msg na ekran. Kje v funkciji se je zgodila napaka pa izveš iz sporočila o napaki oz. izklopiš Func_Error (tako da daš zgornji stavek v komentar) in ponovno izvedeš funkcijo, program se bo ustavil in javil napako, v oknu v katerem izpiše error klikneš Debug in točno vidiš kje je napaka. Z Alt+G vklopiš Debug okno in preveriš variable,........

npr:
Public Function Primer() as boolean
On error goto Primer_Error
'Tukaj nekaj počneš, kar func. pač počne
......
Primer = True
Primer_Exit:
'tukaj zapreš kar je odprtega ipd....
Exit Function

Primer_Error:
Primer = ZapišiError(Err, Error$, "Primer")
resume Primer_Exit

End Function

Upam, da sva se razumela :)

mp218 ::

ne mislim, da se nismo čist...
to kar si napisal vem, jaz bi samo rad, da bi se mi poleg err.number v errorlog zapisala se npr. številka vrstice(pri debugingu pobarvana v rumeno), kjer se je zgodila napaka...

Lp,M

Fim ::

Sedaj mi je jasno. Mislim, da v Accessu nimaš možnosti line numbering, vsaj jaz tega še nikoli nisem potreboval. Če vrstice niso oštevilčene ti tudi št. vrstice v errorju po mojem nič ne koristi?

Glede error-jev pa si v helpu oglej "Err Object" pa boš videl kaj vse lahko s tem počneš (lastnosti, metode), to je pa mislim, da tudi vse....

Če bom slučajno kaj našel še v zvezi s številčenjem vrstic pa se oglasim.

Lep dan!

mp218 ::

1)
kako vpišeš ime funkcije v errorlog?

private function nekaFunkcija()

Ali obstaja kakšen ukaz, da bi dobil ime funkcije in ga vnesel potem v errorLog. Ali moraš za vsako obravnavo napake posebej vpisat za katero funkcijo gre.

npr.:
open file for append
wrtite date, "nekaFunkcija", err.number, err.description,...

jaz pa bi rad:
open file for append
write date, TrenutnaFunkcija, err.number,...


Len sm, pa bi rad imel enotno funkcijo za vse vnose v errorLog.

2)
=> Jaz mam poleg obravnavanja napak še na vsaki formi kodo ...OnError, ki ne obravnava napak oziroma ne vpliva nanje, ampak jih samo zapisuje v ErrorLog. Za morebitne - zelo verjetno nepredvidene - errorje ;)

Fim ::

1-Žal, ne vem načina oz. ne poznam funkcije, ki bi vrnila ime funkcije, ki se trnutno izvaja. Nisem je nikoli potreboval. Jaz parameter ime funkcije vpišem kot string. Mislim, da to zna biti problem, a v računalništvu je vse mogoče. Morda s kakšno API funkcijo....?

2-Sam sem ugotovil, da v praksi velikokrat prihaja do čisto nepomembnih napak zato sam dostikrat uporabljam "On Error Resume next", tudi če pride do napake se funkcija izvede in program se ne prekine, kar je včasih boljše, zaradi dobre volje uporabnika. Mogoče kdaj ne predvidiš, in v neko polje pride Null vrednost. Zaradi tega se program lahko podre "On error resume Next" pa zadevo požre, četudi se zaradi tega morda operacija ne izvede pravilno oz. se sploh ne. Potrebno je vedno imeti pred očmi kaj je v tistem trenutku pomemebnejše..... To je dvorezni meč in ga je potrebno pametno uporabljati. Posebno še pri iskanju napak - napake enostavno ne vidiš.

Z napakami je tako, nekatere so fatalne in le te je treba obravnavati z vso resnostjo posebno, če se izvajajo operacije na podatkih (uporabi transakcije). Nekatere nastanejo samo zaradi napake uporabnika, ne vnese vrednosti ali kaj podobnega. V tem primeru opozoriš uporabnika ter zaključiš operacijo.

mp218 ::

Imaš slučajno kakšen seznam teh fatalnih napak?

namreč,...
V bližnji prihodnosti bom še več delal z accessom, ker sem dobil en nov šiht, kjer bom moral narest par stvari. Nekatere kar zahtevne...:O
Tko da, Fim in ostali Slo-tech-ovci. Računam na vas. Moja hvaležnost bo neskočna ;)

Fim ::

Kot fatalne napake sem mislil napake, ki so pomembne za del programa v katerem nastanejo in so odvisne od podatkov oz. od kode. Nisem mislil nekih fatalnih sistemskih napak.
npr., če uporabnik ne vnese določenega podatka, ki je v relaciji bo program ob zapisovanju podatkov v tabelo mrknil zaradi referenčne integritete. To napako je potrebno ujeti prej preden nastane in uporabnika opozoriti, da vnese v našem primeru manjkajoči podatek...kaj podobnega :)

Če bodo problemi, pa kar piši .....


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C#] Izhod iz funkcije

Oddelek: Programiranje
21697 (523) MaCoFaCo
»

[T-SQL] Kako vnest podatek v bazo in da ti hkrati vrne id?

Oddelek: Programiranje
161419 (1137) dmok
»

Coding Style

Oddelek: Programiranje
431897 (1089) 64202
»

Kako do podatka v queryu iz VisualBasicScripta (VBA) v accessu?

Oddelek: Programiranje
11840 (725) Fim
»

PHP help!

Oddelek: Programiranje
25595 (433) rc-car

Več podobnih tem