vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen & Antworten rund um sev-Komponenten
DataGrid2 - RowLoaded Problem (.Celltext = "...." in DB schreiben) 
Autor: LE-Tarantino
Datum: 23.03.05 06:38

Hallo zusammen,

bin zufällig über die sevDataGrid v2 gestolpert und bin wirklich begeistert! nur ein problem bekomm ich nicht in den griff.

folgendes szenario (beziehungen farbig hervorgehoben):

tblAufbau:
ID - Auto (Primär)
Name - Text
Schicht1 - Long
Schicht2 - Long
...
Schicht6 - Long
Gesamtdicke - Double
Gesamtkosten - Double

tblSchicht:
ID - Auto (Primär)
Name - Text
Kosten - Double
Dicke - Double

Das DataGrid zeigt die komplette tblAufbau. Die Felder Schicht1 bis Schicht6 sind über gebundene Combolisten mit der ID aus tblSchicht verknüpft.

Das Problem ist folgendes: Im RowLoaded Ereignis lasse ich die Summe aller (Einzel)kosten aus den gewählten Schichten berechnen und im Grid (Spalte Kosten) darstellen (analog dazu auch die Dicke). Dargestellt wird auch alles korrekt, nur leider werden die Werte nicht in die tblAufbau geschrieben (Spalte Gesamtkosten und Gesamtdicke). Ich weiß, daß im Recordset-Mode mit .CellText nicht geschrieben werden kann. Aber ich hab einfach keinen richtigen Code-Ansatz für ein BeforeUpdate oder AfterCellEdit Ereignis. Alle bisherigen versuche irgendetwas zu "tricksen" sind leider gescheitert.

Hoffe jemand von euch hat einen Tipp.... Danke schonmal im Voraus!

Hier der Code:
Private Sub Grid1_RowLoaded(ByVal nRow As Long, Item As sevDataGrid2.ListItem)
  Dim nID As Long
  Dim i As Integer
  dicke = 0
  kosten = 0
 
  With Item
  .CellText("Gesamtkosten") = ""
  .CellText("Gesamtdicke") = ""
   For i = 1 To 6
    'Schichtname für Schichten 1-6 ermitteln und anzeigen
    nID = Val(.CellText("Schicht" & i))
    .CellText("Schicht" & i) = ""
    If nID > 0 Then
      rs_schicht.Seek "=", nID
      If Not rs_schicht.NoMatch Then
        .CellText("Schicht" & i) = rs_schicht.Fields("Schichtname")
        dicke = dicke + rs_schicht.Fields("Schichtdicke")
        kosten = kosten + rs_schicht.Fields("Kosten")
      End If
    End If
    Next i
 
    .CellText("Gesamtkosten") = "" & kosten
    .CellText("Gesamtdicke") = "" & dicke
  End With
End Sub
Private Sub Grid1_FillComboBox(ByVal nRow As Long, ByVal nCol As Long, _
  oComboBox As sevDataGrid2.EditComboBox)
  Dim i As Integer
  For i = 1 To 6
  If nCol = Grid1.GetCol("Schicht" & i) Then
    With oComboBox
      ' Recordset erstellen und zuweisen
      Set .Recordset = db.OpenRecordset("SELECT SchichtID, Schichtname," & _
        "Material, Schichtdicke, Kosten FROM tblSchicht ORDER BY Schichtname")
 
      ' Spalte ID an das Datenfeld AufbauID aus dem DataGrid-Recordset binden
      .BoundColumn = 1
 
      ' Aufbauname-Spalte an die TextBox im EditMode binden
      .DisplayColumn = 2
 
      ' Breite der ComboBox festlegen
      .Width = 3100
 
      ' Aufklapphöhe der ComboBox auf 10 Zeilen festlegen
      .ListRowsMax = 8
 
      ' ID-Spalte ausblenden
      .ColVisible(1) = False
 
      ' Breite der Spalten setzen
      .ColWidth(2) = 1100
      .ColWidth(3) = 1100
      .ColWidth(4) = 450
      .ColWidth(4) = 450
 
    End With
  End If
  Next i
 
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataGrid2 - RowLoaded Problem (.Celltext = "...." ...867LE-Tarantino23.03.05 06:38
Re: DataGrid2 - RowLoaded Problem (.Celltext = "....&qu...581LE-Tarantino23.03.05 17:03
Re: DataGrid2 - RowLoaded Problem (.Celltext = "....&qu...578Kewi23.03.05 18:32
Re: DataGrid2 - RowLoaded Problem (.Celltext = "....&qu...610LE-Tarantino23.03.05 21:07

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel