VBScript: Popup Formulier

Status
Niet open voor verdere reacties.

johanw

Gebruiker
Lid geworden
3 mrt 2003
Berichten
74
Ik wil dat ik met vbscript een venster of formulier kan laten verschijnen.

Enkele variabelen moeten in dat nieuwe venster/formulier weer aanspreekbaar zijn.

Hoe realiseer ik dat?
 
Door het aanmaken van een formulier, waarin de benodigde velden zijn opgenomen. Dit formulier kune je openen met:

docmd.openform "MijnFormulier"
 
Oke, dat is gelukt.

Maar nu wil ik informatie invoeren in een veld in dat popup formulier, dan op een knop drukken, dan wordt het formulier gesloten en de inhoud van het veld naar een variabele in het oorspronkelijke formulier gezet.

Kan dat?
 
Andersom mag ook, dus dat ik een variabele uit het al bestaande formulier in het popup formulier kan krijgen.

edit: Is eigenlijk zelfs makkelijker..
 
Laatst bewerkt:
Popup

Plaats in de Bij Openen Event;
Me!Naam veld in popup waarin variabele moet komen = Forms!Naam hoofdform!veld waarin variabele staat in hoofdform

dus b.v.b;

me!txtVar = Forms!Hoofdform!txtNaam

Martin
 
Ik snap het niet helemaal..

Private Sub txt_client_BeforeUpdate(Cancel As Integer)

Dim aantal_clients As Integer

aantal_clients = Forms!frm_artikelen_ontvangen!Nieuw_1

txt_test.Value = aantal_clients

End Sub

Dit heb ik in de code van het popup schermpje staan, waarom werkt dit niet?
 
Je moet de waarde toekennen meteen na het openen van het popupformulier. In de dezelfde actie.

docmd.openform "MijnFormulier"

aantal_clients = Forms!frm_artikelen_ontvangen!Nieuw_1

txt_test.Value = aantal_clients

jj
 
docmd.openform "frm_client_invoeren"

aantal_clients = Forms!frm_artikelen_ontvangen!Nieuw_1

Als ik dit uitvoer heeft aantal_clients in frm_client_invoeren geen waarde.. Of bestaat niet.


Nieuw_1 is een txtveld waar een integer ingevuld wordt.
 
Johan,

Probeer het eens op de volgende manier:

docmd.openform "frm_client_invoeren", acNormal, , , acFormEdit, acHidden

Forms![frm_client_invoeren]![aantal_clients] = Forms![frm_artikelen_ontvangen]![Nieuw_1]

Forms![frm_client_invoeren].Visible = True
 
Bartuls, dat geeft een fout:

MSAccess can't find the field 'aantal_clients' referred to in your expression.

Dat klopt opzich ook wel, want het moet ook geen veld zijn maar een variabele. En nu? :confused:
 
Dan maar even terug naar af.
Vertel nu eens precies wat je wilt en waarmee je het wilt.
Dat betekent dat je moet aangeven of een veld een veld op een formulier is (en dan ook op welk formulier) of een veld een variabele is (en dan ook wat de scope van deze variabele is) en wat je precies met de inhoud van welk veld wanneer wilt doen.
Het is nu erg onduidelijk wat waar in staat en wat waar moet komen.
 
2 formulieren; frm_artikelen_ontvangen en frm_client_toevoegen

frm_artikelen_ontvangen bevat het tekst invoer veld Nieuw_1 en een knop Opslaan.

Wanneer op de knop opslaan gedrukt wordt moet frm_client_toevoegen worden geopend.
In frm_client_toevoegen moet dan een variabele ontstaan die de waarde heeft van tekst invoer veld Nieuw_1 uit formulier frm_artikelen_ontvangen

Met de variabele die ik daardoor krijg wil ik een aantal keer een opdracht doen. Dat werkt wel als ik handmatig de variabele opgeef, heb ik al getest.

Ik weet niet wat een scope is.. sorry
 
Kijk, als je dit nu in je eerste post had gezet had je de oplossing allang gehad!

Voor dit soort dingen kun je gebruik maken van het laatste argument van de openform methode: openargs

Je code ziet er dan als volgt uit:
docmd.openform "frm_client_toevoegen", acNormal, , , acFormEdit, , Forms![frm_artikelen_ontvangen]![Nieuw_1]

In je formulier frm_client_toevoegen is de waarde dan beschikbaar als volgt:

Forms![frm_client_toevoegen].Openargs

of

me.Openargs
 
Geplaatst door Bartuls

In je formulier frm_client_toevoegen is de waarde dan beschikbaar als volgt:

Forms![frm_client_toevoegen].Openargs

of

me.Openargs

Dit snap ik niet helemaal.
 
Voor het openen van het formulier frm_client_toevoegen gebruik je de volgende code:

docmd.openform "frm_client_toevoegen", acNormal, , , acFormEdit, , Forms![frm_artikelen_ontvangen]![Nieuw_1]

In je formulier frm_client_toevoegen is de inhoud van veld Forms![frm_artikelen_ontvangen]![Nieuw_1] dan beschikbaar als

Forms![frm_client_toevoegen].Openargs

of

me.Openargs

Je kunt deze expressies dan in je code gebruiken, bijvoorbeeld:

msgbox "De inhoud van Nieuw_1 is " & cstr(me.Openargs)
 
Private Sub txt_test_Beforeupdate()

MsgBox "De inhoud van Nieuw_1 is " & CStr(Me.OpenArgs)

End Sub



Oke, snap ik. bovenstaande zou er dan toch voor moeten zorgen dat ie bij het openen van form die msgbox geeft? doet ie niet.
 
Nee, die code zorgt ervoor dat je na het aanbrengen van een wijziging in je gegevens vlak voordat de wijziging daadwerkelijk in de database geplaatst wordt een messagebox krijgt.

Als je bij het openen van je formulier code wilt uitvoeren moet je deze onder het OnOpen event plaatsen:

Private Sub Form_Open(Cancel As Integer)
MsgBox "De inhoud van Nieuw_1 is " & CStr(Me.OpenArgs)
End Sub
 
Nu gaat het me wel lukken denk ik, zal zelf wel even prutsen.

Bedankt voor je hulp (en geduld ;))
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan