Avatar billede n_riber Nybegynder
20. marts 2001 - 14:27 Der er 32 kommentarer og
1 løsning

VB i access 2000

Hvergang jeg opretter en ny formular, skal databasen, kontrollere værdien af feltet [cdnr]i den foregående formular og automatisk lægge 1 til i den nye.


Mvh. Niels
20. marts 2001 - 14:28 #1
Når du skriver \"Formular\" mener du så en ny post?
20. marts 2001 - 14:29 #2
Og hvordan går du så til ny post? Vha en knap med VBA-kode?
Avatar billede janbangm Nybegynder
20. marts 2001 - 14:31 #3
Hej niels

Du skal have lavet en varialbel der bliver tildelt den værdi der skal lægges ind i den nye post. Når du så kommer over i den nye post skal lægge værdien tilbage igen.

Hvis du har lyst kan du prøve at sende databasen til Access@edb.dk. Så skal jeg kikke på det
20. marts 2001 - 14:33 #4
I så fald skal lægge følgende sætning ind på knappen efter linine der hedder noget med:
Docmd.GotoRecord acNext....

Me!cdnr.DefaultValue = DMax(\"cdnr\",\"Tabelnavn\") + 1

, hvor \"Tabelnavn\" er navnet på den tabel, som formularen er baseret på.

/Thomas
Avatar billede n_riber Nybegynder
20. marts 2001 - 14:40 #5
Jeg går til en ny post blot ved at forlade det sidste felt i posten
20. marts 2001 - 14:46 #6
Kender du noget til VBA?
På formularens VedAktuel-hændelse skal du lægge følgende kode:

If Me.Newrecord then
    Me!cdnr.DefaultValue = DMax(\"cdnr\",\"Tabelnavn\") + 1
End if

Sig til, hvis du ikke ved hvordan du får anbragt koden.

/Thomas
Avatar billede janbangm Nybegynder
20. marts 2001 - 14:46 #7
Så lægger du bare koden som Tomas har skrevet på ved Auktuelt på formularen
20. marts 2001 - 14:48 #8
Jan, du må se at lære det med navnet ;-)
Avatar billede janbangm Nybegynder
20. marts 2001 - 14:52 #9
Det var en truk fejl. Jeg er ikke så hurtig på tasterne ;-)
Avatar billede n_riber Nybegynder
20. marts 2001 - 15:23 #10
eller page down
20. marts 2001 - 15:24 #11
mit eksempel duer stadig...
Avatar billede n_riber Nybegynder
20. marts 2001 - 15:34 #12
Thomas jeg har lige prøvet at ligge den ind som kode, men jeg får en run time error \'2471\', objektet indeholder ikke automation objektet cdnr
feltets kontrolelementkilde er \"cdnr:\" og navn \"cdnr:\", er det mit problem???


niels
Avatar billede n_riber Nybegynder
20. marts 2001 - 15:35 #13
forøvrigt er formularen baseret på en forespøgsel


niels
20. marts 2001 - 16:03 #14
Jeg går ud fra, at navnene er uden kolon\'et?

Hvad hedder forespørgslen?
Avatar billede n_riber Nybegynder
20. marts 2001 - 16:07 #15
Jeg har lige fjernet kolon\'et
forespørgslen hedder \"Forespørgsel samling A\"
20. marts 2001 - 16:21 #16
If Me.Newrecord then
    Me!cdnr.DefaultValue = DMax(\"cdnr\",\"Forespørgsel samling A\") + 1
End if
Avatar billede n_riber Nybegynder
20. marts 2001 - 16:25 #17
FEJL: Object doesn\'t support this property or method!!! run-time error 438
Avatar billede n_riber Nybegynder
20. marts 2001 - 16:26 #18
datatypen er sat til tal , langt heltal
Avatar billede n_riber Nybegynder
20. marts 2001 - 16:27 #19
der ligger desuden en validerings-regel og -meddelelse
20. marts 2001 - 19:55 #20
Prøv engang at trykke Ctrl+G og skriv derefter:
?DMax(\"cdnr\",\"Forespørgsel samling A\")
i det nederste vindue.
Får du også en fejl nu?

Hvis det er tilfældet, så skal du (når du står i kodevinduet) gå i menuen Funktioner->References
Kontroller at der ikke står \"MISSING..\" i en af de første linier i den fremkomne dialogboks. Hvis der gør det, skal du fjerne krydset ud for \"MISSING..\"

Lad mig høre hvordan det går...

/Thomas
21. marts 2001 - 09:10 #21
(Rettelse...)

Menuen i kodevinduet hedder selvfølgelig Tools->References istedet for Funtioner->References...

Sorry ;-)
22. marts 2001 - 07:59 #22
Niels, har du fået kigget på det?
Avatar billede n_riber Nybegynder
25. marts 2001 - 13:25 #23
Nej ikke endnu, har først tid, mandag. men jeg har et nyt spørgsmål, kan man gøre felterne i en formular genre afhængige, så de kun optræder i formularen hvis det er en bestemt type genre?
Avatar billede janbangm Nybegynder
25. marts 2001 - 13:40 #24
Hej Niels

Ja det kan du godt. Du kan lade en if sæt eller en select case sætning. Her siger du så hvis genrefeltet har en bestem værdi skal de og felter være synlige eller ej. Hvilken kode du bruger afhænger af om du vil fjerne felterne felt eller bare gøre med gråtonet. Fjerner du felter inde midt i formularen kan den godt komme til til at se lidt dumt ud, det er nok bedst at bruge visibel der gør felterne gråtonet.

Prøv eller skriver du blot igen
25. marts 2001 - 19:13 #25
Private sub Form_current
  If Genre = \"Den rigtigt genre\" then
      Me!Felt1.Visible = False
      Me!Felt2.Visible = False
      ...
  Else
      Me!Felt1.Visible = true
      Me!Felt2.Visible = true
      ...
  end if
End sub

På VedAktuel-hændelsen på formen.

/Thomas
Avatar billede janbangm Nybegynder
26. marts 2001 - 06:52 #26
Så er vi enige Tomas -:)
Avatar billede n_riber Nybegynder
28. marts 2001 - 12:59 #27
Hej Thomas,

