03. januar 2005 - 13:39
Der er
20 kommentarer og 1 løsning
Definering af autonummerfelt
Jeg vil gerne have genereret et autonummerfelt, som skal følge visse regler: Eks. første faktura i hvert år: årxxxx Eksempelvis 20050001 20050002 Hvordan får jeg genereret det?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
03. januar 2005 - 13:42
#1
Det styres nemmest vha VBA på formular-niveau. På en formulars BeforeInsert-hændelse kan du lægge denne kode: Me!FakturaID= nz(DMax("fakturaID", "Din tabel", "Left(FakturaID,4) = Year(Date())"), 0)+1
03. januar 2005 - 13:43
#2
I feltegenskaber ( format ) har du mulighed for at tilføje år, eksempelvis : "2005 "&
03. januar 2005 - 13:44
#3
Jensen, duer det så ikke kun for i år?
03. januar 2005 - 13:45
#4
Jo ... det kan der være noget om :o)
03. januar 2005 - 13:49
#5
Skal det være et autonummerfelt den henviser til i den tabel?
03. januar 2005 - 13:55
#6
nej, du skal slet ikke bruge autonummer, da autonummer ikke kan styres. Brug bare langt heltal i stedet. Alternativt kunne du bruge et autonummer sammen med et andet felt. Dvs et autonummer-felt samt et langt heltal-felt. På formularens BeforeInsert kunne således lægge denne kode: Me!fakturaID = val(cstr(Year(Date)) & Me!DitAutonummerfelt) Men så har du altså 2 felter, hvor det ene er redundant (overflødigt) ligesom du vil opleve huller i rækkefølgen, hvis du sletter en post.
03. januar 2005 - 14:00
#7
Fakturaen kom til at hedde 1.. skulle hedde 20050001 Hvad er fejlen - har brugt din kode thomasjepsen Private Sub Form_BeforeInsert(Cancel As Integer) Me!Fakturanummer = Nz(DMax("Fakturanummer", "ordrekart", "Left(Fakturanummer,4) = Year(Date())"), 0) + 1 End Sub
03. januar 2005 - 14:02
#8
hmm...det skyldes nok, at tabellen er tom. Så finder den ikke nogle poster med 2005 i. kigger lige på det....
03. januar 2005 - 14:05
#9
Det hjalp da jeg lavede den ene om til 20050001.. så var den næste rigtig.. tænker bare mere på hvad der sker til næste år..
03. januar 2005 - 14:06
#10
ja, det er netop problemet....det er nemlig også lidt problematisk, at du vil have foranstillet nuller foran 1-tallet.
03. januar 2005 - 14:09
#11
Ja.. men jeg kan evt. lave for 10 år frem.. eks. 20060000 20070000.. osv.. så løser det sig selv.. eller hvad? Det ser ud til at virke..
03. januar 2005 - 14:10
#12
Er løsningen så ikke en kombination af et foematteret autonummereringsfelt og et år-felt med standardværdi Year(Date())
03. januar 2005 - 14:12
#13
Prøv denne: Me!Fakturanummer = Year(Date) & CStr(Format(Nz(DMax("Fakturanummer", "ordrekart", "Left(Fakturanummer, 4) = Year(Date())"), 1), "0000"))
03. januar 2005 - 14:16
#14
works...
03. januar 2005 - 14:16
#15
stadig lidt problemer.....øjeblik ;o)
03. januar 2005 - 14:18
#16
tak for point...men der er stadig problem....2 min...
03. januar 2005 - 14:19
#17
nå.ok..
03. januar 2005 - 14:20
#18
Ja.. det virker kun ved den første...
03. januar 2005 - 14:24
#19
jep :o( Men denne skulle være bedre (så har jeg ikke lovet for meget ;) Me!Fakturanummer = Year(Date) & CStr(Format(Val(Mid(Nz(DMax("Fakturanummer", "ordrekart", "Left(Fakturanummer, 4) = Year(Date())"), 0), 5)) + 1, "0000"))
03. januar 2005 - 14:26
#20
Det var bedre.. tak..
03. januar 2005 - 14:29
#21
ja, det var lige med, at holde tungen lige i munden ;o)
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser