Det problem løber man ind i, hvis man ikke gør opmærksom på at man har "lånt" en andens login. Jeg har for et dage siden været ude for det samme.
Nå - du skal have et svar, her kommer det:
Der er to fremgangsmåder, afhængig af om du starter forfra, eller du skal ændre/tilpasse en eksisterende database
Vi starter med den nemmeste - dvs. oprette en ny database eller tabel med "direkte opslag".
1: Hvis ikke du allerede har en postnummertabel i din database, skal du lægge en ind. Den kan downloades mange steder fra, f.eks. fra
http://www.postdanmark.dk/postnumre/postnr.xls - (har du brug for det, skal jeg gerne give en anvisning på hvordan du importerer tabellen).
2: Åbn postnummertabellen i designvisning og tjek følgende:
- postnummerfeltet skal være primærnøgle
- noter felttypen på postnummerfeltet (f.eks. "Tekst, 10")
3: Opret den (de) tabeller der skal indeholde postnumre - f.eks. en adresselistertabel. Angiv et postnummerfelt med *præcis* samme felttype som den du noterede i punkt 2 (altså i mit eksempel: "Tekst", 10). Det kan være en god idé at give felterne samme navn, men det er ikke strengt nødvendigt.
4: Du skal *ikke* oprette et "bynavn"-felt i andre tabeller end din postnummertabel.
5: Hvis ikke du har gemt din tabel skal du gøre det nu. Luk alle åbne tabeller.
6: Nu skal du åbne vinduet "Relationer". I værktøjslinjen øverst er der en knap med tre små vinduer forbundet med små streger - klik på den, eller vælg Funktioner\relationer (for at gøre det endnu mere besværligt, er punktet "Relationer" i Access2000 som standard en såkaldt skjult menu. Dvs. at du først skal holde musen henover pilene i bunden af "Funktioner"-menuen, før punktet kommer frem.
7: Når vinduet Relationer åbner, kommer der en dialogboks med titlen "Vis tabel". Her skal du tilføje din postnummertabel, samt alle de tabeller du har oprettet i punkt 3. Når du har fået alle tabellerne ind i vinduet, klikker du på "luk"
8: Du skal kunne se postnummerfelterne i begge (alle) tabeller. Kan du ikke se et felt i en tabel kan du enten trække i bunden af tabellen og gøre den større, eller du kan bruge scroll-pilene til at bladre dig frem til postnummerfeltet. Når begge felter er synlige, klikker du på det ene af dem (f.eks. postnummerfeltet i adressetabellen), holder museknappen nede, og trækker feltet over på det tilsvarende postnummerfelt i den anden tabel. Når du slipper museknappen, kommer dialogboksen "Rediger relationer" frem.
9: Dialogboksen er allerede udfyldt med tabel- og feltnavne. Du skal bare tage stilling til de tre spørgsmål i den næstnederste boks: "Gennemtving referentiel integritet" + to mere. Jeg anbefaler at du sætter hak i alle tre felter. En forklaring af betydningen kræver noget mere end de 30 point berettiger til. Tjek af relationstypen, som står i den nederste boks er "En-til-mange". Når alt dette er gjort, vælger du ok.
10: Gentag punkt 9 for alle tabeller der skal linkes til postnummertabellen. Luk vinduet relationer, og svar ja til at gemme ændringerne.
10: Nu skal du lave en forespørgsel, som kæder postnummertabellen sammen med din adresseliste. Vælg opret ny forespørgsel (i designvisning), og vælg de to sammenhørende tabeller (adresseliste + postnummer). Access kæder selv tabellerne rigtigt sammen - du vil se den samme tegnede forbindelse mellem tabellerne, som der var i relationsvinduet.
11: Dobbeltklik på "*" i din hovedtabel (adresselisten) - på den måde vælger du at alle felter fra dén tabel skal medtages. Dobbeltklik på "bynavn"-feltet fra postnummertabellen - så får du bynavnet herfra. Gem forespørgslen med et navn du kan huske - f.eks. fsp_adresse.
12: Opret din formular med forespørgslen i punkt 11 som kilde. Og lav designet som normalt.
13: Databasen/formularen er klar til brug. Men du skal være opmærksom på at du kun kan skrive postnumre der står i postnummertabellen. Hvis du får en adresse med et postnummer der ikke eksisterer i postnummertabellen, er du nødt til at oprette det først. Det kan gøres ganske simpelt manuelt, ved at åbne postnummertabellen, og det kan selvfølgelig også gøres fint og automatisk - hvis man kan lægge den rigtige VBA-kode ind.
Du får lige metode a først - så kan jeg også selv se hvad jeg egentlig har skrevet...