09. december 2013 - 12:54Der er
13 kommentarer og 1 løsning
Indsættelse af tempvars/midlertidige variabler i formular ved klik på knap
Hej derude.
Da jeg ikke selv kan magte og løse mit problem forsøger jeg nu at løse problemet ved at forstyrre jer alle.
Jeg arbejder i access 2007.
Jeg ønsker at have mulighed for at indsætte en skabelontekst i nogen felter i en formular.
Felterne hvor teksten skal indsættes har jeg kaldt t1, t2, t3, og t4. Altså fire felter i alt idet 2007 kun kan håndtere 255 tegn pr. felt, hvilket er lige lidt nok. Når man står inden i formularen hvor t1, t2.... er, kan må på en dropdown menu vælge et antal forskellige skabeloner (skabelonnavn). Efter man har valgt trykker man på en cmdknap hvor man åbner en ny formular, hvor hele skabelonen fremkommer med selve teksten. her kan man klikke på en cmdknap så den gemmer alle fire tekst (st1, st2, st3 og st4) felter i tempvars, hvorefter den lukker formularen igen.
De er nu gemt og det virker som det skal.
PROBLEMET: Jeg kan godt få indsat teksten fra skabelonerne i min felter t1, t2 o.s.v. når jeg putter dem ind som standard værdier. Men jeg ønsker ikke at sætte dem ind som standard, idet de ikke skal bruges altid og nogen gange skal kunne kaldes frem efter at formularen er delvist udfyldt.
Giver Access ikke mulighed for at indsætte tempvars ved at oprette en cmdknap man kan klikke på... Grunden til den lidt bøvlede fremgangsmåde er at jeg også gerne vil have der er mulighed for at rette i teksten t1, t2 .... efter skabelonen er indlæst uden at det går ud over den oprindelige skabelon, der skal bibeholdes intakt.¨
Er der behov for uddybende beskrivelse er jeg klar ved tasterne...
"Access kan kun håndtere 255 tegn". Ja, i tekstfelter; men hvis du bruger typen Notat er øvre grænse ca. 2 mia. tegn.
Det lyder lidt voldsomt at åbne en formular bare for at indsætte tekst i nogle felter.
Jeg går ud fra, at dine skabeloner ligger i en tabel. Posterne har formodentlig også et ID eller ligefrem et SkabelonID felt. I så fald kan du hente teksterne meget enkelt:
I din dropdowns AfterUpdate/EfterOpdatering hændelse kan du lægge noget i stil med:
Nå har fået dlookup til at virke nu... dog ikke ved indtastning i hændelse på dropdown feltet men i bemtek (der hvor skabelonen skulle indsættes (tidligere t1 feltet)) felte ved at skrive:
Jeg har kaldt prøvet at indsætte denne oppe i dropdown: [bemtek]=DLookUp("Notat";"skabelonforsp";"skabelonid=" & [Skabelon])
Men det virkede ikke...
Dog er der et problem idet jeg gerne ville kunne rette i den tekst den henter i NOtat. Rette i den uden det går ud over den oprindelige tekst. Er der en løsning til det eller bliver jeg nødt til at copy/paste teksten manuel fra bemtek til et nyt notat felt, hvor jeg kan redigere i det??
Men tusind tak for hjælpen so far.. Det er nogen gange små oplysninger kan være meget værdifulde :)
Nu har du fået vendt sagerne lidt på vrangen. Du er nødt til at kopiere feltet Notat fra skabelonen til feltet [bemtek] via en hændelse, enten via din dropdowns EfterOpdatering hændelse eller evt. via en knap.
Herved "stempler" du notatet ned i feltet [bemtek] og er slet ikke i kontakt med skabelonen længere. Derfor ingen fare for at du ødelægger skabelonen.
Dit problem er, at du har bundet [bemtek] til en DLookup, og så kan du ikke ustraffet rette i feltet (da det jo er bundet til skabelonen).
I øvrigt: Hvis din DLookUp virker uden problemer, skal den naturligvis også virke i en hændelse (bemærk de små ændringer, jeg har indført): Me.[bemtek]=DLookUp("Notat","skabelonforsp","skabelonid=" & Me.[Skabelon] Hvad sker der, hvis du lægger den i EfterOpdatering hændelsen?
Har du prøvet med en enklere udgave, som f.eks.: Me.[bemtek]="Test"
Hvis det virker, rammer du jo i hvert fald det korrekte felt. Så må fejlen ligge i dit DLookUp. Det kan du jo så teste separat - evt. i Immediate vinduet (Ctrl-G). Bare skriv: ?DLookUp("Notat","skabelonforsp","skabelonid=" & <den værdi, du har valgt i din dropdown>]
Hvis det ikke virker, er det tilsyneladende feltet, der er problemet.
Du kan jo også tjekke, om din dropdown værdi overhovedet er den, som du forventer: ?Forms("<Dit formularnavn>").Skabelon
Jeg har ikke kunne få det til af virke på den maskine vi bruger.
Jeg har på min maskine derhjemme prøvet at lave en tilsvarende lille database, hvor jeg godt kan få det til at virke. jeg har så prøvet at køre databasen på den maskine det rigtigt skal køre på, og der virker det sjovt nok lige pludselig ikke.
Begge maskiner kører access 2007, hvor det er temmelig mærkeligt. Det kan du formentlig ikke hjælpe mig mig ?
Den eneste forskel jeg lige kan få øje på er at den maskine hvor det virker på kører 32bit og den hvor det ikke virker kører 64.... Men det burde der vel være styr på fra access side.
Nå nu har jeg fået den der virkede der hjemme til at virke også.. det var en indstilling i access, hvor man skulle aktivere alle makroerne... Jeg vender lige tilbage når jeg forhåbentlig har fået det hele til at køre :).
Ved du hvordan man i vba koder en kommando hvis en given tekst bliver skrevet.
I mit tilfælde viil jeg gerne sende en autogeneret mail, hvis der bliver skrevet "Afsluttet" i et felt.
Nu er du jo rimelig ny her på e, så du får lige et lille råd med på vejen: Når du lukker et spm er det bedre stil at give pointene til den, som har hjulpet, og ikke til dig selv ;O)
Du skal ikke lave noget om denne gang. Det er ikke vigtigt for mig ;O)
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.