28. juni 2004 - 19:48Der 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
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
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
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
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)
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 ?
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)
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.
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.
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å :-)
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
Synes godt om
Ny brugerNybegynder
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.