Avatar billede fie Nybegynder
17. maj 2000 - 21:22 Der er 7 kommentarer og
1 løsning

Hjlæp !!!!!! Acces 2000

Hej igen jcg
Please må jeg ikke få løsningen med "direkte opslag i postnummertabellen", jeg kan ikke få det andet til at virke
/tak
fie
Avatar billede philiph Nybegynder
17. maj 2000 - 23:45 #1
Der er sikkert også andre der kan hjælpe...
Avatar billede jgc Nybegynder
18. maj 2000 - 01:42 #2
Jo da - jeg lægger den ind i morgen. Nu troede jeg ikke at fie = ole - ellers havde jeg bare svaret i det gamle spørgsmål.

Avatar billede fie Nybegynder
18. maj 2000 - 08:49 #3
Hej jgc

Det er det heller ikke *GG* jeg havde bare lige lånt hans computer, da den var åben, vi er naboer. Så håber jeg at kunne finde ud af det. (Olel har lige så store problemer, men det bliver hans egen sag).
fie
Avatar billede jgc Nybegynder
18. maj 2000 - 12:52 #4
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...



Avatar billede jgc Nybegynder
18. maj 2000 - 13:16 #5
Her kommer så de ting man skal tage højde for, hvis man skal ændre tabeller der allerede indeholder data.

Punkt 1 og 2 gælder stadig.

I punkt 3, er tabellerne allerede oprettet. De skal åbnes i designvisning, så man kan se hvad der evt. skal ændres. Hvis postnummerfeltet er af en anden type end den der er noteret i punkt to skal den ændres. Her gælder følgende:
Postnummertabellens PostnummerFelt kalder vi PPF, Adressetabellens PostnummerFelt kalder vi APF
- PPF = Tekst (4 eller derover), APF = Tal:
Tjek at der ikke er postnumre højere end 9999 i APF (åbn tabellen i normalvisning, højreklik på APF og vælg Sorter faldende).
Hvis der ikke er det, åbner du tabellen i designvisning igen og ændrer APF's felttype til Tekst (4). Hvis længden på PPF er højere (f.eks. Tekst (10)) er der som regel ingen problemer - antallet af tegn i PPF-tekstfeltet afgør hvor mange cifre der maks kan oversættes fra APF.
- PPF = Tekst (X), APF = Tekst (Y) - her er der tre muligheder:
--> X = Y: Ingen problemer, gå glad videre.
--> X > Y: Heller intet problem, åbn adresselisten i designvisning og ændr Y til X
--> X < Y: Du skal tjekke om nogle af dine eksisterende postnumre overskrider længden X. Skriv igen, hvis dette problem opstår.

- PPF = Tal, APF = Tekst
Her er det lidt en smagssag - men jeg ville ændre PPF til det samme som APF, dvs. åbn postnummertabellen og vælg PPF, og giv den typen Tekst (X), hvor Tekst (X) er typen på APF

- PPF = Tal, APF = Tal
Sandsynligvis ingen problemer. Tjek lige undertypen - almindeligt Heltal ("Heltal") er nok, men typen skal være ens i de to tabeller.

// Her kommer lige en frokost på tværs - jeg er tilbage om lidt.
Avatar billede jgc Nybegynder
18. maj 2000 - 15:28 #6
// Vi fortsætter smøren...

Nu skulle du have en postnummertabel og en (eller flere) relaterede tabeller (adressetabel).

Næste punkt er at tjekke de eksisterende postnumre.
Her er et forslag til en fremgangsmåde:

Lav en ny forespørgsel. Benyt guiden "Find ikke-relaterede poster".
I første skærmbillede vælger du adressetabellen, andet skærmbillede skal du vælge postnummertabellen
I tredje skærmbillede skal du for begge tabeller vælge postnummerfeltet, dvs. både i højre og venstre side. Når du har gjort det, klikker du på dobbeltpilen i midten. For neden viser Access nu de to feltnavne med en <=> dobbeltpil imellem.
Klik næste -  nu skal du vælge hvilke felter du vil have med. Vælg postnummer og bynavnsfelterne - samt evt. et landefelt hvis du har et sådant(1)
Kør forespørgslen (vælg udfør). Der er nu (igen) tre muligheder:
--> Forespørgslen er tom (0 poster): Hip hurra, alle dine postnumre står allerede i postnummertabellen. Gå glad i bad.
--> Forespørgslen indeholder en række tomme poster. Det betyder at du har nogle poster i din adressetabel der ikke har noget postnummer. Det gør ikke noget, selv om du måske alligevel skal tjekke om det ikke er en fejl.
--> Forespørgslen indeholder en række postnumre og byer. Se dem igennem og overvej for hvert nummer følgende to muligheder:
A) Nummeret er fejlindtastet, f.eks. "2100 Ø" i stedet for "2100", eller "DK-2200" i stedet for "2200". Det kan også være et ekstra mellemrum: "2100 " som skulle være "2100".
B) Det er et "mærkeligt" nummer (som regel er det udenlandske numre der optræder her) - f.eks. "N-3454", "Sandefjord", eller "1023", "København K".
De numre der er i kategori A kan du rette med det samme (i selve forespørgslen). Marker blot feltet, og ret f.eks. "2100 " til "2100". Er der mange numre i kategori B, skal du have dem lagt ind i postnummertabellen. Her gælder landenoten igen - hvis du har udenlandske postnumre i dine tabeller, skal din postnummertabel også indeholde et landefelt. Skriv igen hvis det problem opstår.





---
(1): Note om internationale postnumre. Det kan sagtens lade sig gøre at have danske og internationale postnumre i sammetabel. Postnummertabellen skal dog udvides med et landefelt, og der skal være plads til at indtaste landekoder i postnummerfeltet. F.eks. som følger:

Postnummer, By, Land
4000, Roskilde, <intet>
N-4000, Bergen, Norge (Bergen har sikkert et andet nummer - dette er blot som eksempel)

Når du når hertil, skulle du gerne have udryddet alle ikke-relaterede poster med metoden ovenfor. Du kan køre forespørgslen igen, når du har lavet rettelserne, hvis den kun viser tomme poster, eller slet ikke viser nogle, er du klar til at gå videre.

Start fra punkt 6 i den første vejledning, og klø på indtil punkt 11. Access fortæller hvis der er nogle problemer, men har du fulgt metoderne ovenfor skulle det ikke være tilfældet.

Du har formentlig allerede en form der indeholder de elementer du skal bruge. Den skal nu blot ændres så den bruger postnummeropslaget. Her er en fremgangsmåde:
1: Åbn formularen i designvisning.
2: Dobbeltklik i den lille firkant i øverste venstre hjørne (hvor de to linealer mødes). Egenskabsarket for formularen åbnes
3: Vælg fanebladet "Data", og linjen postkilde.
4: Hvis navnet i linjen postkilde, er det samme (præcis) som din adressetabel, kan du blot vælge ikonet "pil ned" (næstyderst til højre). Nu får du en liste med alle tabeller og forespørgsler i din database. Vælg forespørgslen fra den første vejlednings punkt 11.
4b: Hvis din formular allerede er baseret på en forespørgsel, åbner du i stedet forespørgselsgeneratoren således: i linjen "postkilde" klikker du én gang på ellipsen ("...") yderst til højre. Nu åbner et forespørgselsgitter. Et eller andet sted i dette gitter befinder din adressetabel sig. Klik på "tilføj tabel" (et tabelikon med et lille "+"-tegn), vælg fanebladet "forespørgsler" og tilføj din forespørgsel.
Gå nu ind og kopier evt. relationer mellem adressetabellen og andre tabeller over til din egen forespørgsel. Det foregår på samme måde som i relationsvinduet. Kig nederst i gitteret. Find de felter hvor anden linje (tabelkilden) er lig navnet på din adressetabel. Klik på navnet de steder, og ændr det til dit forespørgselsnavn. Når du har gjort det på alle felterne vælger klikker du på tabellen (adressetabellen) i øverste del af gitteret, og fjerner den (klik delete).
OBS: Bynavn-feltet kan hedde noget andet i den nye forespørgsel. Hvis det gør det, sletter du bare det gamle bynavn-felt og indsætter det nye fra din forespørgsel. Luk forespørgselsgeneratoren og sig ja til at gemme ændringer.
Nu er du færdig med postkilden. Klik på bynavnsfeltet i formularen. Hvis du stadig har egenskabsarket åbent skal du vælge fanebladet "Data", øverste linje "Kontrolelementkilde" (ellers højreklikker du og vælger "egenskaber").
Klik på "pil ned" ikonet og vælg bynavnsfeltet. Det er muligt at det allerede er valgt, men denne metode sikrer at du vælger et felt der findes i formularens postkilde.
Gem formularen - og skriv løs.

// Var det ikke en forklaring... ;-)
Avatar billede jgc Nybegynder
23. maj 2000 - 11:14 #7
Hej fie - tak for pointene til det første spørgsmål (http://www.eksperten.dk/spm.asp?id=16820). Jeg vil ikke virke grådig - men dette spørgsmål bør også accepteres.

mvh /Jens
Avatar billede fie Nybegynder
29. maj 2000 - 08:31 #8
Tusinde tak, det virker
Hermed knus og points
mvh fie
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