Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt Visual Studio

1) Warum funktioniert der Code bei dem einen Projekt, bei den anderen beiden aber nicht, bzw. bei dem einen Projekt nicht mehr (hat da ja mal funktioniert. Mir ist nur nicht klar welche Änderung da plötzlich quer schießt und warum)

Klaus Löffelmann

2004-07-06 21:05:45 UTC

Permalink

Hallo Marco,

hast Du Option Strict und Option Explicit eingeschaltet?

Etwas ausführlicherer Code wäre hilfreich, sonst wird's schwierig.
Insbesondere Code, aus dem hervorgeht, wo genau die Variablen deklariert
werden und wie du das Formular anzeigst.

Gruß

Klaus
---
Visual Basic .NET - Das Entwicklerbuch
http://entwicklerbuch.ichbrauch.info


Also, ich arbeite an einem VB Projekt und erstelle beim laden des Programm
Connection, Datenadapter,
Dataset und befülle alles.
Die notwendigen Variablen und Prozeduren befinden sich in einer Moduldatei
die eine Sub Main() enthält.
OK, Variablendeklaration
Friend frmMDI As New frmStart
Friend frmLoad As New frmLoad
Friend objConn As New System.Data.OleDb.OleDbConnection
Friend objAD As New OleDb.OleDbDataAdapter
Friend objDS As New DataSet
(ich bringe nicht den ganzen Code, wäre einfach zu viel).
OK, der ganze Ablauf im Modul funzt einwandfrei, auch das Dataset enthält
zum schluss
verschiedene Datenbanktabellen.
Ich muss auf diese Daten (deshalb lade ich Sie im Vorfeld) später im
Programm zugreifen.
Weil ich faul bin habe ich Dataset und adapter etc. mit Friend deklariert,
in der Hoffnung
eben dieses weiter verwenden zu können.
Aber ..... no.
frmLoad.Label1.Text = "Dataset enthält " &
objDS.Tables("tblKunden").Rows.Count & " Datensätze"
liefert im Modul einen korrekten werden.
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Wo liegt der Fehler ?
Kann ich die Variablen so nicht verwenden ?
--
mit freundlichen Grüssen
Marco Fischer
http://www.vb24.info

Marco Fischer

2004-07-07 04:03:39 UTC

Permalink

Hallo Klaus,

habe bis jetzt Option Strict und Option Explicit nicht angefasst.
Hier der Code der Moduldatei. Diese wird zum, Programmstart erfolgreich
ausgeführt und öffnet dann die Programmoberfläche:


Module ModStart

Friend frmMDI As New frmStart
Friend frmLoad As New frmLoad
Friend objConn As New System.Data.OleDb.OleDbConnection
Friend objAD As New OleDb.OleDbDataAdapter
Friend objDS As New DataSet
Private strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=" & Application.StartupPath & "\DBACC.mdb"

Sub Main()
Dim sSQL As String

frmLoad.Text = "Einen Moment bitte ..."
frmLoad.GroupBox1.Text = " Programmoptionen erstellen "
frmLoad.Label1.Text = "Startoptionen für das Programm werden
geladen"

frmLoad.Show()

'
#####################################################################
' Kundendaten im Dataset generieren

frmLoad.Label1.Text = "SQL String Kundendaten erstellen ..."
Application.DoEvents()
sSQL = "SELECT * FROM tblKunden"

frmLoad.Label1.Text = "SQL String Kundendaten erstellt ..."
Application.DoEvents()
frmLoad.Label1.Text = "Datenbankverbindung herstellen ..."
Application.DoEvents()

frmLoad.Label1.Text = "Datenadapter erstellen ..."
Application.DoEvents()

objAD = New OleDb.OleDbDataAdapter(sSQL, strConn)

frmLoad.Label1.Text = "Datenadapter erfolgreich erstellt ..."
Application.DoEvents()
frmLoad.Label1.Text = "Dataset generieren ..."
Application.DoEvents()

objDS = New DataSet("mACC")

frmLoad.Label1.Text = "Dataset wurde generiert ..."
Application.DoEvents()

Try

dbConnect()

frmLoad.Label1.Text = "Datenbankverbindung erfolgreich
hergestellt ..."
Application.DoEvents()

Catch ex As System.Exception

frmLoad.Label1.Text = "Datenbankverbindung erfolglos ..."
Application.DoEvents()
MsgBox(ex.Message, MsgBoxStyle.Exclamation, ex.Source)
Exit Sub
End Try

If objConn.State = ConnectionState.Open Then
Try
frmLoad.Label1.Text = "Dataset mit Kundendaten befüllen ..."
objAD.Fill(objDS, "tblKunden")
Application.DoEvents()

dbclose()

frmLoad.Label1.Text = "Dataset enthält " &
objDS.Tables("tblKunden").Rows.Count & " Datensätze"
Application.DoEvents()
Catch ex As System.Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, ex.Source)

End Try
End If


