Avatar billede MichaelLodberg Nybegynder
09. december 2013 - 12:54 Der 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...

På forhånd tak.
Avatar billede fdata Forsker
09. december 2013 - 13:52 #1
Øhm.

"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:

Me.T1=DLookup("T1","Skabeloner","SkabelonID=" & Me.DropdownVærdi)
osv.

(Udskift selv tabel- og feltnavne med de relevante)
Avatar billede MichaelLodberg Nybegynder
09. december 2013 - 14:23 #2
Ok... Det var nogen gode nyttige informationer... Har naturligvis ændret til notat form så jeg kun behøver et felt...Rigtig godt.

Jeg har indtastet

Me.Notat=DLookup("Notat","Skabelon koster","SkabelonID=" & Me.DropdownVærdi)

Og den siger ikke noget om der er fejl i den. Skabelon koster er navnet på tabellen med skabelonerne.. det går jeg ud fra er rigtigt.

Den indsætter det dog ikke i feltet Notat... skal jeg ikke sætte noget ind i feltet for at hente eller skulle det komme automatisk..
Avatar billede fdata Forsker
09. december 2013 - 15:38 #3
Jeg tror, du mangler at udskifte Me.DropdownVærdi med dit aktuelle feltnavn.

Ellers har du måske fået anbragt koden i en hændelse, der ikke bliver fyret af.

Prøv evt. at teste koden ved at placere en knap på din formular og læg så koden i knappens OnClick/VedKlik hændelse.
Avatar billede MichaelLodberg Nybegynder
09. december 2013 - 23:16 #4
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:

=DLookUp("Notat";"skabelonforsp";"skabelonid=" & [Skabelon])

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 :)
Avatar billede fdata Forsker
10. december 2013 - 22:36 #5
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?
Avatar billede MichaelLodberg Nybegynder
16. december 2013 - 09:03 #6
Jeg har prøvet at sætte det ind, men den vil stadig ikke opdatere det felt, hvor teksten skal stå.... Lidt mystisk.
Avatar billede fdata Forsker
16. december 2013 - 11:09 #7
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
Avatar billede MichaelLodberg Nybegynder
18. december 2013 - 15:16 #8
Ok....

Nu har jeg prøvet at rode en del med det igen...

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 ?
Avatar billede MichaelLodberg Nybegynder
18. december 2013 - 15:22 #9
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.
Avatar billede MichaelLodberg Nybegynder
18. december 2013 - 15:58 #10
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.
Avatar billede fdata Forsker
18. december 2013 - 19:14 #11
I feltets AfterUpdate/EfterOpdatering hændelse lægger du:

  If Me.Feltnavnet="Afsluttet" Then DoCmd.SendObject ...
(se beskrivelse af SendObject i Access hjælpen)
Avatar billede MichaelLodberg Nybegynder
08. januar 2014 - 00:23 #12
Nu har jeg fået det til at virke... det er fantastisk... det var de makroer der ikke var slået til i access indstillingerne. Tak endnu en gang.
Avatar billede MichaelLodberg Nybegynder
08. januar 2014 - 00:24 #13
Nu har jeg fået det til at virke... det er fantastisk... det var de makroer der ikke var slået til i access indstillingerne. Tak endnu en gang.
Avatar billede fdata Forsker
08. januar 2014 - 18:28 #14
Velbekomme.

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)
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