Avatar billede per2edb Praktikant
29. oktober 2013 - 14:32 Der er 12 kommentarer og
1 løsning

Output fra DoCmd.OpenForm

Jeg har:

strFormValg = "yyyyy"
DoCmd.OpenForm "xxxxx", , , , , acDialog, strFormValg

strFormValg ændres i Formen "xxxxx". Hvordan får jeg den ændrede strFormValg ud uden at skulle skrive ind i et tekstfelt.
Jeg ønsker den ud som en streng variabel.
Altså ny strFormValg=
Avatar billede mugs Novice
29. oktober 2013 - 14:46 #1
Ønsker du blot at ændre strFormValg i VBA-editoren, eller skal et felt i formularen modtage strFormValg?
Avatar billede per2edb Praktikant
29. oktober 2013 - 15:12 #2
Det er VBA koden. Til et felt har jeg det allerede.
Avatar billede mugs Novice
29. oktober 2013 - 19:20 #3
Så forstår jeg ikke rigtig dit spørgsmål. Hvorfor tildeler du ikke blot strFormValg en ny værdi? Får du en fejlmeddelelse?
Avatar billede per2edb Praktikant
29. oktober 2013 - 20:51 #4
Jeg prøver at forklare:

Fra en Form lad os kalde den StartForm kalder jeg form xxxxx og overfører variablen
strFormValg = "yyyyy"

Det gør jeg således:
DoCmd.OpenForm "xxxxx", , , , , acDialog, strFormValg

I Form xxxxx ændres strFormValg. Den ændrede værdi skal tilbageføres til StartForm.

Det kan gøres ved at skrive værdien ind i et tekstfelt, men jeg ønsker værdien tilbageført via VBA med en variabel f.eks strFormValg nu med den ændrede værdi
Avatar billede mugs Novice
29. oktober 2013 - 21:05 #5
Har vi ikke været inde på det før, med at overføre en variabel fra en form til en anden?

Dim VARa as string
Her kommer din kode

VARa = nystrFormValg
'her vender du tilbage til den form du kom fra
docmd.close

Me.FELTNAVN = VARa
Avatar billede per2edb Praktikant
29. oktober 2013 - 21:49 #6
Som jeg skrev ville jeg undgå at skrive ind i et felt
Den løsning kender jeg.

I VBA skal jeg have  VARa ud som en variabel VARa=
Avatar billede mugs Novice
29. oktober 2013 - 22:06 #7
OK - men efter VARa er tildelt den nye strFormValg, hvad vil du så gøre med den, det forvirrer mig lidt.

VARa = nystrFormValg

Og hvad nu?
Avatar billede per2edb Praktikant
29. oktober 2013 - 22:20 #8
If VARa= "abc" then
....
....
Avatar billede mugs Novice
29. oktober 2013 - 22:37 #9
mjaaa - Du har nu en betingelse, men hvis betingelsen er opfyldt, hvad skal der så ske?

Og hvis betingelsen ikke er opfyldt, hvad skal der så ske?
Avatar billede hugopedersen Nybegynder
30. oktober 2013 - 06:45 #10
Det du gør er at bruge formens OpenArgs til at overføre nogle data til den. Formens OpenArgs er ReadOnly så du har ikke mulighed for at ændre værdien i den form du åbner

Det du er ude efter er det samme som at kalde en procedure med en ByRef parameter som er en parameter proceduren kan ændre og man kan aflæse den nye værdi i den kaldende kode. Det modsattte er ByVal som er 'skrivebeskyttet' i proceduren
Det kan du ikke gøre ved bruge af OpenArgs - du er nødt til at have en eller anden global variabel til det brug.
Avatar billede per2edb Praktikant
30. oktober 2013 - 09:50 #11
Det var hvad jeg forventede
Jeg er ikke glad for globale variabler men bruger dem nødtvungne
Det er som om Microsoft ikke tænker i praktisk brug
Input, ja - ok med OpenArgs, men output ?

Vil i lave så i får point
Avatar billede hugopedersen Nybegynder
30. oktober 2013 - 11:53 #12
Jamen det er lidt underligt ja, men sådan tænker M$

Når man programmerer i f.eks. Delphi har man meget mere styr på hvordan den slags sker og kan sende parametre både frem og tilbage.
Avatar billede mugs Novice
30. oktober 2013 - 12:21 #13
Hvis du ikke kan bruge min løsning, afstår jeg fra point.
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