Avatar billede fie Nybegynder
12. maj 2000 - 08:43 Der er 15 kommentarer og
1 løsning

Hjælp!!! acces 2000

Jeg er ved at lave en database med flere tabeller; men er stødt ind i problemer.
1) I formularen har jeg en "registreringsdato, som gerne skulle udfylde sig selv, hver gang jeg åbner en ny post. Det kan jeg ikke få den til.
2)Et felt med "aftalenr" begyndende fra 500 også udfylde sig selv, hver gang jeg åbner en ny post. Det kan jeg heller ikke få den til.
3)Når jeg udfylder mit felt med "Postnr" (har brugt DLoop o.s.v.)udfyldes "Bynavn" med København K, uanser hvilket postnr. jeg taster. Hvad har jeg gjort forkert?
Kan nogen hjælpe!
Avatar billede ricky Nybegynder
12. maj 2000 - 09:17 #1
1)
vælg (kontrolnavn)_GotFocus
  If IsNull(feltnavn) Then
      Text0 = Date (eller dato hvis Access DK)
  End If

2) hvor kommer resten af info fra ?

3) Vælg postnr_exit
  Dim varBy As Variant
  varBy = DLookup("Bynavn", "Postnr", "postnr = [postnr]")
  If (Not IsNull(varBy)) Then
    Bynavn = varBy
  Else
  Bynavn = "*MANGLER*"
End If

4) er det ikke lidt lidt point for så meget :-) ?

Skriv vedr. det du evt. ikke forstår...

Ricky
Avatar billede ktp Nybegynder
12. maj 2000 - 13:24 #2
Der er fejl i den kode, du kan ikke returnere NULL til variablen VarBy.
Koden skal se således ud

Me!Bynavn=Nz(DLookup("Bynavn","Postnr","[Postnr]=Forms!ForNavn![Postnr]"),"*MANGLER*")

Og så er den også meget mindre.

Avatar billede ricky Nybegynder
12. maj 2000 - 14:51 #3
ktp>> hvilket ikke er korrekt - det fungerer!
Avatar billede ktp Nybegynder
12. maj 2000 - 18:38 #4
Sorry - Du har ret
Avatar billede fie Nybegynder
12. maj 2000 - 23:13 #5
Hej igen, jeg har slet ikke forstand på programeringssprog, så jeg må skrive direkte af efter jeres anvisninger. Skal der være ophold mellem de forskellige ord i det i skriver?

Ang. 1)
Min tabel hedder "Aftaler" og feltet hedder "RegDato" i formularen "Aftaler"

Ang. 2)Min tabel hedder "Aftaler" og feltet hedder "Aftalenr" i formularen "Aftaler"

Ang. 3)
Mine tabeller hedder "Postnumre" og "Aftaler" og felterne hedder "Postnr" og "By" i formularen "Aftaler"

Jeg har forsøgt; men jeg nok noget forkert
Mvh
Fie

Avatar billede jgc Nybegynder
12. maj 2000 - 23:52 #6
1) Hvorfor ikke bare sætte standardværdien = now() (el. date()):
Åbn tabellen i designvisning, markér feltet registreringsdato og skriv "now()" ud for Standardværdi.

2) Kræver lidt mere forberedelse:
Opret en tabel og kald den for "makstal". Den skal have ét felt, det kalder du også "makstal". Feltet skal have typen "Tal" og være primærnøgle (det sidste ikke vigtigt).

Opret et modul og indsæt følgende:
***
Function nytnr() As Integer
Dim rs As Recordset
Dim db As Database
Set db = CurrentDb
Set rs = db.OpenRecordset("makstal", dbOpenTable)
nytnr = rs("makstal") + 1
rs.Edit
rs("makstal") = nytnr
rs.Update
End Function
***
Gem modulet - vælg selv et navn.

I din form vælger du nu kontrolelementet for aftalenr, og under egenskaber/data/standardværdi indsætter du "nytnr()".

Du kan til enhver tid gå ind i tabellen makstal og ændre din startværdi (den lægger selv én til hver gang, men hvis du f.eks. fortryder en oprettelse vil rutinen springe et nummer over.

3) Bynavn - er der allerede svaret på. Jeg foretrækker helt at undvære et bynavnfelt andre steder end i postnummertabellen - men det er smag og behag.

