Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa Autonumber poljem

[es] :: Access :: Problem sa Autonumber poljem

[ Pregleda: 2991 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pmiroslav
Miroslav
Osijek

Član broj: 57354
Poruke: 298
*.net.t-com.hr.



+2 Profil

icon Problem sa Autonumber poljem23.02.2007. u 08:33 - pre 208 meseci
Imama tablicu u kojoj je polje ID sa slijedečim svojstvima

ID = AutoNumber + Primary Key

Fild Size = Long Integer
Format = prazno
Caption = prazno
Indexey = Yes (No Duplicates)


u tablici imama več preko 10000 podataka, zadnji ID je 20160

I sada kada upisujem novi zapis ID tj Autonumber upiše se 7974 a taj broj več postoji.
Izađem sa Esc i pokušam ponovo upiše se 7975 itd

U čemu je problem.

Do sad nisam imao takvih problema
 
Odgovor na temu

Fanta
Fanta Genije

Član broj: 119794
Poruke: 118
*.adsl.net.t-com.hr.



Profil

icon Re: Problem sa Autonumber poljem26.02.2007. u 14:20 - pre 208 meseci
Ne znam u čemu je nastao problem, ali mogu ti predložiti riješenje.

Nedavno sam se susreo sa sličnim problemom, ali ja sam morao spojiti podatke iz dvije tablice u jednoj su mi bili integer, a u drugoj tipa double, a ja sam trebao omogučiti daljni upis podataka po ID-u. Riješenje sam našao u Zidarevoj staroj funkciji:

Poziv funkcije bi otprilike glasio:

Private Sub Form_BeforeUpdate(Cancel As Integer)

'Za novi rekord, automatskis se izracunava broj protokola
If Me.NewRecord Then
Me!PoljekojetiIduformi = fNoviBroj(strTableName:="Imetabele", strFieldName:="Imepoljautabeli")
End If

End Sub

A sama funkcija ti glasi:

Function fNoviBroj(strTableName As String, strFieldName As String) As Variant
'Izracunava novi broj, da bude PK
'u tabelama gde je PK numericki podatak (ne Autonumber)
'Treba pozivati sa BeforeUpdate za formu
'da se izbegne stvaranje duplikata u multi user rezimu

On Error GoTo fNoviBroj_ERROR:

'Koristicemo DMax funkciju, koja moze da vrati i NULL (prazna tabela)
'pa nam treba VARIANt tip (NULL ne moze u numeric data type)
Dim varNoviBroj As Variant

varNoviBroj = 1 + Nz(DMax(strFieldName, strTableName), 0)
'Napomena: ne proveravamo nigde da li je data tip od strFieldName dobar.
'Ako posaljete polje koje je text tipa, dobicete 0 natrag

fNoviBroj = varNoviBroj

fNoviBroj_EXIT:
Exit Function

fNoviBroj_ERROR:
Select Case Err.Number
Case 2001
MsgBox "Pogresan parameter (strFieldName) prosledjeno funkciji", title:="fNoviBroj, Error " & Err.Number
Case 3078
MsgBox "Pogresan parameter (strTableName) prosledjeno funkciji", title:="fNoviBroj, Error " & Err.Number
Case Else
MsgBox prompt:=Err.Description, title:="fNoviBroj Error " & Err.Number
End Select
Resume fNoviBroj_EXIT:

End Function


Ono što sam bio napravio je da sam nakon toga polja autonumber u tablici promijenio u Number, a zadnji broj koji sam unio u polje u tablici je bio cijeli broj pa mi je dalje nastavilo zbrajati sa varNoviBroj = 1 + Nz(DMax(strFieldName, strTableName), 0), tj. imitiralo je autonumber od polja gdje sam stao.

U tvom slučaju predlažem da malo prilagodiš si funkciju po pravilu koji ti odrediš umjesto 1 koja je u mom slučaju.

Nadam se da sam ti pomogao
 
Odgovor na temu

Pike79

Član broj: 52785
Poruke: 200
212.200.182.*



Profil

icon Re: Problem sa Autonumber poljem26.02.2007. u 17:20 - pre 208 meseci
Ja koristim slican kod koji imitira autonumber i desava mi se ponekad da preskoci neki broj, mislim da je to zbog toga sto mi se desi da ne unesem sve podatke u formi i slucajno izadjem iz nje.
Ima li neko ovakav slican kod koji ce dodeljivati redne brojeve, ali da dozvoljava rucnu izmenu ako se desilo neko preskakanje rednog broja.
Bez muke nema nauke!!!
 
Odgovor na temu

[es] :: Access :: Problem sa Autonumber poljem

[ Pregleda: 2991 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.