Hejsa I min access db har jeg en nøgle ved navn 'id' som er af tyen AutoNumber og sat til Random, men hvordan kan jeg sikre mig at dette tal er større end 0 ??
mugs << ja, men det erjo ikke lige det jeg spørg om, og det behøves ikke starte med 1 hvis du det sættes til random. Hvordan sikre jeg mig at tallet bliver større end 0 ved random ?
agony2 I dont think you have MUCH chance of it landing on 0. This is taken from Access help "When you replicate a database, AutoNumber field settings are set to Random to ensure that new records entered in different replicas will have unique values." So although there may be a slim chance I VERY mmuch doubt you will EVERY have problems with this. Try entering a few records and you will get some idea as to the SIZE of these numbers! I would also think that the algorithm will not allow 0
yes your right mugs, but if you concider what this RANDOM is intended for the chances are almost none existant, and I am also resonably sure that the algorithm for finding this RANDOM number will NOT return 0, although I havent asked Bill if my assumption is right :o)
Oh, nu er jeg med! I was thinking that it HAD to be NOT = 0 but you want it to be GREATER than ZERO. Well if you decide to use RANDOM then you CAN NOT! Th epurpose of random is to make sure that the RANDOM number doesnt get duplicated so, if it was possible to manipulate this then Microsoft couldnt guaranty thi . SO, if you want to make sure it is > 0 then use INCREMENT and NOT RANDOM. OR you will have to make your own ID. What puzzled me is that normally you wouldnt have to worry about what the actual number is, as it is just used as a UNIQUE key.
hi mugs, Yes, just wasnt thinking on those lines, it must have been all that whisky at the whisky messe on saturday :o) I'de still like to know WHY it needs to be >0 though, any coments agony2?
Grunden til at jeg engang har benyttet mig af mit forslag er, at det ser lidt dumt ud, når der på svømmeklubbens medlemskort står, at jeg er medlem nummer "-21345653". Rent visuelt.
hi moses> But IF you want a unique "medlems nummer" then it would also be an idea to have a number system which can MAYBE be remembered, in other words I would make my own number system which WILL NOT be auto number.
Mugs>Lagavulin happens to be one of my favorites, in fact almost all whisky's from Islay are VERY good. I would say my favorite is Port Ellen :o) (pity its closed now)
Private Function pyt(tal As Long) As String Dim s As String Dim x As Integer Dim r As String Dim f As Integer
f = Sgn(tal) tal = Abs(tal) s = CStr(tal) r = "" For x = 1 To Len(s) If (x Mod 2) = 0 Then r = r & Chr(Val(Mid(s, x, 1)) + 65) Else r = r & Mid(s, x, 1) End If Next If f < 0 Then r = r & "N" Else r = r & "P" End If pyt = r End Function
Det er da også hyggeligt - Og stadig en entydig reference til Autonummeret.
Den indbyggede funktion Rnd() genererer et tal større end eller lig med 0 og mindre end 1. For at få helt tal op til en bestemt værdi ganges med dette tal. På resultetatet bruges funktionen Int(), som giver heltalsdelen. Hvis man vil sikre sig at resultatet ikke er nul skal der lægges 1 til. Så teoretisk kunne nul tænkes i Autonummering, men da Default for Autonummering starter med 1 gør den anden mulighed sikkert også!
>>>>> fynbohans Med Rnd bygget ind i en formel, kan du få resultatet til at ligge, hvorend du vil blot det er et kontinuert interval og de enkelte steps fra begyndelse til slut ikke overstiger opløsningen, hvormed Rnd angives med. MEN Rnd er ikke unik, da samme tal sagtens kan forekomme flere gange inden alle tal i den fulde opløsning er brugt.
Hvordan Microsoft gør ved jeg ikke med man kan sagtens lave en funktion, som producerer unike tilfældige tal med Rnd(), hvis intervallet ikke er for stort. Nemmest at forlare med et konkret eksempel, f.eks.100. Man fylder et array med tallene fra 1 til 100, finder et tilfældigt tal og bruger indholdet af elementet som resultat. Det brugte element ombyttes med nr.100 (swap). Næste gang bruges intervallet 1-99 osv. Brugte tal vil altid være uden for funktionens rækkevidde.
Hvis det drejer sig om meget store intervaller, f.eks. de over 2 millarder positive tal, som LONG spænder over ville jeg bruge Rnd() for hvert ciffer (1-9 f.eks.). Teoretisk kunne man lave en database over alle brugte tal. Der findes meget hurtige måder at søge i tal på.
Men Microsoft gør noget andet! I Visual Basic hjælp under ReplicaId kan man se at Access ser bort fra denne mulighed, fordi chancen for at få det samme tal 2 gange er forsvindende lille.
hi folks! I dont know why everyone is using so much time on this question when the person who placed it doesnt seem to have the time to make any comments. These would more than likley shed some light on to what is actually required. agony2 lets hear from you!
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.