Avatar billede plato Juniormester
15. april 2014 - 12:05 Der er 9 kommentarer og
1 løsning

Få navnet fra en form i vba

Hej Alle

Ikke sikker på hvordan jeg skal forklare det, men prøver alligevel.

Jeg har:
Form4
Form1
Form2
Form3

Form 4 kan åbnes fra 1, 2 og 3 med en knap.

I 'On load' event for Form 4 er:
Dim YesOrNoAnswerToMessageBox As String
Dim QuestionToMessageBox As String
If Me.RecordsetClone.RecordCount = 0 Then
    QuestionToMessageBox = "Der findes ingen data i øjeblikket. Vil du se om der er nogen der er oplært i Hovedrollen?" & frnName & ""
    YesOrNoAnswerToMessageBox = MsgBox(QuestionToMessageBox, vbYesNo, "Ingen data")
    If YesOrNoAnswerToMessageBox = vbNo Then
    DoCmd.Close
    Else
    DoCmd.Close
    DoCmd.OpenForm "frmShowMainRoles", , , "JobsId =" & Forms![Form1]![txtMainJobId] & ""
    End If
Else
Me.Caption = "Trænet personale for Subrolle: " & DLookup("[SubRoleTitle]", "tblJobs", "[JobsId] =" & [JobsId] & "") & ""
End If

Så hvis Record er 0 skal brugeren omdirigeres med:
DoCmd.OpenForm "frmShowMainRoles", , , "JobsId =" & Forms![Form1]![txtMainJobId] & ""

Det virker så fint fra Form1, men hvis jeg klikker på samme knap i Form2 og 3 virker linien selvfølgelig ikke.

Kan jeg på nogen måde få formens navn ind automatisk i onload event for form4?

Altså:
DoCmd.OpenForm "frmShowMainRoles", , , "JobsId =" & Forms![HENT-AUTOMATISK-FORM-NAVN-HVOR-KNAPPEN-ER]![txtMainJobId] & ""
Avatar billede mugs Novice
15. april 2014 - 12:21 #1
Prøv med:

Me.name
Avatar billede plato Juniormester
15. april 2014 - 12:25 #2
Har prøvet med:
DoCmd.OpenForm "frmShowMainRoles", , , "JobsId =" & Me.Parent![txtMainJobId] & ""

DoCmd.OpenForm "frmShowMainRoles", , , "JobsId =" & Me.Name![txtMainJobId] & ""

Ingen af dem virker. Invalid qualifier..
Avatar billede plato Juniormester
15. april 2014 - 12:27 #3
DoCmd.OpenForm "frmShowMainRoles", , , "JobsId =" & [Forms]![Me.Name]![txtMainJobId] & ""

Virker heller ikke.
Avatar billede plato Juniormester
15. april 2014 - 12:48 #4
Har prøvet at benytte lidt ud fra denne:
http://stackoverflow.com/questions/1462876/msaccess-2003-vba-for-passing-a-value-from-one-form-to-another

Men kan ikke lige hitte ud af det.
Avatar billede mugs Novice
15. april 2014 - 14:58 #5
Af dine sidste kommentarer, ser det ud som om, at du vil overføre en værdi fra en form til en anden. Er det korrekt?
Avatar billede plato Juniormester
15. april 2014 - 17:04 #6
Ja det må det næsten være. For jeg ser jo slet ikke formen, hvis record er 0, når det er i onload event.
Avatar billede mugs Novice
15. april 2014 - 19:01 #7
når formen ikke er åben, kan du ikke fange hverken et formularnavn eller en feltværdi.
Avatar billede plato Juniormester
15. april 2014 - 19:23 #8
Hvis du læser mit spørgsmål igen, kan jeg godt få det til at virke fra én af formene ved at angive formens navn. Men da form4 kan åbnes fra 2 andre har jeg jo brug for at skifte navnet ud. :-)
Avatar billede plato Juniormester
16. april 2014 - 07:30 #9
Jeg har nu fundet løsningen på at finde formnavnet:
Dim sFrmName As String
sFrmName = Screen.ActiveControl.Parent.Name

Men hvordan får jeg sFrmName til at virke heri:
DoCmd.OpenForm "frmShowMainRoles", , , "JobsId =" & Forms![ & sFrmName & ]![txtMainJobId] & ""
Avatar billede plato Juniormester
16. april 2014 - 07:50 #10
Løst. :)


Dim sFrmName As String
sFrmName = Screen.ActiveControl.Parent.Name

    DoCmd.OpenForm "frmShowMainRoles", , , "JobsId =" & Forms(sFrmName)![txtMainJobId] & ""
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

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