Hallo Leute,
ich habe mich gerade bei VB-Paradise angemeldet und hoffe, dass ich mit meiner Frage im richtigen Bereich gelandet bin (dies ist mein erster Post in einem VB-Forum).
Ich versuche es mal zu erklären:
Ich arbeite an einem Programm, das Berechnungen mit Access-Tabellen anstellt. Die Access-Tabellen fülle ich am Anfang des Programms (in einem extra Modul) alle in ein einziges global definiertes DataSet ein.
Bei einer Oberfläche (Form) des Programms kann man sich in einer DataGridView Tabellenwerte anzeigen lassen. In dem Code dieser Form werden diese Tabellenwerte in Schleifen aus verschiedenen DataTables herausgefiltert. Zudem werden bei DataTable drei Spalten hinzugefügt.
Bis hierhin klappt alles.
Mein Problem:
Wenn ich von dieser Form auf die vorige Form zurückgehe und dann wieder auf meine Form gehe, tritt ein Fehler auf.
(Ich starte den Debug-Prozess nicht neu)
dt7 , dt5 und dt13 sind global definierte DataTables. Die Spalte "Gewicht" habe ich bei dt13 zuvor hinzugefügt. Wenn ich in der Form auf den Button "Zurück" klicke, lösche ich diese Spalte wieder mit dt13.Columns.Remove("Gewicht") .
Besagter Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Betroffener Codeabschnitt:
Dim Schlüssel_KM
dt13.Columns.Add("Gewicht")
For i = 0 To dt13.Rows.Count - 1
Dim Schlüssel_KM_K = dt13.Rows(i).Item("Komponentenmerkmale").ToString
Dim Name_KK = dt13.Rows(i).Item("Komponentenklasse")
If Schlüssel_KM_K = "" Then
Dim Rows1() As DataRow = dt5.Select("Name_KK = '" & Name_KK & "'")
If Rows1.Count > 0 Then
Dim Schlüssel_KM_KK = Rows1(0).Item("Komponentenmerkmale").ToString
If Schlüssel_KM_KK = "" Then
dt13.Rows(i).Item("Gewicht") = 0
Else
Schlüssel_KM = Schlüssel_KM_KK
End If
End If
dt5.Clear()
Else
Schlüssel_KM = Schlüssel_KM_K
End If
Dim Rows33() As DataRow = dt7.Select("Name_BEZ = 'Gewicht' AND Schlüssel_KM = '" & Schlüssel_KM & "'")
Dim Merkmalswert As String = Rows33(0).Item("Merkmalswert").ToString
If Merkmalswert <> "" Then
dt13.Rows(i).Item("Gewicht") = Merkmalswert '''''''''''''''''''FEHLER: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
'Merkmalswert = "" 'neu
Else
dt13(i).Item("Gewicht") = 0
End If
Next
Ich kann mir den Fehler nicht erklären, da dt15 doch global definiert ist und ich doch die Spalte "Gewicht" am Ende lösche. : /
Für jegliche Denkanstöße bin ich dankbar, da ich mich grad im Kreis drehe.
Liebe Grüße VBlisa
ich habe mich gerade bei VB-Paradise angemeldet und hoffe, dass ich mit meiner Frage im richtigen Bereich gelandet bin (dies ist mein erster Post in einem VB-Forum).
Ich versuche es mal zu erklären:
Ich arbeite an einem Programm, das Berechnungen mit Access-Tabellen anstellt. Die Access-Tabellen fülle ich am Anfang des Programms (in einem extra Modul) alle in ein einziges global definiertes DataSet ein.
Bei einer Oberfläche (Form) des Programms kann man sich in einer DataGridView Tabellenwerte anzeigen lassen. In dem Code dieser Form werden diese Tabellenwerte in Schleifen aus verschiedenen DataTables herausgefiltert. Zudem werden bei DataTable drei Spalten hinzugefügt.
Bis hierhin klappt alles.
Mein Problem:
Wenn ich von dieser Form auf die vorige Form zurückgehe und dann wieder auf meine Form gehe, tritt ein Fehler auf.
(Ich starte den Debug-Prozess nicht neu)
dt7 , dt5 und dt13 sind global definierte DataTables. Die Spalte "Gewicht" habe ich bei dt13 zuvor hinzugefügt. Wenn ich in der Form auf den Button "Zurück" klicke, lösche ich diese Spalte wieder mit dt13.Columns.Remove("Gewicht") .
Besagter Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Betroffener Codeabschnitt:
Dim Schlüssel_KM
dt13.Columns.Add("Gewicht")
For i = 0 To dt13.Rows.Count - 1
Dim Schlüssel_KM_K = dt13.Rows(i).Item("Komponentenmerkmale").ToString
Dim Name_KK = dt13.Rows(i).Item("Komponentenklasse")
If Schlüssel_KM_K = "" Then
Dim Rows1() As DataRow = dt5.Select("Name_KK = '" & Name_KK & "'")
If Rows1.Count > 0 Then
Dim Schlüssel_KM_KK = Rows1(0).Item("Komponentenmerkmale").ToString
If Schlüssel_KM_KK = "" Then
dt13.Rows(i).Item("Gewicht") = 0
Else
Schlüssel_KM = Schlüssel_KM_KK
End If
End If
dt5.Clear()
Else
Schlüssel_KM = Schlüssel_KM_K
End If
Dim Rows33() As DataRow = dt7.Select("Name_BEZ = 'Gewicht' AND Schlüssel_KM = '" & Schlüssel_KM & "'")
Dim Merkmalswert As String = Rows33(0).Item("Merkmalswert").ToString
If Merkmalswert <> "" Then
dt13.Rows(i).Item("Gewicht") = Merkmalswert '''''''''''''''''''FEHLER: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
'Merkmalswert = "" 'neu
Else
dt13(i).Item("Gewicht") = 0
End If
Next
Ich kann mir den Fehler nicht erklären, da dt15 doch global definiert ist und ich doch die Spalte "Gewicht" am Ende lösche. : /
Für jegliche Denkanstöße bin ich dankbar, da ich mich grad im Kreis drehe.
Liebe Grüße VBlisa