BSanders
BSanders

Reputation: 295

Error: "Reference to a non-shared member requires an object reference"

I am building a small app that is pulling script from within an object. I'm down to the portion where my code is pulling back the field from the object that has the script and I'm getting this error.

"reference to a non-shared member requires an object reference"

I'm not sure what to change or how to get around this. Does anyone out there have any suggestions?

Here is the code that i have so far. It's a simple app that has a combobox that you choose the company from and on button click it will get the script and show it in the textbox.

Here is my code:

Imports System.IO
Public Class Form1
    Public M3System As MILLSYSTEMLib.System
    Public M3Script As MILLCOMPANYLib.CScripting

    Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'On Error Resume Next
        Try
            Dim Approved As Integer

            ' Create a Millennium system obects
            M3System = CreateObject("MillSystem.System")
            M3System.Load("Millennium")

            'run login script
            Dim User As Object = M3System.Login()

            ' See if login worked
            If User Is Nothing Then
                'MsgBox("Login failed!")
                Approved = 0
            Else
                'MsgBox("Login successful")
                'if approved=1 then the user is able to access M3
                Approved = 1
            End If

            'populate combo box
            For Each Company In M3System.Companies
                cb_COID.Items.Add(Company.Field("co").ToString)
            Next

        Catch ex As Exception
            Me.Close()
        End Try


    End Sub

    Public Sub btn_LoadScript_Click(sender As Object, e As EventArgs) Handles btn_LoadScript.Click

        Dim CoCode As String = cb_COID.SelectedItem
        Dim script As String = M3Script.vbscript

        If IsNothing(cb_COID) Then
            MessageBox.Show("Select a Company Code")
        End If
        For Each CoCode In M3Script.co
            tb_Script.Text = script
        Next

    End Sub

Upvotes: 1

Views: 7122

Answers (1)

Nicholas Post
Nicholas Post

Reputation: 1857

I'm guessing that the line you are failing on is Dim script As String = M3Script.vbscript

If that is the case, it's because you are declaring the M3Script, but you are not creating an instance of it.

Try setting the object somewhere by adding M3Script = new MILLCOMPANYLib.CScripting to your code, or however you would load it (perhaps M3Script = CreateObject("MillSystem.Script")?)

Upvotes: 2

Related Questions