' Kundendaten im Dataset generieren Ende
'
#####################################################################

'
#####################################################################
' Auftragsdaten im Dataset generieren


frmLoad.Label1.Text = "SQL String Auftragsdaten erstellen ..."
Application.DoEvents()
sSQL = "SELECT * FROM tblAuftrag"

frmLoad.Label1.Text = "SQL String Auftragsdaten erstellt ..."
Application.DoEvents()
frmLoad.Label1.Text = "Datenbankverbindung herstellen ..."
Application.DoEvents()

frmLoad.Label1.Text = "Datenadapter erstellen ..."
Application.DoEvents()

objAD = New OleDb.OleDbDataAdapter(sSQL, strConn)

frmLoad.Label1.Text = "Datenadapter erfolgreich erstellt ..."
Application.DoEvents()
frmLoad.Label1.Text = "Dataset generieren ..."
Application.DoEvents()

objDS = New DataSet("mACC")

frmLoad.Label1.Text = "Dataset wurde generiert ..."
Application.DoEvents()

Try

dbConnect()

frmLoad.Label1.Text = "Datenbankverbindung erfolgreich
hergestellt ..."
Application.DoEvents()

Catch ex As System.Exception

frmLoad.Label1.Text = "Datenbankverbindung erfolglos ..."
Application.DoEvents()
MsgBox(ex.Message, MsgBoxStyle.Exclamation, ex.Source)
Exit Sub
End Try

If objConn.State = ConnectionState.Open Then
Try
frmLoad.Label1.Text = "Dataset mit Auftragsdaten befüllen
..."
objAD.Fill(objDS, "tblAuftrag")
Application.DoEvents()

dbclose()

frmLoad.Label1.Text = "Dataset enthält " &
objDS.Tables("tblAuftrag").Rows.Count & " Datensätze"
Application.DoEvents()
Catch ex As System.Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, ex.Source)

End Try
End If



' Auftragsdaten im Dataset generieren Ende
'
#####################################################################

' Programmoberfläche starten
frmLoad.Dispose()
frmMDI.ShowDialog()
End Sub

Sub dbConnect()
objConn = New System.Data.OleDb.OleDbConnection(strConn)
Try
objConn.Open()
Catch ex As System.Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Fehler
Datenbankverbindung")
End Try
End Sub

Sub dbclose()
If objConn.State = ConnectionState.Open Then
Try
objConn.Close()
Catch ex As System.Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Fehler
Datenbanktrennung")
End Try
End If
End Sub

End Module
--
mit freundlichen Grüssen

Marco Fischer

http://www.vb24.info


Hallo Marco,
hast Du Option Strict und Option Explicit eingeschaltet?
Etwas ausführlicherer Code wäre hilfreich, sonst wird's schwierig.
Insbesondere Code, aus dem hervorgeht, wo genau die Variablen deklariert
werden und wie du das Formular anzeigst.
Gruß
Klaus
---
Visual Basic .NET - Das Entwicklerbuch
http://entwicklerbuch.ichbrauch.info


Also, ich arbeite an einem VB Projekt und erstelle beim laden des Programm
Connection, Datenadapter,
Dataset und befülle alles.
Die notwendigen Variablen und Prozeduren befinden sich in einer Moduldatei
die eine Sub Main() enthält.
OK, Variablendeklaration
Friend frmMDI As New frmStart
Friend frmLoad As New frmLoad
Friend objConn As New System.Data.OleDb.OleDbConnection
Friend objAD As New OleDb.OleDbDataAdapter
Friend objDS As New DataSet
(ich bringe nicht den ganzen Code, wäre einfach zu viel).
OK, der ganze Ablauf im Modul funzt einwandfrei, auch das Dataset enthält
zum schluss
verschiedene Datenbanktabellen.
Ich muss auf diese Daten (deshalb lade ich Sie im Vorfeld) später im
Programm zugreifen.
Weil ich faul bin habe ich Dataset und adapter etc. mit Friend deklariert,
in der Hoffnung
eben dieses weiter verwenden zu können.
Aber ..... no.
frmLoad.Label1.Text = "Dataset enthält " &
objDS.Tables("tblKunden").Rows.Count & " Datensätze"
liefert im Modul einen korrekten werden.
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Wo liegt der Fehler ?
Kann ich die Variablen so nicht verwenden ?
--
mit freundlichen Grüssen
Marco Fischer
http://www.vb24.info

Was bedeutet der Objektverweis wurde nicht auf eine Objektinstanz festgelegt?

Die Fehlermeldung "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt" kann bei Ihrem E-Mail-Programm erscheinen, wenn dieses nicht als Standard-App festgelegt ist.

Was ist ein objektverweis C#?

Eine Eigenschaft in C# ist ein Member, der Zugriffsmethoden zum Lesen, Schreiben oder Berechnen des Werts eines privaten Felds verwendet, als würde es sich um einen öffentlichen Datenmember handeln.