variable is not declared it may be inaccessible due to its protection level

130,105

Solution 1

Pay close attention to the first part of the error: "variable is not declared"

Ignore the second part: "it may be inaccessible due to its protection level". It's a red herring.

Some questions... (the answers might be in that image you posted, but I can't seem to make it larger and my eyes don't read that small of print... Any chance you can post the code in a way these older eyes can read it? Makes it hard to know the total picture. In particular I am suspicious of your Page directives.)

We know that 1stReasonTypes is a listbox, but for some reason it seems like we don't know WHICH listbox. This is why I want to see your page directives.

But also, how are you calling the private method FormRefresh()? It's not an event handler, which makes me wonder if you are trying to reference a listbox in a form that is not handled properly in this code behind.

You may need to find the control 1stReasonTypes. Try maybe putting your listbox inside something like

<div id="MyFormDiv" runat="server">.....</div>

then in FormRefresh(), do a...

Dim 1stReasonTypesNew As listbox = MyFormDiv.FindControl("1stReasonTypes")

Or use an existing control, object, or page instead of a div. More info on FindControl: http://msdn.microsoft.com/en-us/library/486wc64h(v=vs.110).aspx

But no matter how you slice it, there is something funky going here such that 1stReasonTypes doesn't know which exact listbox it's supposed to be.

Solution 2

I have suffered a similar problem, with a Sub not accessible in runtime, but absolutely legal in editor. It was solved by changing destination Framework from 4.5.1 to 4.5. It seems that my IIS only had 4.5 version.

:)

Solution 3

I had a similar issue to this. I solved it by making all the projects within my solution target the same .NET Framework 4 Client Profile and then rebuilding the entire solution.

Solution 4

If I remember correctly, this is the default property for controls.

Can you try by going into Design-View for the admin_reasons that contains the specified Control, then changing the control's Modifiers property to Public or Internal.

Solution 5

I got this error briefly after renaming the App_Code folder. Actually, I accidentally dragged the whole folder to the App_data folder. VS 2015 didn't complain it was difficult to spot what had gone wrong.

Share:
130,105
jp2code
Author by

jp2code

Software Developer @ IPKeys and jp2code.net Long ago, I left home and joined the United States Marine Corps where I was assigned the Military Occupational Specialty (MOS) of Basic Metal Worker (MOS 1316). I loved building things as a welder, but could not see myself doing this until I reached age 65. After my Honorable Discharge in the early 1990s, I used my G.I. Bill to go to school and received my Bachelor of Science Degree in Physics four years later. Using a love of computers since I played on a Commodore 64 at 10 years old and two (2) C++ electives that I had taken in school, I began working in the computer programming field. The recession following ENRON in 2001 left me working at a remedial job for a little over two years while I brushed up on my skills at a local community college in SQL and first learned what the new .NET Framework was all about. I have had the pleasure of working as a Software Developer since 2003. For a short while, I pulled in a little extra income by running a moonlighting business under the name Joe's Welding. Dangerous working conditions and non-paying customers prompted me to sell my mobile welding equipment about the time my son was born. Today, I am exclusively a Software Developer. My language of choice is C#, and I enjoy working with databases. If you care to find me anywhere else, just do a search on my screen name: jp2code

Updated on August 10, 2022

Comments

  • jp2code
    jp2code almost 2 years

    My VB skills are not the best, and this problem has had me stumped for a few days.

    In the list of controls shown in Visual Studio that are not defined in the code behind, I can "mouseover" them and the tooltip text pops right up.

    popup

    errors

    screenshot

    Similar questions:

    This one had no solution - 'var_name'is not declared. It may be inaccessible due to its protection level.' in debug mode

    This one said the solution was in the web.config, but I don't understand where/how - BC30451: 'MailValidation' is not declared. It may be inaccessible due to its protection level

    This one was a misspelled word - vb.net error: inaccessible due to its protection level

    Update - Here is another problem that might be a clue to what my problems are:

    In my Tools.vb module, I have a class to access LDAP.

    The namespace for the tools class is given in the login.aspx.vb code, yet login code does not recognize the tools class.

    missing tools

  • jp2code
    jp2code over 9 years
    That shouldn't be necessary, but I'll try it out. Every control in every page of the project does it, though.
  • jp2code
    jp2code over 9 years
    OK, that did not work. Apparently on a web page, all controls are already public.
  • Casey Crookston
    Casey Crookston over 9 years
    You were adding your update as I was typing. Off hand, not sure why you can't import FormsAuth. Maybe try cutting all of FormsAuth from Tools. Then creating a brand new class file called FormsAuth.vb, paste FormsAuth into the new class. But, I'm not sure this is the same problem as your listbox issue.
  • jp2code
    jp2code over 9 years
    Oddly enough, that is exactly what I did with the admin_reasons.aspx file with the lstReasonTypes error: I created a new file with almost the exact same name, copied and pasted all of the text from the HTML and code behind into that new file, and it had no problems. This project has about 40 files, though, so I hope I don't have to do that with each of them. :(
  • Casey Crookston
    Casey Crookston over 9 years
    Like some of the other comments above, something seems off with this solution. I've seen stuff like this before, where something somewhere gets corrupted and it takes a while to sort it out. Based on the sheer number of errors you get when trying to compile, I don't think you've yet found the real issue yet. 40 files is a lot, but it's not intolerable. If you get desperate, you may want to create a new project and a new solution and start porting over the files one at a time, starting with the class files, and making sure you can build often along the way.
  • jp2code
    jp2code over 9 years
    I would, but this project is a critical part of business here (timecards). Unfortunately, it is on a 2000 server that is supposed to go offline Jan. 1. I'm supposed to have it up by then ...and I didn't write this mess! {argh!}
  • jp2code
    jp2code over 9 years
    You know, actually creating new forms then copying and pasting the HTML and code into them isn't taking that long. I'll let you know how it goes.
  • Casey Crookston
    Casey Crookston over 9 years
    yeah, it goes pretty fast once you get rolling. I've had to do this a couple times when a project gets mucked up.
  • Martin Zabel
    Martin Zabel about 8 years
    So the answer is to use a more recent version of the Framework? If yes, please indicate it more clearly.
  • jp2code
    jp2code about 8 years
    Microsoft is ending 4.5.1. Perhaps it was buggy. That project in my original post has long since shipped and we do not have the code any longer. So, I cannot verify if your solution solves the problem.