Avatar billede jones279 Nybegynder
20. april 2003 - 19:28 Der er 17 kommentarer og
2 løsninger

+1 til felt for hver record!

Hey!

Hvordan laver Default Value til et Number-felt hvor værdien stiger med for hver record.. ?

Eks:

feltnavn:
4
5
6
7

Forsøg med "+1" og "[Feltnavn]+1" har ikke vist sig at være en succes!

På forhånd tak...
Avatar billede kabbak Professor
20. april 2003 - 19:30 #1
sæt feltet til autonummerering
Avatar billede ellebaek Nybegynder
20. april 2003 - 19:35 #2
autonummerering...
Avatar billede ellebaek Nybegynder
20. april 2003 - 19:35 #3
svar!
Avatar billede jones279 Nybegynder
20. april 2003 - 19:57 #4
Feltet starter på 10 desuden er der andre komplikationer...
Avatar billede ellebaek Nybegynder
20. april 2003 - 20:02 #5
Hvilke komplikationer ?
Avatar billede ellebaek Nybegynder
20. april 2003 - 20:06 #6
Men det med at det begynder ved 10 er ikke noget problem...

Ændre startværdien i et stigende felt af typen Autonummerering
I forbindelse med en ny tabel, der ikke indeholder poster, kan du ændre startværdien i et felt af typen Autonummerering, hvor egenskaben NyeVærdier (NewValues) er angivet til Stigende til et andet tal end 1. I forbindelse med en tabel, der indeholder poster, kan du også anvende denne procedure til at ændre den næste værdi, der er tildelt i et felt af typen Autonummerering, til et nyt tal.

Opret en midlertidig tabel med kun ét felt, som skal være af et felt af typen Tal. Angiv egenskaben Feltstørrelse (FieldSize) til Langt heltal, og giv feltet det samme navn som Autonummerering-feltet i den tabel, hvis værdi du vil ændre.
Sådan gør du

Skriv i Tal-feltet i den midlertidige tabels dataarkvisning en værdi, der er 1 mindre end den startværdi, feltet af typen Autonummerering skal indeholde. Hvis du f.eks. ønsker, at Autonummerering-feltet skal starte ved 100, skal du skrive 99 i Tal-feltet.


Opret og kør en tilføjelsesforespørgsel for at føje den midlertidige tabel til den tabel, hvor du vil ændre værdien i feltet af typen Autonummerering.
Sådan gør du

Bemærk! Hvis den oprindelige tabel indeholder en primær nøgle, skal du midlertidigt fjerne den primære nøgle, før du kører tilføjelsesforespørgslen. Hvis den oprindelige tabel indeholder felter, hvor egenskaben Obligatorisk (Required) er angivet til Ja, egenskaben Indekseret (Indexed) er angivet til Ja (Ingen dubletter), eller hvor indstillinger af felt- og/eller postegenskaben Valideringsregel (ValidationRule) er angivet til at forhindre brugen af Null-værdier i felter, skal du også midlertidigt deaktivere disse indstillinger.

Slet den midlertidige tabel.


Slet den post, der er tilføjet ved hjælp af tilføjelsesforespørgslen.


Sæt egenskabsindstillingerne i trin 3 tilbage til deres oprindelige indstillinger, hvis du har været nødt til at deaktivere dem.
Når du indtaster en post i den tabel, der er tilbage, anvendes en værdi i Autonummerering-feltet, der er 1 større end den værdi, du har indtastet i den midlertidige tabel.

Bemærk! Hvis du vil komprimere databasen, når du har ændret startværdien i Autonummerering-feltet, skal du sørge for at føje mindst én post til tabellen først. Hvis du ikke gør det, når du komprimerer databasen, ændres værdien i Autonummerering-feltet for den næste post, der tilføjes, til 1 over den værdi, der var højest sidst. Hvis der f.eks. ikke var nogen poster i tabellen, da du nulstillede startværdien, ville komprimering medføre, at værdien i feltet af typen Autonummerering for den næste post forhøjes med 1. Hvis der var poster i tabellen, da du nulstillede startværdien, og den værdi, der var højest sidst, var 50, vil komprimeringen medføre, at værdien i Autonummerering-feltet for den næste post, der tilføjes, angives til 51.
Avatar billede jones279 Nybegynder
20. april 2003 - 20:06 #7
Det irrelevant for sagen da det er længere forklaring...
Avatar billede jones279 Nybegynder
20. april 2003 - 20:15 #8
Det er vigtig at der ikke er mulighed for mellemrum mellem tallene, f.eks. at 16 bliver sprunget over pga. fejlredigering... Kort sagt: Hvordan gør man UDEN at bruge autonummering!!?
Avatar billede sjap Praktikant
20. april 2003 - 22:06 #9
Prøv med

Nyværdi = DMax("[Feltnavn]", "Tabelnavn") + 1
Avatar billede sjap Praktikant
20. april 2003 - 22:14 #10
I en formular kan du blot indsætte det i formularens BeforeInsert hændelse:

Me!Feltnavn = DMax("[Feltnavn]", "Tabelnavn") + 1
Avatar billede mugs Novice
21. april 2003 - 09:17 #11
superjab > Et lille forslag til ændring asf din kode:

If Me.NewRecord Then
Me!Feltnavn = DMax("[Feltnavn]", "Tabelnavn") + 1
End If

Jeg er lige kommet hjem fra en 12-timers nattevagt, så jeg er ikke lige på toppen, og har ikke afprøvet om det har nogen virkning.
Avatar billede terry Ekspert
21. april 2003 - 10:53 #12
jones>You will need a table with one field (number) containing the LAST number. Set this to 0.

tblSystem:
NextID Long integer

Now you need a function which you have in a module.

Function NextNumber() as Long

NextNumber = DFirst("NextID", "tblSystem")
Docmd.runsql "UPDATE tblSystem SET NextID = NextID +1"

End Function
Then in the forms BEFORE update event you use

if me.Newrecord Then
feltnavn = NextNumber
end if
Avatar billede terry Ekspert
21. april 2003 - 10:56 #13
if the values start with 10 then you set NextID to 10
Avatar billede jones279 Nybegynder
27. april 2003 - 20:17 #14
Der var squ intet af det der virkede drenge :( Men har fundet en anden måde...
Avatar billede mugs Novice
27. april 2003 - 20:20 #15
Muligheden for at du har ret eksisterer naturligvis. Men med de eksperter, der har afgivet svar lyder det utroligt.

Jf. ekspertens regler, skal jeg anmode dig om at offentliggøre din løsning her på eksperten.
Avatar billede terry Ekspert
27. april 2003 - 20:37 #16
I agree mugs>Lets see it jones279 :o)
Avatar billede jones279 Nybegynder
27. april 2003 - 22:01 #17
Hehe, det må i meget gerne, jeg droppede fuldstændig ideen og lavede det med alm nummerering i tabellen... Så er der lidt mere manuelt arbejde men fuck det - eneste mulighed for at få det til at virke, jeg kunne i hvert fald ikke finde ud af at bruge de muligheder der blev givet....


Men Mugs <--- du er squ en speciel person, mærkeligt at blande sig i andres tråde...

I andre har fået pointene fordelt for besværet...
Avatar billede mugs Novice
27. april 2003 - 22:32 #18
Men Mugs <--- du er squ en speciel person, mærkeligt at blande sig i andres tråde...

Ja - Og det tager jeg stille og roligt.
Avatar billede jones279 Nybegynder
27. april 2003 - 22:37 #19
Øhh nåh?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester