Life is too short to spend it maintaining code like this. make yourself a table and use that to control the code.
Just FYI, the code you are currently using is not working as you think it should. When you combine AND and OR operands in a complex expression, you almost always need to use parentheses to ensure that the expression gets evaluated as you intend. For example:
If tbrootcause = "Packaging" And lblsource.Value = "Brand" Or lblsource.Value = "UK Landed Indirect" Or lblsource.Value = "UK Landed direct" Then
This statement is being evaluated as
If (tbrootcause = "Packaging" And lblsource.Value = "Brand")
Or lblsource.Value = "UK Landed Indirect" Or lblsource.Value = "UK Landed direct" Then
When what you probably want is:
If tbrootcause = "Packaging" And
(lblsource.Value = "Brand" Or lblsource.Value = "UK Landed Indirect" Or lblsource.Value = "UK Landed direct") Then
The solutions offered, all of which will work, inherently solve this problem but no one pointed it out specifically.
Also, ALWAYS use "Me." to qualify form/report references. It gives you Intellisense AND it tells Access where a variable is defined and eliminates the need to search all the loaded modules. Value is the default property of a control on a form or report so it can be omitted to make the code more concise.