Hallo zusammen!
Ich oute mich als (bisher) stiller Mitleser!
Das Forum hat mir schon bei sehr vielen (Anfänger-) Fragen geholfen. Dafür vielen Dank!
Leider komme ich nun bei einem Punkt nicht weiter und bin schon seit Stunden am probieren. Ich kann jedoch leider die Ursache nicht eingrenzen.
Hintergrund (vielleicht etwas weit ausgeholt):
Ich habe auf Tabs jeweils einen DataGridView. Diesen fülle ich mit einer Datenbank Abfrage. Was auch prima funktioniert.
Nun füge ich in dem gleichen Sub 4 neue Spalten hinzu, welche ich jetzt gerne mit anderen Daten füllen möchte.
Aber genau da ist mein Problem. Ich habe mehrere Möglichkeiten zum Zellen beschreiben ausprobiert:
oder
Das Erstellen eines neuen Tabs und das Füllen geschieht hier:
Spoiler anzeigen
Der Bereich wo ich in den DataGridView schreibe sieht wie folgt aus:
Spoiler anzeigen
beides führt zu dem Ergebnis, dass ich auch das Geschriebene als Ergebnis in einer Msgbox angezeigt bekomme, diese gleich nach dem Schreibvorgang angezeigt wird.
Soweit so gut. Dann wäre der Sub auch schon am Ende.
Jetzt wird in dem DataGridView jedoch nichts angezeigt. Auch wenn ich die vorher befüllten Felder abfrage, dann ist der Value der Zelle Nothing
Meine Vermutung/Ansätze bisher:
Ich finde keinen weiteren Ansatzpunkt mehr auf mein Problem.
Ich hoffe hier auf weitere Ansätze oder die (hoffentlich doch einfache) Lösung.
Danke für Eure Hilfe!
Grüße aus Hessen
Jan
Ich oute mich als (bisher) stiller Mitleser!
Das Forum hat mir schon bei sehr vielen (Anfänger-) Fragen geholfen. Dafür vielen Dank!
Leider komme ich nun bei einem Punkt nicht weiter und bin schon seit Stunden am probieren. Ich kann jedoch leider die Ursache nicht eingrenzen.
Hintergrund (vielleicht etwas weit ausgeholt):
Ich habe auf Tabs jeweils einen DataGridView. Diesen fülle ich mit einer Datenbank Abfrage. Was auch prima funktioniert.
Nun füge ich in dem gleichen Sub 4 neue Spalten hinzu, welche ich jetzt gerne mit anderen Daten füllen möchte.
Aber genau da ist mein Problem. Ich habe mehrere Möglichkeiten zum Zellen beschreiben ausprobiert:
oder
Das Erstellen eines neuen Tabs und das Füllen geschieht hier:
VB.NET-Quellcode
- strSQL = "Select ...."
- Dim dtAdapter = New DataTable
- dtAdapter.Load(SQL.abfragenStarten(strSQL)) 'Abfrage Starten und einem DataTable zuweisen, um die Daten direkt in den DataGridView einzufügen.
- ' ### Neuer Tab erstellen ###
- 'Fügt dem Tab eine neue Seite hinzu. Als Vorlage wird "TabPageVorlage" genutzt.
- Dim newTabPage As New TabPage
- Dim newControl As New TabPageVorlage
- newControl.Location = New System.Drawing.Point(0, 0)
- newControl.Dock = DockStyle.Fill
- newTabPage.Controls.Add(newControl)
- tcKalkulationen.TabPages.Add(newTabPage)
- '// ### Neuer Tab erstellen ###
- Dim fDGV As New System.Windows.Forms.DataGridView
- fDGV = DirectCast(newTabPage.Controls.Item(0).Controls("dgvDaten"), System.Windows.Forms.DataGridView) 'Referenziert auf den DataGridView
- fDGV.DataSource = dtAdapter 'Füllt den DataGrid View mit den Daten aus der Abfrage
- dtAdapter = Nothing 'Adapter wieder leeren, ansonsten werden nur die neuen Daten unten angeschrieben.
- SQL.myConn.Close() 'Nachdem die Abfragewerte genutzt wurden, die Verbindung beenden.
Der Bereich wo ich in den DataGridView schreibe sieht wie folgt aus:
VB.NET-Quellcode
- For i = 0 To fDGV.Rows.Count - 1
- If Not String.IsNullOrEmpty(fDGV.Rows(i).Cells("Hauptlieferant").Value.ToString) Then 'Wenn Hauptlieferant angegeben ist, dann...
- strLLEReferenz = ""
- If Funktionen.artikel_LLE_gültig(fDGV.Rows(i).Cells("Ressflach").Value.ToString, fDGV.Rows(i).Cells("Hauptlieferant").Value.ToString, strDatum, Me.lblZielLand.Text.ToString, strLLEReferenz) Then 'LLE ABfragen
- 'fDGV.Rows(i).Cells(fDGV.Columns("LLE Referenz").Index).Value = "LLE - " & strLLEReferenz 'Schreiben scheint nicht zu funktionieren
- fDGV.Item(fDGV.Columns("LLE Referenz").Index, i).Value = "LLE - " & strLLEReferenz
- MsgBox("TEST: " & fDGV.Rows(i).Cells(fDGV.Columns("LLE Referenz").Index).Value.ToString & " - " & newTabPage.Text.ToString)
- Else
- 'fDGV.Rows(i).Cells("LLE Referenz").Value = ""
- fDGV.Item("LLE Referenz", i).Value = "" ' LLE Referenz
- End If
- SQL.myConn.Close() 'Nachdem die Abfragewerte genutzt wurden, die Verbindung beenden.
- End If
- Next i
beides führt zu dem Ergebnis, dass ich auch das Geschriebene als Ergebnis in einer Msgbox angezeigt bekomme, diese gleich nach dem Schreibvorgang angezeigt wird.
Soweit so gut. Dann wäre der Sub auch schon am Ende.
Jetzt wird in dem DataGridView jedoch nichts angezeigt. Auch wenn ich die vorher befüllten Felder abfrage, dann ist der Value der Zelle Nothing
Meine Vermutung/Ansätze bisher:
- Falsche DataGridView ausgewählt - Stimmt nicht, es wird der korrekte DGV angesprochen.
- Refresh und Update des DGV - Hat keinen Effekt darauf.
- Komischerweise haben viele Spalten und Zellen einen Schreibschutz - Es sind aber nicht die von mir beschrieben Spalten/Zellen betroffen.
Ich finde keinen weiteren Ansatzpunkt mehr auf mein Problem.
Ich hoffe hier auf weitere Ansätze oder die (hoffentlich doch einfache) Lösung.
Danke für Eure Hilfe!
Grüße aus Hessen
Jan