21. april 2002 - 19:03Der er
14 kommentarer og 1 løsning
Resultat af foresp. til felt - hvordan?
Jeg har en form der bl.a. indeholder et Postnr-felt og et By-felt. Når brugeren forlader Postnr-feltet skal By'en automatisk fremkomme i By-feltet vha. en forespørgsel.
Jeg er nået hertil....
Private Sub Postnr_LostFocus() Dim sql As String sql = "select By from byer where Postnr = " & Postnr.Text CurrentDb.Execute sql 'Her skal jeg så på én eller andet måde 'have resultatet af forespørgslen skrevet 'til min By-label End Sub
Detr mest simple du kan gøre er at lave en relation mellem dine tabeller. Du har både postnr. og byer i samme tabel (lad os kalde den postnr.). I den tabel hvor du opretter dine poster (tabel2), har du et felt med postnr. I dette felt "plukker" du et postnr. I din forespørgsel indsætter du feltet postnr. Fra tabel2 og feltet postne fra tabellen postnr. relationen bevirker, at du vil få vist den by der svarer til postnr.
Min erfaring er, at den bedste og mest brugervenlig løsning er, at man dropper By-feltet i hovedtabellen, da man til hver en tid kan slå det op i Byer-tabellen.
På formularen har du således en tekstboks, som viser Postnr og en kombinationsboks, som også er bundet til Postnr. Kombinationsboksen skal så have Byer-tabellen som rækkekilde og bundet kolonne som den kolonne, hvor postnr er (typisk kolonne 1)
Derved vil brugeren enten kunne indtaste postnr eller vælge byen på dropdown-listen (hvis man f.eks. ikke kan huske postnr, men kender byen)
thomasjepsen -> Postnr og by er ikke i samme tabel, og det er heller ikke meningen at værdien i feltet by skal gemmes nogen steder. Når brugeren forlader postnr-feltet, vil jeg bare gerne vise byen i en label, så brugeren kan se at postnummeret er korrekt... håber du forstår hvad jeg mener, eller må du sige til.
Kan det slet ikke lade sig gøre at lave en sql forespørgsel som vist herover, når brugeren forlader feltet - og så skrive resultatet til formens by-label?
jette1 > Det er netop hvad både Terry og jeg foreslår. Funktionen DLookup henter værdien af et felt i en anden tabel. Koden ser således ud, hvis postnr er et numerisk felt:
Jette-> Ja, det er også netop det, som er resultatet af mit forslag. Du gemmer KUN postnr! Bynavnet vises blot i en forespørgsel.
Mugs og terry-> DLookup er lidt mere besværlig, da man således skal placere koden både på VedAktuel (på formularen) og VedEfterOpdatering (af postnr), men kombinationsboksen bare virker uden en eneste linie kode.
Jette-> Hvis du har en email-adresse, vil jeg gerne sende et eksempel. Ellers skriv til mig på tj@makeiteasy.dk Du må også gerne senne mig din base, som jeg så kan implementere det i.
another soultion is to make a query including the By in the query, and then use the query instead of the table in the form. Then make the By field read only so that it cant be changed. Then if youchange the postnr or go to another record the By will get updated. NO code is necessary doing it this way. You can use th equery builder in the forms record source to replace the tabel with a query. Then it sjust a case of adding the By field to the form
jeps, men du mister noget af den brugervenlighed, som jeg tilbyder i mit forslag. Men du har ret - og om ikke andet, så er dit forslag velegnet til rapporter m.m.
Generelt skal man være forsigtig med at bruge forspørgsler på formularer, hvor der skal opdateres.
Det kommer af sig selv: Feltet kan IKKE ændres med mindre, at du tager Postnr-feltet fra By-tabellen med. (og så gemmes postnr jo ikke i hovedtabellen)
thomasjepsen -> Tusind tak! 2000 format er helt okay... Jeg kigger på dit eksempel når jeg kommer hjem i aften, og så hører du fra mig hvis jeg har spørgsmål :-)
Jeg kender en del til VB og sql, men kender ikke Access særlig godt. Så derfor har jeg valgt den metode jeg nævner i mit første indlæg. Jeg forstår derfor heller ikke helt den diskussion der har været her mellem Terry og Thomas. Men der går jo nok et lyst op for mig på et tidspunkt efterhånden som min skoleopgave skrider frem :-)
Tak til Jer alle for hjælpen...
Synes godt om
Ny brugerNybegynder
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.