BC30456 Visual Basic And Vb.net Is Not A Member Of
BC30456 in VB.NET means the compiler cannot find the named member on the type or namespace your code refers to. Start by checking the member’s spelling and the expression before the dot, then confirm the intended type and library reference. Fix the mismatch identified in.
Which licences fit your PC setup?
Prices are an AUD snapshot, not a live quote. Confirm variant and total on the listing.
-

Office 2021 Pro Plus key
$57.00 AUD
-

SQL Server 2022 Standard
$399.99 AUD
-

Windows 11 Pro key
$14.99 AUD
$29.00
What “is not a member of” tells you
The message follows the pattern “BC30456: 'MemberName' is not a member of 'TypeName'”. The first name identifies what your code is trying to access; the second identifies where the compiler looked. Both names matter. A correctly spelt method still fails if you call it on the wrong object.
For example, customer.FirstNmae will fail if the customer’s type exposes FirstName instead. Microsoft’s BC30456 documentation recommends checking the name and using a member that actually belongs to the class.
This is a compile-time problem. The compiler must resolve the member before the application can run, so adding runtime exception handling will not repair it. Although people often search for this error under “Visual Basic”, BC30456 is a diagnostic from the .NET Visual Basic compiler.
Diagnose BC30456 in a consistent order
-
Read the complete diagnostic. Open the failing line from Visual Studio’s Error List and record both the missing member and the containing type or namespace. If several errors appear, first resolve earlier errors in declarations or referenced projects that could affect this line.
-
Check the member’s spelling against its declaration. Look for transposed letters, renamed properties and methods copied from another example. Use IntelliSense or Go To Definition to inspect the available API. Visual Basic treats element names as case-insensitive, so FirstName and firstname refer to the same name. Capitalisation alone does not explain this error.
-
Inspect the expression before the dot. Hover over the variable or navigate to its declaration to see the type the compiler uses. A variable declared as a base class or interface exposes that type’s members, even when the object assigned to it has additional members. Check each part of a longer expression separately to find where its type stops matching your expectation.
-
Confirm the namespace and resolved declaration. A local variable, class or module can share a name with something you intended to reference. Go To Definition helps reveal which declaration the compiler selected. Qualify the intended type with its namespace, or rename a conflicting identifier when that makes the code clearer.
-
Verify the project reference. If the member comes from another project, package or assembly, check that the failing project references the intended dependency. Inspect the resolved library version and the project’s target framework, then compare them with the documentation for that API. An example written for another framework or library version may use a member your project does not provide.
-
Review accessibility if the member exists. Private, Protected and Friend declarations restrict where members can be used, although access violations can produce diagnostics other than BC30456. Check the exact error before changing an access modifier. Prefer the class’s intended public API over exposing implementation details simply to remove an error.
-
Rebuild after making a targeted correction. If references or generated files changed, a clean and rebuild can help confirm the result. If the same diagnostic remains, return to the resolved type and member declaration. Repeatedly cleaning the solution will not create a missing property or correct an incompatible API call.
Separate missing imports from missing references
An Imports statement lets you use names without writing their full namespace qualification. A project reference makes the relevant assembly available to the compiler. These serve different purposes: importing a namespace does not install a package or add an assembly reference.
As Microsoft explains in its guidance on references to declared elements, qualification also controls which declaration a name refers to. If a fully qualified type works while its short name fails, investigate name resolution and imports. If the intended type is unavailable altogether, investigate the dependency first.
Update a dependency only when you have established that the required API belongs to a compatible version. Otherwise, adapt the call to the API your project supports. The compiler error alone is not evidence that a package needs upgrading.
Check the control type in Windows Forms code
Form code can fail when a control has been renamed, replaced or declared with a different type from the example you copied. Inspect the control’s Name property and its generated declaration before editing the event handler. Avoid changing designer-generated code as a first troubleshooting step.
For a clear-button handler, verify that each target is the intended text input and exposes the member being called. The guide to coding a clear button in Visual Basic provides related context for that task.
For checkbox code, confirm that the variable refers to the checkbox itself and that the property belongs to the UI framework you are using. A Windows Forms example should not be assumed to work unchanged in another framework. See the guide to coding a checkbox in Visual Basic when checking the surrounding control logic.
Isolate a stubborn error
If the cause is still unclear, reduce the failing code to one declaration and one member access while retaining the relevant reference. Compare that small example with the original project. Record the full diagnostic, declared type, target framework and resolved dependency version before seeking help; those details are more useful than the error number alone.
Keep the Visual Basic guides available for related syntax questions. For your next step, open the first failing line, inspect the declaration immediately before the dot and compare its available members with the name reported by BC30456.
Other editions for separate workloads
Other editions for separate workloads; prices in AUD, confirm the total on the listing.
-

Office 2024 Pro Plus key
$20.00 AUD
$39.00 -

Windows 11 Home key
$18.88 AUD
$37.00 -

Windows 10 Pro key
$12.00 AUD
$15.00
How to check this worked
- Open Settings, System, Activation and confirm the edition shown.
- Enter the key and run activation; expect a green tick within a minute.
- Reboot and re-check activation survives the restart.
FAQ
What else should you know before buying?
- What do I need before starting?
- Read the requirements and confirm the edition first; the steps assume the machine is compatible.
- How do I know the licence is genuine?
- Activate on Microsoft's servers and check Settings, System, Activation. A working activation is the test.
- Is this a subscription?
- Keys sold here are one-time lifetime licences. Microsoft 365 plans are billed by Microsoft instead.
- What if the key fails?
- Email hi@ms.codes with the order number and a screenshot. Replacement or refund applies within 30 days.
Check who prepared and reviewed this guide
- Written by
- MS.Codes editorial
- Reviewed by
- Support team
Last verified: (source review; see test status above).