Avatar billede tolveren Nybegynder
28. juni 2004 - 19:48 Der er 12 kommentarer og
2 løsninger

Record springes over

Jeg har lavet en form med indtastning af data til en tabel.
I tabellen indsættes der automatisk rækkenr. Når formen er åbnet og indtastningen kører så indsættes der automatisk rækkenr, men efter at formen har været lukkket ned og derefter genåbnet så springer acces et rækkenr over. Her er min kode der er indsat på current og på open.
Er der nogen som har en ide til mig, så har du hjulpet mig. Tak.
-----------
Private Sub Form_Current()
Dim rs As DAO.Recordset 
Set rs = Me.RecordsetClone

    On Error Resume Next
    rs.MoveLast 
   
    rs.Close
   
   
    Dim stDocName As String
   
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
    ' ovst opdaterer
   
    Me!Tid = Now            ' indsætter tidspunkt i tabellen'
    Me!Bruger = CurrentUser() ' indsætter brugeren som er logget på i tabellen'
   
End Sub
-----------------------------------------
Private Sub Form_Open(Cancel As Integer)

Dim stDocName As String

    stDocName = "Makro8"  ' gå til felt1
    DoCmd.RunMacro stDocName
   
    'DoCmd.RunMacro stDocName
   
End Sub
Avatar billede bjorn_jeppesen Nybegynder
28. juni 2004 - 22:16 #1
Hejsa,Prøv en docmd.refresh istedet for det menuitem du har fat i. Den laver en lagring af felternes aktuelle indhold ned i basen.

:-)
Bjørn
28. juni 2004 - 22:38 #2
Jeg er slet ikke klar over hvad det er, du laver med dit recordsetclone i Form_current? Umiddelbart ville jeg bare fjerne det, da det i værste fald kun laver ballade.
At du på Form_Current sætter Tid og Bruger på denne måde, betyder at du automatiks får påbegyndt oprettelsen af en ny post i det, du hopper til ny post. Hvis du herefter f.eks. trykker på en annuller-knap eller trykker ESC, er der allerede reserveret et nummer i autonumer-rækkefølgen (hvorfor der kommer et 'hul' i rækkefølgen)

Private Sub Form_Current()
    Me!Tid.Defaultvalue = "#" & Now & "#"            ' indsætter tidspunkt i tabellen'
    Me!Bruger = "'" & CurrentUser() & "'"  ' indsætter brugeren som er logget på i tabellen'   
End Sub

Hvis din Makro8 også kun flytter fokus til felt1, så er der ingen grud til at have en makro til det (man bør holde sig til ren VBA).
Jeg ville derfor reducerer koden til dette:

Private Sub Form_Open(Cancel As Integer)
    Me!Felt1.Setfocus   
End Sub
Avatar billede hugopedersen Nybegynder
29. juni 2004 - 07:33 #3
Det evigt tilbagevendende problem med fortløbende recordnumre :-)
Hvis ikke du kan leve med at dine records ikke kommer helt fortløbende, så skal du igang med den store kodekniv og have skrevet en masse kode til selv at styre tildeling af numre. Jeg var selv igang med noget på et tidspunkt i forbindelse med noget faktureringssystem, men fik det aldrig 100% - det kan stadig svipse og skippe et nummer.
Hvis det bare er fordi at du skal bruge et fortløbende nummer i anden forbindelse, f.eks. på en rapport, så kan man jo lave en running sum på et ekstra tekstfelt på rapporten.

I øvrigt burde du nok overveje din rutine til at opdatere timestamp til at ligge på Before update eventen på din form

If Me.Dirty then
  Me!Tid = Now 
  Me!Bruger = CurrentUser()
End If
29. juni 2004 - 08:44 #4
Hugo-> Du har helt ret i at koden måske burde ligge på Form_BeforeUpdate - det afhænger af hvad han ræcist ønsker at opnå. Men det er vel ikke nødvendigt at spørge på Me.Dirty! Hvis BeforeUpdate trigges, så ER formen DIRTY :o)
Avatar billede hugopedersen Nybegynder
29. juni 2004 - 08:47 #5
thomasjepsen> det har du helt ret i men når nu du ved at det er et M$ produkt vi arbejder med så hellere safe than sorry :-)
29. juni 2004 - 08:50 #6
så så, nu ikke alt for meget blasfemi her i Access-kategorien - det er trods alt mit levebrød, vi snakker om ;o)
Avatar billede hugopedersen Nybegynder
29. juni 2004 - 09:19 #7
Jo men i mit daglige arbejde arbejder jeg også med M$ produkter, så jeg mener mig godt rustet til at sige som jeg gør. Men lad nu det ligge.
Hvad er dit levebrød ?
29. juni 2004 - 09:30 #8
mit levebrød? www.makeiteasy.dk

85% Access, 15% SQL Server, 15% resten af office-pakken, 5% alt muligt andet (ja, jeg ved godt, at det giver mere end 100%, men sådan føler jeg det også ;o)
Avatar billede tolveren Nybegynder
29. juni 2004 - 09:32 #9
Den der docmd.refresh virkede ikke i current. Der opstod fejl !
Koden:
'Me!Tid.DefaultValue = "#" & Now & "#"            ' indsætter tidspunkt i tabellen'
'Me!Bruger = "'" & CurrentUser() & "'"  ' indsætter brugeren som er logget på i tabellen'
virker heller ikke.
-----
Timestamp rutinen er lagt  på Before update eventen i stedet for current.

If Me.Dirty then
  Me!Tid = Now 
  Me!Bruger = CurrentUser()
End If
-------------
Det virker for mig. Tak skal I alle have for assistancen.
29. juni 2004 - 09:40 #10
hugo-> lægger du ikke lige et svar, så tolveren kan lukke spm?
Hvor arbejder du selv, Hugo?
Avatar billede hugopedersen Nybegynder
29. juni 2004 - 09:41 #11
thomasjepsen> OK - det vidste jeg egentlig godt når nu jeg kommer til at se siden. Jeg har nemlig sakset et af dine eksempler en gang til et eller andet Access projekt som jeg lavede.
Avatar billede hugopedersen Nybegynder
29. juni 2004 - 09:52 #12
Jeg arbejder selv på højttalerfabrikken Jamo som IT Assostent (læs - blæksprutte) hvor jeg arbejder med vores serverpark (> Windows 2000 server), SQL server, MS Access, MySQL, PHP, ASP og en masse andre sjove/underlige ting ting.
Der ud over laver jeg Access udvikling i min fritid og har lavet lønsystemer i Excel, så jeg kan godt få tiden til at gå :-)
Avatar billede hugopedersen Nybegynder
29. juni 2004 - 10:02 #13
IT Assostent = IT Assistent
29. juni 2004 - 10:03 #14
ok, ja man keder sig aldrig i M$-universet ;)
ja, jeg regnede også med, at du mente Assistent ;o)

Tolveren->lukker du ikke dette spm, hvis du er tilfreds med svarene?
Og måske dette (eller i det mindste lige smider en kommentar): http://www.eksperten.dk/spm/476592
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