/Jens
Avatar billede fie Nybegynder
13. maj 2000 - 21:03 #7
Tak for svarene
Til jens, jeg har kopieret det du skrev over i et nyt modul, men der kommer en fejlmeddelelse-
Compile error: line number or label or statement or end of statement.
Hvad gør jeg så?
Mvh
Fie
Avatar billede jgc Nybegynder
13. maj 2000 - 21:35 #8
Først skal du lige tjekke at du har kopieret det rigtige. Du skal have alt fra "Function nytnr() as Integer" til "End Function" linjen - men heller ikke mere.

Men du skal nok også lægge nogle referencer ind. Her kommer fremgangsmåden:

1: Åbn dit modul (dobbeltklik på det)
2: I Visual Basic editoren (der automatisk kommer frem) vælger du menuen "Tools" - punktet "References"
3: Der er formentlig en linje med "Microsoft ActiveX Data Objects 2.1 Library" blandt de øverste - fjern hakket i kassen til venstre ud for denne linje.
4: Find i stedet linjen: "Microsoft DAO 3.6 Object Library" - og sæt hak ved den (du skal bladre lidt ned for at finde den).
5: Luk dialogboksen og vælg "debug" - "Compile <modulnavn>". - så skulle det gerne gå glat (alt er i orden hvis ikke du får en fejlmeddelelse).

Beklager forvirringen, men sådan er Access en gang imellem...
Avatar billede fie Nybegynder
16. maj 2000 - 08:34 #9
Hej allesammen
Nu lysner det (troede jeg) men det med at bynavnet skal fremkomme automatisk, når jeg trykker postnummeret ind i min formular virker ikke. Jeg gør et eller andet forkert, det er nok det med "vælg postnr_exit", jeg har kludret i. Skal det være i et modul det skal skrives???
Mine tabeller hedder "Postnumre" og "Aftaler" og felterne i formularen "Aftaler"
hedder "Postnr" og "By".
Er der en af jer der har mod på at forklare mig det en gang til?
/fie 
Avatar billede jgc Nybegynder
16. maj 2000 - 10:24 #10
Det er heller ikke særlig tydeligt beskrevet.

1: Åbn din formular i designvisning
2: Højreklik på postnummerfeltet og klik "Egenskaber"
3: Vælg fanebladet "Hændelser"
4: Klik i linjen "VedUdgang"
5: Klik på ellipsen ("..." ~ de tre små punktummer) yderst til højre.
6: Nu skulle du gerne være i Visual Basic-editoren, med en tekst nogenlunde som denne:
---
Private Sub postnummer_Exit(Cancel As Integer)

End Sub
---
7: Så skal du bare sætte koden fra rickys svar ind - så skulle det virke.


Jeg ville som nævnt tidligere bruge et direkte opslag i postnummertabellen - men nu er du i gang med Dlookup-løsningen, så bliv bare ved den.
Avatar billede olel Nybegynder
16. maj 2000 - 21:58 #11
Please må jeg ikke få løsningen med "direkte opslag i postnummertabellen", jeg kan ikke få det andet til at virke
/tak
Avatar billede jgc Nybegynder
17. maj 2000 - 16:10 #12
Jo da.

Opret et spørgsmål med nogle point, så skal jeg være der.
Avatar billede jgc Nybegynder
17. maj 2000 - 16:11 #13
Ups - det skulle ikke have været et svar - men meningen er god nok.
Avatar billede jgc Nybegynder
18. maj 2000 - 15:31 #14
Kære fie - så er der svar for alle pengene (øhm pointene).

Se spm: http://www.eksperten.dk/spm.asp?id=17170
Avatar billede fie Nybegynder
21. maj 2000 - 19:01 #15
Tusinde tak for svarene. Her er points til jer.
Avatar billede jgc Nybegynder
21. maj 2000 - 23:59 #16
Kære fie - der er ikke kommet nogle point her. Du skal vælge "Accepter svar" - og så hvem eller hvilke brugere du vil acceptere svar fra.
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