Avatar billede pemaje Nybegynder
24. november 2007 - 22:45 Der er 4 kommentarer og
1 løsning

Default Value - Standardværdi med kriterier

Jeg har en lagerdatabase, hvor Lagernummerne er delt op i flere Hoved Index fra 01 til 99.
Således kan der under hovedindex 01 være følgende lagernummer:
0100000001
0100000002
0100000003
.
.
.

og under hovedindex 02:
0200000001
0200000002
.
.
. OSV.

Mit problem er, at jeg gerne vil have mit lagernummer autoudfyldt på min lagernummerindtastningsformular T_LAGERNUMMER. På denne starter jeg med at taste hovedindexnummer HID_NUMMER min idé er så, at feltet LAGERNUMMER i formularen skal autoudfyldes med det næste nummer inden for det valgte hovedindex, så jeg slipper for at skulle taste alle lagernummerne, når jeg skal igang med at fylde DB'en ud med poster.
Jeg har bøvlet lidt med noget MaksOfLagernummer, men jeg kan ikke få det til at fungere. Er der nogen der har en god idé
Avatar billede kabbak Professor
24. november 2007 - 23:25 #1
Jeg prøver:

Du har en formular, hvor du taster nye data ind.

Jeg har en cbo boks til  hovedindex, den fylder jeg sådan:

Private Sub Form_Load()
    For i = 1 To 99
        Select Case i
        Case Is < 9
            Me.cboHovedindex.AddItem "0" & i
        Case Else
            Me.cboHovedindex.AddItem i
        End Select
    Next
End Sub

Jeg har også en cmd butten til ny post, her er koden sådan:

Private Sub CmdTilføjPost_Click()
  DoCmd.GoToRecord , , acNewRec
  Dim NytNummer As Long
    If IsNull(DMax("Right([Lagernummer], 8)", "Vare", "Left([Lagernummer], 2) =" & Me.cboHovedindex)) Then
        NytNummer = 1
    Else
        NytNummer = DMax("Right([Lagernummer], 8)", "Vare", "Left([Lagernummer], 2) =" & Me.cboHovedindex) + 1
    End If
    Me.Lagernummer = Me.cboHovedindex & Format(NytNummer, "00000000")
 
End Sub


Vær opmærksom på at du skal have valgt i  Hovedindex, inden du trykker på ny post .


Håber det løser dit problem ;-))
kabbak
Avatar billede kabbak Professor
24. november 2007 - 23:32 #2
ret lige
    Case Is < 9

til   
Case Is < 10
Avatar billede pemaje Nybegynder
25. november 2007 - 14:46 #3
Tak for svaret kabbak

Med lidt ændringer og indsættelse i fokuslinien, fik jeg det til at virke. Det kom til at se således ud:
 
Private Sub LAGERNUMMER_GotFocus()
  Dim NytNummer As String
 
  If IsNull(DMax("Right([Lagernummer], 8)", "T_LAGERNUMMER", "Left([Lagernummer], 2)
  =" & Me.HID_NUMMER)) Then
  NytNummer = "00000001"
     
  Else
 
  NytNummer = (DMax("Right([Lagernummer], 8)", "T_LAGERNUMMER", "Left([Lagernummer],
  2) =" & Me.HID_NUMMER)) + 1
  End If
   
  Me.LAGERNUMMER = Me.HID_NUMMER & Format(NytNummer, "00000000")
 
End Sub

Og dermed point til kabbak!
Avatar billede pemaje Nybegynder
25. november 2007 - 14:47 #4
Send lige et svar kabbak
Avatar billede kabbak Professor
25. november 2007 - 15:58 #5
et svar ;-))
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