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
Re: sevdatagrid: zeile einfügen 
Autor: bigbo$$
Datum: 06.08.07 12:05

ich habe das problem nun gelöst!

da ich eine extra Spalte für die Nummerierung in meiner Datenbank habe, und die Reihenfolge der Einträge wichtig ist, ist (bei mir) diese Funktion notwendig.
(siehe Excel, dort ist ee immer mal wieder nötig, an einer bestimmten Stelle, eine neue Zeile einzufügen.)

Mein Weg:
Über die Funtkion AddNew() einen neuen Datensatz einfügen und danach die Nummerierung ändern und die Spalte "Nr." neu sortieren (Grid1.ReSort).
Ich kann nur sagen, es funtkioniert!

Mein Code:

Private Sub cmdInsertRow_Click()
    'Zeile nach der markierten Zeile einfügen
    Dim x As Integer
    Dim zZeile As Integer
    Grid1.UpdateRow
 
    With Grid1
    If .SelCount = 1 Then 'anzahl der markierten zellen prüfen
        zZeile = Grid1.Row + 1
        .AddNew
        .CellNew(1) = .Text(Grid1.Row, 1) + 1 'zeilennr , nach markierter zelle 
        ' nehmen
        .CellNew(11) = Date 'heutiges Datum
        .CellNew(17) = "Punkt neu hinzu"
 
    'nummerierung ändern -> alle zeilen nach der markierten zeile, um eins 
    ' erhöhen (+1)
        For x = (Grid1.Row + 1) To (Grid1.Rows)
            DoChange Grid1, x, 0, x + 1
        Next
 
        'bei abbruch, zeilen neu nummerieren -> siehe cmdAbbrechen
    Else
        MsgBox "Bitte (nur) eine Zeile markieren!", 16, "Achtung"
    End If
 
    End With
 
  'Zeile 0 neu filtern -> damit neue nummerierung sichtbar -> eingefügte 
  ' zeile markieren
  'DoSort -> neu sortieren
  Grid1.ReSort 'nach bisherigen Kriterien wieder neu sortieren
 
  'eingefügte Zeile markieren -> focus
  Grid1.Row = zZeile
 
  lblPunkte.Caption = "Anzahl der Schweisspunkte: " & Grid1.Rows
  Grid1.AllowEdit = True
  Grid1.AutoUpdate = True
  Grid1.Refresh
 
End Sub
 
' Dauerhafte Änderungen am Datenbank-Inhalt vornehmen
Public Function DoChange(Grid As Object, _
  ByVal nRow As Long, _
  ByVal nCol As Variant, _
  ByVal NewValue As Variant, _
  Optional ByVal bRefresh As Boolean = True, _
  Optional ByVal bSilent As Boolean = False) As Boolean
 
  With Grid.Recordset
    ' zum gewünschten Datensatz wechseln
    .MoveFirst
    If nRow > 1 Then .Move nRow - 1
 
    ' Datensatz bearbeiten
    .Edit ' nur falls DAO
    If IsNumeric(nCol) Then 
      .Fields(nCol - 1) = NewValue
    Else
      .Fields(nCol) = NewValue
    End If
    .Update
  End With
 
  ' Ansicht im DataGrid aktualisieren
  If bRefresh Then Grid.RowRefresh nRow
 
  DoChange = True
  Exit Function
 
ErrHandler:
  If Not bSilent Then
    MsgBox "Fehler beim Aktualisieren des Recordsets!" & vbCrLf & _
      CStr(Err.Number) & " " & Err.Description, vbExclamation Or vbOKOnly
  End If
  DoChange = False
End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
sevdatagrid: zeile einfügen1.158bigbo$$03.08.07 15:07
Re: sevdatagrid: zeile einfügen822ModeratorDieter03.08.07 15:13
Re: sevdatagrid: zeile einfügen798bigbo$$03.08.07 16:23
Re: sevdatagrid: zeile einfügen780bigbo$$03.08.07 16:25
Re: sevdatagrid: zeile einfügen735rsvisionmaster03.08.07 23:31
Re: sevdatagrid: zeile einfügen937bigbo$$06.08.07 12:05

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