openargs

Status
Niet open voor verdere reacties.

spw

Gebruiker
Lid geworden
18 nov 2016
Berichten
83
Hoi,

Dan nog een vraagje dat ik niet in orde krijg ivm openargs.
Het zal wel aan mij liggen maar wil iemand duidelijk uitleggen hoe dit nu juist zit ?

Ik open een formulier 1 en vul 1 of meerdere velden in.
Velden worden niet persé weggeschreven in een tabel.
Het kan vb een vraag zijn : "Geef datum in"
Dan wordt formulier 1 gesloten en wordt formulier 2 geopend.
Dan is het de bedoeling dat in formulier 2 vb het veld datum de waarde heeft dat ingevuld is in formulier 1.
Ik lees ivm openen van formulieren ed maar ......

Ik weet dat het laatste veld van de docmd.openform is maar waar ken je deze variabele bij formulier 1 toe ?

Wat heb ik :

Bij het openen van formulier 1 : docmd.openform "formulier1", acnormal, , , , , datum
Op formulier 1 heb ik een veld "datum"
Bij docmd.openform "formulier2",acnormal, , , , , datum
Dus datum is mijn "openargs".
Maar toch zie ik geen waarde in het veld "Datum" op formulier 2

Wat doe ik verkeerd ?

Alvast bedankt.
 
Je doet niks verkeerds, maar je kunt het vergelijken met boodschappen doen. Eerst ga je naar de winkel en vul je je tassen. En dan ga je naar huis en pak je de tassen uit. Dat laatste, het uitpakken, heb je niet gedaan. Dus staat er niks in de koelkast...
Ik gebruik meestal (altijd) de gebeurtenis Open op het tweede formulier om te controleren of er wat in de OpenAgs zit. En in dat geval wijs je de waarde toe aan het veld. Met een IF dus.
IF Me.OpenArgs <> "" Then
Etc.
 
In het tweede formulier, bij laden, heb ik:
IF Me.OpenArgs <> "" Then msgbox "veld heeft een waarde".

En deze boodschap verschijnt ook. Dus de openargs heeft een waarde.
Maar op welke manier kan ik deze waarde toekennen aan een veld op het tweede formulier ?
Als ik msgbox(me.openargs) zie ik de juiste waarde.
Op formulier 2 heb ik een veld waar ik deze waarde aan wil toekennen.
Maar op welke manier ?
 
Laatst bewerkt:
Simpelste van het simpelste vrees ik:
Code:
     Me.Datumveld = Me.Openargs
Of iets vergelijkbaars, als je andere velden gebruikt.
 
Sorry voor mijn 'beperkte' kennis van Access.

Ik had
Code:
 datumveld = me.openorgs

Met me.datumveld werkt het wel.

Hartelijk dank voor je snelle support.
Je hebt er weer ene gelukkig gemaakt :)
 
Hoi,

Ik was te snel ivm vorige post.
Alles is nog NIET OK :(

Ik heb een 'meerdere' openargs gemaakt.

Code:
Dim strArgs As Variant
strArgs = Transporteurnummer & ";" & Transporteurnaam & ";" & transportdatum

Wanneer ik het formulier open laat ik eerst, als test, de waarden van de openargs zien.
En dat is in orde.
Maw transporteurnummer;transporteurnaam;datum. Dus ik zie vb 1258714;TNT;05/07/2017
Dan wil ik deze waarden toekennen aan een veld.

Code:
If Not IsNull(Me.OpenArgs) Then
        Args = Split(Me.OpenArgs, ";") '-- We used the ";" as a delimiter
        Me.Transporteurnummer = Args(0) ' 1st value
        Me.[Transporteurnaam].Value = Args(1) ' 2nd value
        Me.[Transportdatum].Value = Args(2)  '3nd value
End If

En dat lukt voor de eerste twee variabelen nl Transporteurnummer en Transporteurnaam.
Want de waarde laat ik zien via msgbox(Transporteurnummer) en msgbox(Transporteurnaam)
(de regel "Me.[Transportdatum].Value = Args(2) '3nd value" heb ik afgezet via ')

Wanneer ik ' weg doe dan krijg ik de foutmelding 'Fout 2448 tijdens uitvoering: Kan geen waarde aan dit object toekennen'. (voor de regel Me.[Transportdatum].Value = Args(2))
Heeft dit iets te maken met het datum formaat dd/mm/jjjj ?

En als ik kies voor
Code:
 Me.Transportdatum = Args(2)  '3nd value
dan krijg ik foutmelding "Fout '-2147342567 (80020009)' tijdens uitvoering :Kan geen waarde aan dit object toekennen'"

Iemand enig idee wat het probleem is ?

Alvast bedankt.
 
Dit is het werkende deel van de code:
Code:
     Me.Transportdatum = Args(2)
de tekst achter de ' is commentaar, en doet niks. Tenzij je de ' weghaalt, dan klopt er niets meer van de opdrachtregel en krijg je uiteraard een fout.
Ik doe het zelf ook regelmatig, meerdere waarden exporteren en splitsen (ik gebruik |, maar ; mag uiteraard ook) en elk veld dat beschikbaar is, moet je kunnen vullen op die manier. Geen idee dus waarom je de datum er niet inkrijgt. Ik kan mij alleen voorstellen dat je veldinstellingen niet overeenkomen, en dat de datum dus niet als datum herkend wordt.
 
Was nog niet opgelost na aanpassing code.
Toen het veld verwijdert en opnieuw aangemaakt en toen werkte het wel.
Misschien met een testen een parameter aangepast of iets dergelijks.
Normaal gezien niet maar het belangrijkste is dat het werkt.
Nogmaals hartelijk dank voor de snelle support.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan