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
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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