Unik tæller

Tags:    visual-basic

Hej kloge folk

Jeg er ny på feltet og arbejder i vb5 med at lave et lille regnskabsprogram.

MEN jeg søger noget, som jeg ikke ved hvad hedder.

Jeg vil gerne have at mit program / min form genererer et nyt unikt nummer hver gang det åbner, ligesom et gammeldags fakturahæfte eller en bogført postering i et regnskab.

Har nogen et forslag til en simpel kode, som generer et nyt fortløbende nummer hver gang man åbner?

Lidt i stil med FreeFile-rutinen.

Og hvad er i øvrigt det pointsystem, der er her på siden?

Jeg prøver bare med 100









3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Med hensyn til den måde som du laver et unikt nummer på , så er det jo helt fint. Hvis du så senere skal blive mre seriøs med dit program så skal det ikke være muligt for en elmindelig bruger at ændre det nummer i filen (så kan man fuske med posteringer). Men selve måden er fin, da det er sådan stort set alle systemer gør det. Måske skulle du overveje at i stedet for kun at gøre det når der lukkes, så gøre det hver gang der laves en postering, på den måde er brugerens data sikret at computeren skulle crashe eller programmet crasher uden at gemme. Så er alle data tabte...




Hov nu har jeg faktisk selv fået noget til at virke nogenlunde efter hensigten, men måske er der en, som kender en genvej.

Jeg vedlægger min konstruktion, som er baseret på øvelse i en VB5-bog og består af to rutiner, hvor et heltal bliver gemt i en ekstern txt-fil før programluk og derefter hentet ind igen ved programstart og adderet med 1:


Private Sub Command1_Click()

Dim FileNum As Integer
Dim MyString As Integer

FileNum = FreeFile
MyString = Text1

Open "C:\\Løbenummer.txt" For Output As FileNum
Write #FileNum, MyString
Close FileNum
End
End Sub


Private Sub Form_Load()

Dim FileNum As Integer
Dim MyString As String

FileNum = FreeFile
Open "C:\\Løbenummer.txt" For Input As FileNum
Input #FileNum, MyString
Text2 = MyString
Text1 = Text2 + 1
Close FileNum
End Sub


Hej kloge folk

Jeg er ny på feltet og arbejder i vb5 med at lave et lille regnskabsprogram.

MEN jeg søger noget, som jeg ikke ved hvad hedder.

Jeg vil gerne have at mit program / min form genererer et nyt unikt nummer hver gang det åbner, ligesom et gammeldags fakturahæfte eller en bogført postering i et regnskab.

Har nogen et forslag til en simpel kode, som generer et nyt fortløbende nummer hver gang man åbner?

Lidt i stil med FreeFile-rutinen.

Og hvad er i øvrigt det pointsystem, der er her på siden?

Jeg prøver bare med 100









Med hensyn til den måde som du laver et unikt nummer på , så er det jo helt fint. Hvis du så senere skal blive mre seriøs med dit program så skal det ikke være muligt for en elmindelig bruger at ændre det nummer i filen (så kan man fuske med posteringer). Men selve måden er fin, da det er sådan stort set alle systemer gør det. Måske skulle du overveje at i stedet for kun at gøre det når der lukkes, så gøre det hver gang der laves en postering, på den måde er brugerens data sikret at computeren skulle crashe eller programmet crasher uden at gemme. Så er alle data tabte...


Hej Brian

Tak for dit begavede indspark. Jeg er helt enig. Og jeg bruger netop rutinen ifm gemmefunktion også. Jeg ændrer i øvrigt filen med gemte oplysninger til extensionen "*.dat" i den endelige version. Den skal der lidt mere til at man går ind og ændrer i, selv om det selvfølgelig kan lade sig gøre, men der er vist noget med at man kan låse filer så de kun kan åbnes med password eller kan laves til READ ONLY.
Såvidt er jeg ikke kommet og så urørligt behøver programmet heller ikke være.

Noget helt andet. Jeg bokser med en absurd ting: Datoer!

Jeg kan simpelthen ikke greje hvordan jeg får en textbox til at ændre brugerens input til dato-format, enten ex: 04-01-2007 eller 04-01-07 el. lign.

Jeg vil gerne have det sker i "Lost Focus" men sådan at hvis brugeren taster fx 4-1-07 så bliver det til et af de ovennævnte.

Det vigtige er at det ikke er dagens dato (altså "now"), men en vilkårlig dato fx ude fremtiden. Så det er bare formatet der skal justeres ift til inputtet

OK jeg har fået dette amerikanske forslag:

If IsDate(txtDato) Then
txtDato = Format(txtDato.Text, "mm-dd-yyyy")
End If

Det virker slet ikke eller også kan jeg ikke greje at derfinere variablerne til det udtryk.

Det tætteste jeg selv kan komme er:

txtDato = Format(txtDato, "00-00-0000")

Den virker formatmæssig, men kun hvis man skriver rigtigt, så at sige, så 4-1-07 bliver altså ikke til 04-01-07
og desuden accepteres også fx 55-55-5555 og det synes jeg er ufedt.

Forslag?

Ellers bare af hjertet tak for dit indspark.











t