omkring [cdnr] og nye poster det virker, MEEn jeg kan ikke redigere værdien.

Det har ingen værdi for mig at skjule felter i formularen når det ikke spare plads

Niels
28. marts 2001 - 13:23 #28
ghej Niels,

Hvis du bruger den med
If Me.Newrecord then
    Me!cdnr.DefaultValue = DMax(\"cdnr\",\"Forespørgsel samling A\") + 1
End if

og feltet ikke er låst, så gør koden jo kun det, at den sætter standard-værdien til maks+1. Du skulle derfor sagtens kunne redigere. Når du alligevel ikke kan redigere, må du have fået sat én eller anden egenskab, som gør at feltet er låst. Kan du redigere nogle af de andre felter i den nye post?
Du har ikke lagt koden direkte ind i kontrolelementkilden på teksboksen, vel? Den SKAL ligge i VBA.

Mht at skjule felter, så er det besværligt at rokere rundt på felterne i runtime. Så når du skjuler felter giver det i princippet ikke mere plads på formularen.
Du kan måske bruge fanablade istedet?

/Thomas

Avatar billede n_riber Nybegynder
28. marts 2001 - 14:12 #29
hej Thomas,

når jeg begynder at redigere [cdnr]opretter databasen en ny post hvor jeg skriver i og den post med VBA-koden rykkes ned som sidste post.

Jeg er gået over til at bruge faneblade, desværre optager fanerne alt for meget plads, er det muligt kun at få fanerne vist ved den øverst synlige post?

Niels
28. marts 2001 - 14:35 #30
Hmmm, jeg har lidt svært ved at forstå hvad det er, du mener!?
Hvis du klikker \"Ny post\" på formularen, hopper du til den sidste (tomme) post, hvor du så kan indtaste den nye post. Idet du begynder at indtaste den nye post, vil Access automatisk give plads til endnu en ny post, som vil få samme CDnr, som den du er ved at oprette. Men det betyder ikke at du skal hoppe til den post...Når du næste gang klikker \"ny post\" (eller på anden måde hopper til den tomme post i slutningen af tabellen) vil du få et nyt CDnr.
Eller er det mig, som misforstår dig?

Mht fanabladene, så er jeg bange for at jeg heller ikke forstår dig helt? Hvad mener du med \"er det muligt kun at få fanerne vist ved den øverst synlige post? \"
Avatar billede n_riber Nybegynder
28. marts 2001 - 15:51 #31
problemet med cdnr er løst, det virker, nu
det jeg mente med fanebladene er at jeg i formularvisning har 5 poster på skærmen ad gangen hver med sin fane, der er nu gået op for mig hvorfor, så spekuler ikke mere på det. Meen jeg har nu et andet problem, kan jeg få den til at hoppe fra det siste felt på fane1 til det første felt på fane2 ved at bruge en kode i \"ved Udgang\" eller \"ved fokus væk\" ?

Niels
28. marts 2001 - 19:59 #32
Okay, du trækker dine point lidt langt, synes jeg :-)
Normalt opretter man et nyt spørgsmål for hvert problem...

Men ja! Hvis du skriver:
Me![navn på felt du vil hoppe til].Setfocus

Så vil den selv skifte fane og stille sig i det pågældende felt.
Om det skal i \"ved udgang\" eller \"ved fokus væk\" er en smagssag, som du må prøve dig frem med. Personligt plejer jeg at lave det på KeyDown, hvor jeg spørger på om ENTER eller TAB er trykket. Men som sagt: det er en smagssag.

Held og lykke
/Thomas
Avatar billede n_riber Nybegynder
29. marts 2001 - 08:34 #33
Tak for hjælpen

Niéls
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