Avatar billede erf Nybegynder
04. juni 2009 - 10:05 Der er 10 kommentarer og
1 løsning

Simpel tæller

Hej med Jer

Jeg skal lave en tæller!
Ved oprettelse skal den bare lægge 1 til!
Jeg kan ikke bruge autonummerering. Brugeren vil selv styre hvordan tallene begynder!

Hilsen
erf
Avatar billede Slettet bruger
04. juni 2009 - 11:40 #1
Man kan godt selv styre hvor autonummerering starter, og altid selv bestemme næste værdi ved at angive det i en oprettelses forespørgsel - insert into <table> (id,....) values(<startværdi>,....

Men det virker ikke i et dataark eller felt i en formular, skal der bestemmes værdi her, skal feltet være et langt heltal og der skal tildeles værdi - evt. nz(dmax("id","<table>"),<startværdi>)+<stepværdi>
Avatar billede erf Nybegynder
04. juni 2009 - 11:52 #2
Hej ellebe

Har prøvet denne:    nz(dmax("BeredskabsId",tblBeredskab"),2000)+1
Det giver error!
Koden er sat i knap for opret post. Tabellen hedder tblBeredskab, tælleren hedder BeredskabsId

erf
Avatar billede mugs Novice
04. juni 2009 - 13:14 #3
Indsæt denne i formularens Current:

If Me.NewRecord Then
Me.DIT FELT = DMax("[DIT FELT]", "DIN TABEL") + 1
End If
Avatar billede erf Nybegynder
04. juni 2009 - 14:39 #4
Hej Mugs

Jeg har gjort følgende efter din anvisning:

Private Sub Form_Current()
If Me.NewRecord Then
Me.Nummerering = DMax("Nummerering]", "tblBeredskab") + 1
    End If
End Sub

Får stadig error!!
Avatar billede mugs Novice
04. juni 2009 - 14:42 #5
Du mangler en [ :

If Me.NewRecord Then
Me.Nummerering = DMax("[Nummerering]", "tblBeredskab") + 1
End If
Avatar billede erf Nybegynder
04. juni 2009 - 14:43 #6
Fortsat kommentar:

Tabellens Navn = tblBeredskab
Nummerering = Talfelt (Langt heltal)

Hilsen
erf
Avatar billede mugs Novice
04. juni 2009 - 15:23 #7
Din kode ser fin ud bortset fra den manglende [
Avatar billede Slettet bruger
04. juni 2009 - 19:01 #8
erf: 'Får stadig error!'

mere end det - du får en errormeddelelse og nummer - i modsæt til noget der bare fungerer, et kontant tilbud om at lære noget mere ;)
Hvilken statement udløser fejlen og hvorfor? Hvilken værdier/tilstande/tildelinger indgår.
Avatar billede mugs Novice
04. juni 2009 - 20:01 #9
Beskrivelse af en fejlmeddelelse vil altid være velkommen, men som oftest skrives der blot et intetsigende "den fejler". Det kan vi ikke bruge til ret meget.

Men i en så simpel kode som denne, kan der næsten kun være tale om en syntaksfejl som manglende [
Avatar billede Slettet bruger
04. juni 2009 - 21:56 #10
Jeg erindre aldrig at fået sådan en, men velsignes af og til med et meddelelsesvindues, hvor jeg, ud over en af standard errormeddelelserne, gennem klik på 'debug' knappen, bringes til gensyn med en, i situationen mindre komplet, vba kode.

Derimod er det helt sikkert, at vi alle starter med at læse de kortfattede fejlmeddelelser som 'intetsigende den fejler' - vi aner ikke hvad 'TypeMismatch' eller 'InvalidProcedureCallOrArgument' vil sige!

http://support.microsoft.com/kb/142138

Omklamring af felt/table navne er nødvendig ved reserverede sql ord  eller mellemrum som del af navnet. Hvis jeg skulle skrive noget som generede vba-koden, og altså ikke havde kendskab til de navne der evt. krævede omklamring, ville jeg naturligvis skrive det så alt blev omklamret - (som man ser phpMyAdmin gøre med sql udtryk.)

Alt det 'Me' - er det for være pædagogisk? (bruger selv blot <ctrl-space> efter de første par bogstaver)
Avatar billede mugs Novice
04. juni 2009 - 22:17 #11
Ellebe > Bare for at strate eet sted:

'TypeMismatch' > Man prøver at sammenligne 2 udtryk af forskellig dimension f.eks. alfanumerisk værdi med en numerisk.

Normalt får man altid en fejlmeddelelse og årsagen til denne. I mange tilfælde markeres også det udtryk i VBA koden som fejler. I VBA-editoren kan man indsætte en global declaration som jeg ofte ser ved tilsendte fejlbehæftede databaser:

Option Compare Database
Option Explicit

Option Explicit betyder simpelthen, at ALLE variabler skal erklæres. I praksis betyder dette, at en stavefejl i en variabel vil blive markeret i VBA-editoren.

Vedr. omklamring er det da korrekt, at det er nødvendigt i flere tilfælde ved f.eks. mellemrum i objektnavne. Det er måske derfor det kraftigt frarådes bl.a. her:

http://mvps.org/access/tencommandments.htm

Det reserverede ord Me efterfulgt af en punktumnotation er såmænd ikke for at være pædagoisk, men simpel dovenskab for ikke at rode mig ind i stavefejl. Me refererer til den altid aktuelle formular. Ved at benytte den fås en dropdown liste med alle objektnavne i formularen. Så kan man vælge i stedet for at skrive og derved mindske risikoen for stavefejl.

Hvis der er fejl uden en fejlmeddelelse, kan man jo altid prøve at fremprovokere den med en errorhandler.
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



IT-JOB

Danske Commodities A/S

Procurement manager

Socialpædagogernes Landsforbund

Specialkonsulent til digitalisering

Cognizant Technology Solutions Denmark ApS

Test Manager