Avatar billede celal Nybegynder
30. september 2002 - 13:52 Der er 15 kommentarer og
2 løsninger

Tal problemer

Jeg kan ikke beholde mit Nul foran et tal...Eks:
Dim Nummer as Integer
Nummer = 0011422
Bliver til
Dim Nummer as Integer
Nummer = 11422

Hvordan kan få minne nul taller med?
Avatar billede moses Praktikant
30. september 2002 - 13:55 #1
format(tal, "0000000")
Avatar billede celal Nybegynder
30. september 2002 - 14:29 #2
Moses: er ikke helt med på dit eksempel: kan du uddybe?
Avatar billede moses Praktikant
30. september 2002 - 14:35 #3
I princippet er der jo ikke nogen værdi gemt i de ekstra nuller, men nogle gange kan det se pænere ud eller være nemmere at overskue, hvis tal vises med lige mange cifre - uanset, hvo mange betydende cifre der er i tallet.

Programmerne opbevarer dog altid kun de betydende cifre !!

Der, hvor tallet skal vises, indsættes ikke kun henvisningen til tallet, men en formel, der lige formatterer tallet, så det ser ud, som man ønsker det.
Har du f.eks. et tekstfelt i en form eller en report, så kan den henvise til:

TekstFelt.Text = format(MitTal,"0000000")

og så bliver alle tal vist med (i dette tilfælde) 7 cifre - uanset, om tallet er mindre.

7 bliver til 0000007
12345 bliver til 0012345
Avatar billede celal Nybegynder
02. oktober 2002 - 08:37 #4
Jeg er tilbage igen. Moses jeg kan ikke få det til at virke.Den fjerner satdig nulerne foran talet, problemet er at jeg skal bruge disse nuler
Avatar billede moses Praktikant
02. oktober 2002 - 08:54 #5
Vi taler om Access
Du har en tabel med bl.a. tal i

Nu er der to muligheder:

1. Du vil have vist tallene i en form eller report
2. Du viser tallene i selve tabellen.

1. I den form eller report er der et tekstfelt, som henviser til en kolonne i din tabel, hvor der står et tal.
Et klik på tekstfeltet, vis Properties, vælg faneblad "Format":
Der er en linie, der hedder "Format ....... "
Der kan du skrive formatteringen direkte: f.eks. "0000000"
Hvis du laver det i VBA, skal du skrive:
tekstfelt.value = format(mitFelt,"0000000")

2. I selve tabellen er der også properties, der angiver formatet.
Gå ind i design for tabellen, stil dig på feltet og se på linien "Format" nede i properties.
Der skriver du så:
Format ... "0000000"
Avatar billede celal Nybegynder
02. oktober 2002 - 08:54 #6
Når jeg skriver:
Format(7, "00000")
Så får jeg 000007, men når jeg skriver
Dim Nummer As Integer
Nummer=7
Format(Nummer,"00000")
Så får jeg 7

Hvad skal jeg gøre for at få 000007, med brug af Nummer ?
Avatar billede celal Nybegynder
02. oktober 2002 - 08:55 #7
VBA, jeg prøver lige
Avatar billede celal Nybegynder
02. oktober 2002 - 08:57 #8
Det tal jeg arbejder med kommer ikke fra nogen tabel, men er en tæller som bliver talt 1 op
Avatar billede moses Praktikant
02. oktober 2002 - 08:58 #9
Når du skriver, som du gør 02/10-2002 08:37:03, så kan jeg ikke lade være med at sige det igen:

Tallet opbevares altid uden de foranstillede nuller !!!! Men det er normalt også fuldstændigt ligegyldigt, for de kan jo nøjes med at blive "sat på", når nogen skal se tallet (I forms, reports og i tabellen).
Avatar billede moses Praktikant
02. oktober 2002 - 09:05 #10
Jeg giver nu et eksempel:

Private Sub Olsen()
  Dim x as Integer
  Dim y as Integer

  y = 0
  For x = 1 to 10
    y = y + x
  Next

  'Herefter kan du vise tallet y på masser af måder:
 
  'I en messagebox
  MsgBox format(y,"000000")

  'I et tekstfelt på en form
  TekstFelt.Value = format(y,"000000")

End Sub
Avatar billede moses Praktikant
02. oktober 2002 - 09:06 #11
Det med tekstfeltet kan så også gøres, som jeg fortalte før, ved at sætte properties på selve tekstfeltet til "000000".
Avatar billede celal Nybegynder
02. oktober 2002 - 09:08 #12
Dim Nummer As Integer
Nummer=1
MsgBox Format(Nummer, "00000")

Her burde jeg få 000001, men det gøre jeg ikke, jeg får talet 1

MsgBox Format(1, "00000"), her får jeg godt nok 000001, hvordan kan det være?
Avatar billede moses Praktikant
02. oktober 2002 - 09:19 #13
Dim x As Integer
   
    x = 1
    MsgBox Format(x, "0000000")

giver 0000001 hos mig. Så noget må du gøre galt ?!
Det kan være, at du skal oprette et spørgsmål om, hvordan man ominstallerer sin Office pakke  :-(
Avatar billede celal Nybegynder
02. oktober 2002 - 09:37 #14
hmmmm, Kan ikke forstå det!
Avatar billede moses Praktikant
02. oktober 2002 - 09:44 #15
Så er vi da enige om det !
Avatar billede terry Ekspert
05. oktober 2002 - 15:19 #16
celal try entering your number 0011422 on a calculator!
You will find that you can NOT. As moses has explained using the format function will DISPLAY a number of zeroes before the actual number (11422) but the field itself ONLY contains the value 11422.

If you use

Dim x

x = Format(11422, "0000000")
then
msgbox x
you WILL get
11422
BUT if you use
msgbox Format(x, "0000000")
you get
0011422
But this is ONLY for displaying the value NOT for storing the value.


then x WILL
Avatar billede moses Praktikant
07. oktober 2002 - 07:32 #17
Hvis det, som Celal skriver i 02/10-2002 09:08:40 er præcist det, han har testet, så er der absolut noget galt med hans installation!
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