VBA: OpenArgs met 2 variabelen

Status
Niet open voor verdere reacties.

johanw

Gebruiker
Lid geworden
3 mrt 2003
Berichten
74
In formulier 1 staat dit:

DoCmd.OpenForm "tabel2", acNormal, , , acFormEdit, , Forms![frm_artikelen_ontvangen]![Nieuw_1]


In formulier 2 dit:

aantal_clients = Me.OpenArgs

Hierdoor is variabele Nieuw_1 uit formulier 1 in formulier 2 als variabele aantal_clients beschikbaar.

Maar nu wil ik nog een variabele uit formulier 1 in formulier 2 krijgen.. Hoe moet dat? :S
 
iets van
DoCmd.OpenForm "tabel2", acNormal, , , acFormEdit, , Forms![frm_artikelen_ontvangen]![Nieuw_1] & "_" & Forms![frm_artikelen_ontvangen]![Nieuw_2]

En dan in het andere formulier de openargs scheiden dmv links van het liggend streepje en rechts van het liggend streepje eruit te plukken
 
Geplaatst door Tvhouwel
iets van
DoCmd.OpenForm "tabel2", acNormal, , , acFormEdit, , Forms![frm_artikelen_ontvangen]![Nieuw_1] & "_" & Forms![frm_artikelen_ontvangen]![Nieuw_2]

En dan in het andere formulier de openargs scheiden dmv links van het liggend streepje en rechts van het liggend streepje eruit te plukken

ik zou niet weten hoe ik die ene openargs dan in meerdere variabelen moet scheiden.
 
In dBase was er een commando om te kijken waar een bepaald karakter stond in een variabele, dat heb ik in Access nog niet kunnen vinden. Dus doe ik het vaak op de onderstaande manier


'De Open Arguments
vl_openargs = "1egedeelte_2egedeelte"

'Een teller om te bepalen waar het liggende streepje staat
vl_counter = 1

'Een variabele om te kijken of het liggende streepje al gevonden is
vl_gevonden = "nee"

'Een loop die kijkt naar het meest linkse teken van de Open Arguments, als dat een liggende streepje is
'dan wordt de variabele vl_gevonden "ja" en stopt de loop.
'Als het niet gevonden is, kijkt hij 1 teken verder naar rechts of dat dan een liggend streepje is
Do While vl_gevonden <> "ja"
If Mid(vl_openargs, vl_counter, 1) = "_" Then
vl_gevonden = "ja"
Exit Do
End If
'Als hij niet gevonden is de teller met 1 ophogen
vl_counter = vl_counter + 1
Loop

'Als de loop gestopt is dan kunnen we wat met de teller
var1 = Left(vl_openargs, vl_counter - 1)
var2 = Mid(vl_openargs, vl_counter + 1)
 
Het lijkt me iig een oplossing..

Maar het lijkt me sterk dat er niet een minder omslachtige oplossing is.

Ik zal het morgen iig even proberen. Bedankt!
 
Veel minder omslachtig is natuurlijk, een variabele opgeven in een module die bij het opstarten doorlopen wordt, met het commando

Global vg_variabele

De variabele vg_variabele is nu door het hele programma heen te gebruiken.
Dit is simpel, maar het kost natuurlijk wel geheugen.
 
Geplaatst door Tvhouwel
Veel minder omslachtig is natuurlijk, een variabele opgeven in een module die bij het opstarten doorlopen wordt, met het commando

Global vg_variabele

De variabele vg_variabele is nu door het hele programma heen te gebruiken.
Dit is simpel, maar het kost natuurlijk wel geheugen.
Zoiets zocht ik.. Ik zal het proberen.
 
Geplaatst door Tvhouwel
Veel minder omslachtig is natuurlijk, een variabele opgeven in een module die bij het opstarten doorlopen wordt, met het commando

Global vg_variabele

De variabele vg_variabele is nu door het hele programma heen te gebruiken.
Dit is simpel, maar het kost natuurlijk wel geheugen.

Hoe maak ik die module?

Ik kom er niet helemaal uit.. Kun je het toelichten met code?
 
Geplaatst door Tvhouwel
In dBase was er een commando om te kijken waar een bepaald karakter stond in een variabele, dat heb ik in Access nog niet kunnen vinden. Dus doe ik het vaak op de onderstaande manier


'De Open Arguments
vl_openargs = "1egedeelte_2egedeelte"

'Een teller om te bepalen waar het liggende streepje staat
vl_counter = 1

'Een variabele om te kijken of het liggende streepje al gevonden is
vl_gevonden = "nee"

'Een loop die kijkt naar het meest linkse teken van de Open Arguments, als dat een liggende streepje is
'dan wordt de variabele vl_gevonden "ja" en stopt de loop.
'Als het niet gevonden is, kijkt hij 1 teken verder naar rechts of dat dan een liggend streepje is
Do While vl_gevonden <> "ja"
If Mid(vl_openargs, vl_counter, 1) = "_" Then
vl_gevonden = "ja"
Exit Do
End If
'Als hij niet gevonden is de teller met 1 ophogen
vl_counter = vl_counter + 1
Loop

'Als de loop gestopt is dan kunnen we wat met de teller
var1 = Left(vl_openargs, vl_counter - 1)
var2 = Mid(vl_openargs, vl_counter + 1)

Het duurde me te lang, heb deze methode geprobeerd en werkt ook dus ik ben tevreden. :)

Bedankt!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan