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
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