Avatar billede dna12 Nybegynder
25. januar 2007 - 16:38 Der er 25 kommentarer og
1 løsning

Nummerering ved klik på commando knap

Jeg er ved at lave en database til at registrere nogle indkøb på mit arbejde.
Jeg vil gerne ha at jeg kan tildele at nummer til mit indkøb ved at trykke på en kommando knap - det skal dog være tilsat ikke at tildele at nummer.

Nummeret skal bestå af nogle bogstaver dagsdato og et forløbende nr. Den måde kan vi se en beskrivelse af indkøbet, samt datoen for indkøbet - samt hvilket nummer i en række af indkøb på netop denne dato.

Jeg håber det blev til at forstå.

Mvh Dna12
Avatar billede supertekst Ekspert
25. januar 2007 - 17:00 #1
D.v.s. at knappen skal placeres på en formular og der i den pågældende tabel er et felt til lagring af indkøbsID. Vil det sige, at løbenr. begynder forfra pr. dato.
Avatar billede dna12 Nybegynder
25. januar 2007 - 17:23 #2
Hej supertekst

Jeg vil gerne ha at løbenr begynder forfra hver dag, ja - så er let at overskue.

Og commando knappen skal gerne placeres i en forular.

Mvh Dna12
Avatar billede supertekst Ekspert
25. januar 2007 - 18:02 #3
Har du mulighed for at sende en kopi af databasen - i .zip-format til:
pb@supertekst-it.dk
Avatar billede dna12 Nybegynder
25. januar 2007 - 18:59 #4
Jeg er bange for, at jeg nok kommer galt afsted mht firmaets politik, hvis jeg mailer den til dig :-(

Har du ikke en mulighed for at foreslå noget uden at direkte se databasen.
Avatar billede Slettet bruger
25. januar 2007 - 22:55 #5
Her er en løsning, som du kan variere lige så tosset du vil!~)

Private Sub NavnPåKnap_Click()
Dim a, b, c
a = Format(Date, "yyyymmdd")
b = Format(DCount("*", "NavnPåTabel", "Left([NavnPåFeltSomSkalIndeholdeIdNr], 8) = " & a) + 1, "000")
c = InputBox("Indtast varekode")
Me.NavnPåFeltSomSkalIndeholdeIdNr = a & "-" & b & "-" & c
End Sub

Jeg har valgt at sætte dato forrest i formatet yyyymmdd og så et nummer, som holder 3 pladser, for så burde du kunne sortere på nummeret...
Avatar billede Slettet bruger
25. januar 2007 - 22:57 #6
altså det endelige nummer!~)
Avatar billede Slettet bruger
25. januar 2007 - 23:01 #7
En god ide ville nok også være at holde forkortelsen for de forskellige varer på lige mange bogstaver. Hvis det eks. var 3, så kunne en right([NavnPåFelt];3) i en forespørgsel bruges til at sortere efter vare eller bruges til søgning af bestemt vare..
Avatar billede dna12 Nybegynder
26. januar 2007 - 09:33 #8
Det ser ok ud - bortset fra, at den gi'r det samme nummer 2 gange.

Det er meget vigtigt at den tæller op...
Så jeg får forskelle numre.

Hvis alle mine indkøb nu skal se således ud: BASdagsdato(yymmdd)-nummer(xx)
Nummeret skal tælle op, men starte forfra hver dag.

(BAS er bare en forkortelse ikke noget vigtigt og skal bare være tekst)

Håber du kan hjælpe

Mvh Dna12
Avatar billede Slettet bruger
26. januar 2007 - 10:22 #9
Det burde virke (jeg kan godt få det til at virke med nummereringen, prøv at teste lidt mere og hold øje med din tabel, især datoen er interessant i forhold til nummereringen) og her er dine sidste tilpasninger:

Private Sub NavnPåKnap_Click()
Dim a, b
a = Format(Date, "yymmdd")
b = Format(DCount("*", "NavnPåTabel", "Left([NavnPåFeltSomSkalIndeholdeIdNr], 6) = " & a) + 1, "00")
Me.NavnPåFeltSomSkalIndeholdeIdNr = "BAS" & a & "-" & b
End Sub
Avatar billede Slettet bruger
26. januar 2007 - 10:29 #10
Hov...

Private Sub NavnPåKnap_Click()
Dim a, b
a = Format(Date, "yymmdd")
b = Format(DCount("*", "NavnPåTabel", "MID([NavnPåFeltSomSkalIndeholdeIdNr], 4, 6) = " & a) + 1, "00")
Me.NavnPåFeltSomSkalIndeholdeIdNr = "BAS" & a & "-" & b
End Sub
Avatar billede Slettet bruger
26. januar 2007 - 10:45 #11
Du kan evt. ligge en kontrol ind:

Private Sub NavnPåKnap_Click()
If IsNull(Me.NavnPåFeltSomSkalIndeholdeIdNr) Then
Dim a, b
a = Format(Date, "yymmdd")
b = Format(DCount("*", "NavnPåTabel", "MID([NavnPåFeltSomSkalIndeholdeIdNr], 4, 6) = " & a) + 1, "00")
Me.NavnPåFeltSomSkalIndeholdeIdNr = "BAS" & a & "-" & b
Else
MsgBox "Indkøbet er allerede registreret som " & Me.NavnPåFeltSomSkalIndeholdeIdNr
End If
End Sub

eller:

Private Sub NavnPåKnap_Click()
Start:
If IsNull(Me.NavnPåFeltSomSkalIndeholdeIdNr) Then
Dim a, b
a = Format(Date, "yymmdd")
b = Format(DCount("*", "NavnPåTabel", "MID([NavnPåFeltSomSkalIndeholdeIdNr], 4, 6) = " & a) + 1, "00")
Me.NavnPåFeltSomSkalIndeholdeIdNr = "BAS" & a & "-" & b
Else
If MsgBox("Indkøbet er allerede registreret som " & Me.NavnPåFeltSomSkalIndeholdeIdNr & Chr(10) & Chr(13) & "Ønsker du at beholde dette løbenr?", vbYesNo) = vbNo Then
Me.NavnPåFeltSomSkalIndeholdeIdNr = Null
GoTo Start
End If
End If
End Sub
Avatar billede Slettet bruger
26. januar 2007 - 10:49 #12
Hvis du ønsker at kunne registrere for andre datoer, kunne du lave et tekstfelt, som
har dagsdato, som standardværdi og så ændre koden for a til:

a = Format(me.NavnPåTekstfelt, "yymmdd")

Du har nu mulighed for at ændre i tekstfeltet hvis du ønsker en anden dato!~)
Avatar billede dna12 Nybegynder
26. januar 2007 - 13:21 #13
Det virker fint med at gi det rigtige nummer bortset fra at den bli'r ved med at gi nummer 01. Hvis jeg trykker på knappen igen kan den gi f.eks nummer 4, men ikke nummer 2.

Hvad er det jeg gør forkert???
Avatar billede Slettet bruger
26. januar 2007 - 13:25 #14
Prøv at slette alle numre i tabellen og generer nye..
Avatar billede dna12 Nybegynder
26. januar 2007 - 13:29 #15
Det har jeg prøvet - det hjalp desværre ikke.
Avatar billede Slettet bruger
26. januar 2007 - 13:38 #16
Altså der er jo denne her, som fejler:

b = Format(DCount("*", "NavnPåTabel", "MID([NavnPåFeltSomSkalIndeholdeIdNr], 4, 6) = " & a) + 1, "00")

prøv at se hvad flg. giver af info:

Private Sub NavnPåKnap_Click()
Dim a, b
a = Format(Date, "yymmdd")
b = Format(DCount("*", "NavnPåTabel", "MID([NavnPåFeltSomSkalIndeholdeIdNr], 4, 6) = " & a) + 1, "00")
msgbox a
msgbox MID([NavnPåFeltSomSkalIndeholdeIdNr], 4, 6)
Me.NavnPåFeltSomSkalIndeholdeIdNr = "BAS" & a & "-" & b
End Sub
Avatar billede Slettet bruger
26. januar 2007 - 13:40 #17
Hvad er forresten de rigtige betegnelser for tabel og felter.. Det gør det lidt nemmere for dig at copy/paste!~)
Avatar billede dna12 Nybegynder
26. januar 2007 - 13:52 #18
Den skriver 070126

og gi'r en run-time error 94
invaling use of Null
Avatar billede Slettet bruger
26. januar 2007 - 13:54 #19
Hvad siger:

Private Sub NavnPåKnap_Click()
Dim a, b
a = Format(Date, "yymmdd")
b = Format(DCount("*", "NavnPåTabel", "MID([NavnPåFeltSomSkalIndeholdeIdNr], 4, 6) = " & a) + 1, "00")
msgbox a
msgbox me.NavnPåFeltSomSkalIndeholdeIdNr
msgbox MID([NavnPåFeltSomSkalIndeholdeIdNr], 4, 6)
Me.NavnPåFeltSomSkalIndeholdeIdNr = "BAS" & a & "-" & b
End Sub
Avatar billede dna12 Nybegynder
26. januar 2007 - 13:55 #20
Det samme
Avatar billede dna12 Nybegynder
26. januar 2007 - 13:58 #21
Den ser sådan her ud:

Private Sub Tildel_nr_Click()
Dim a, b
a = Format(Me.Modtagetdato, "yymmdd")
b = Format(DCount("*", "tabelKemikalier", "MID([InterntBatchnummer], 4, 6) = " & a) + 1, "00")
MsgBox a
MsgBox Me.InterntBatchnummer
MsgBox Mid([InterntBatchnummer], 4, 6)
Me.InterntBatchnummer = "BAS" & a & "-" & b
End Sub
Avatar billede Slettet bruger
26. januar 2007 - 14:06 #22
Prøv:

Private Sub Tildel_nr_Click()
Dim a, b
a = Format(Me.Modtagetdato, "yymmdd")
b = Format(DCount("*", "tabelKemikalier", "NZ(MID([InterntBatchnummer], 4, 6),'0') = " & a) + 1, "00")
Me.InterntBatchnummer = "BAS" & a & "-" & b
End Sub
Avatar billede dna12 Nybegynder
26. januar 2007 - 14:10 #23
Den gi'r stadig det samme nr.
Avatar billede Slettet bruger
26. januar 2007 - 14:23 #24
Det virker hos mig uden nogen som helst problemer...

og hvad angår microsoft:

Run-time Error 94: Invalid Use of Null
Solution
At this point, common sense may be able to advise you what exactly it is that is causing the error. Go back to the source of the problem and correct the mistake.

Hvis det ikke lykkedes dig så kan du prøve at lave en lille db, med formularen og tabellen med nogle få fiktive data, så zippe den og sende den til spgeertz på hotmail, så kan jeg måske se på det i aften. God weekend!~)
Avatar billede supertekst Ekspert
31. januar 2007 - 14:11 #25
Hvis problemet stadig ikke er løst - så har jeg en model, der måske kan inspirere.
Send evt. en mail til: pb@supertekst-it.dk - så returnerer jeg forslaget...
Avatar billede supertekst Ekspert
01. februar 2007 - 12:51 #26
Private Sub Command16_Click()
Dim a, b, db, Rec, antal

    Set db = CurrentDb
    Set Rec = db.openRecordset("Kemikalie")
    antal = 0
    For r = 1 To Rec.RecordCount
        With Rec
            If CStr(.Fields(6)) = Me.Modtaget_dato Then
                antal = antal + 1
            End If
        .MoveNext
        End With
    Next r
    Rec.Close
    db.Close

    antal = Format(antal + 1, "00#")
    Me.Internt_batch_nummer = "BAS" & Format(Me.Modtaget_dato, "yymmdd") & "-" & antal
End Sub
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