vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 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

VB & Datenbanken
DataGrid spinnt 
Autor: SpaXX2
Datum: 18.02.06 13:58

Ich habe eine relativ umfangreiche Applikation, die u.a. Buchungen von Seminaren für die Mitglieder eines Lehrinstituts verwaltet. Die Anwendung zeigt die Buchungen je Mitglied in einem DataGrid an. Durch das dahinterliegende Recordset (ADO 2.6) kann navigiert werden, jeder ausgewählte Datensatz kann bearbeitet werden. Zum Beispiel kann ein bestehende Seminar storniert werden oder ein neues Seminar gebucht werden. Die entsprechenden Änderungen werden gespeichert, dass Recordset zum Anzeigen der Buchungsdaten wird geschlossen und mit den aktualisierten daten geöffnet. Nun das skurile: Dass DataGrid zeigt nurmehr die letzten 3 Spalten an. In der Datenbank ist jedoch alles richtig. Hier die aus meiner Sicht beiden wichtigsten Prozeduren bzw Funktionen:

Prozedur 1: Speichern der Änderungen
Private Sub cmd_BuchSave_Click()
 
If rsBuchIns.State = adStateOpen Then rsBuchIns.Close
    If FormState = 1 Then
        sqlBuchIns = "SELECT * FROM quy_BuchungenIns WHERE BuchungKeyId =" & _
          rsBuch!BuchungKeyId
    Else
        sqlBuchIns = "Select * FROM quy_BuchungenIns"
    End If
rsBuch.Close                                                            _
  'Recordset mit Buchungsdaten für DataGrid schließen um 
' Aktualisierungskonflikte zu vermeiden
rsBuchIns.ActiveConnection = connApp
rsBuchIns.CursorType = adOpenKeyset
rsBuchIns.LockType = adLockOptimistic
rsBuchIns.Open sqlBuchIns, , , , adCmdText
 
    Select Case FormState                                               _
      'Persistentes Speichern der Daten je nach Zustand des Formulars
        Case 1                                                          'Ändern 
        ' eines Datensatzes
            rsBuchIns!BuchungStateId = CInt(lbl_BuchStateId.Caption)
        Case 2                                                          'Status 
        ' = Anfügen eines neuen Datensatzes
            rsBuchIns.AddNew                                            _
              'Anfügen des neuen Datensatzes
            rsBuchIns!SeminarId = CInt(Text1(0).Text)                   _
            'Seminar-Nr.
            rsBuchIns!MemberId = MemberId                               _
            'Mitglieds-Nr
            rsBuchIns!BuchungStateId = CInt(lbl_BuchStateId.Caption)    _
            'Status-Nr, 0=reserviert, 1=gebucht, 2=storniert
            rsBuchIns!BuchungDate = Date
    End Select
rsBuchIns.Update
rsBuchIns.Close
FormState = 1
RecordsetBuchungenOpen              'Funktion zum Öffnen des Recordsets mit 
' Buchungsdaten
BindBuchungGrid                     'Ausgabe der Buchungsdaten in DataGrid
End Sub
Funktionen zum Öffnen des Recordsets

Function RecordsetBuchungenOpen()
 
If rsBuch.State = adStateOpen Then rsBuch.Close
sqlBuch = "SELECT" & _
  "MemberId,SeminarId,SeminarName,Dozent,BuchungDate,RechnungId,RechnungStateN" & _
  "me,RechnungDate,SeminarPreis,BuchungStateName,BuchungStateId, BuchungKeyId" & _
  "FROM quy_Buchung WHERE MemberId LIKE" & MemberId
rsBuch.ActiveConnection = connApp
rsBuch.CursorType = adOpenKeyset
rsBuch.LockType = adLockOptimistic
rsBuch.Open sqlBuch, , , , adCmdText
End Function
 
Function BindBuchungGrid()
 
If rsBuch.EOF = True And rsBuch.BOF = True Then
    MsgBox "Keine Buchungen"
    Exit Function
End If
 
Set DataGrid1.DataSource = rsBuch
DataGrid1.Columns("MemberId").Visible = False
DataGrid1.Columns(1).Caption = "Nr."
DataGrid1.Columns(2).Caption = "Seminar"
DataGrid1.Columns(3).Caption = "Dozent"
DataGrid1.Columns(4).Caption = "Buchungs-Datum"
DataGrid1.Columns(5).Caption = "Rechnung"
DataGrid1.Columns(6).Caption = "Status"
DataGrid1.Columns(7).Caption = "Rechnungs-Datum"
DataGrid1.Columns(8).Caption = "Summe"
DataGrid1.Columns(1).Width = 750
DataGrid1.Columns(2).Width = 3000
DataGrid1.Columns(3).Width = 2000
DataGrid1.Columns(4).Width = 1500
DataGrid1.Columns(5).Width = 1000
DataGrid1.Columns(6).Width = 1500
DataGrid1.Columns(7).Width = 1500
DataGrid1.Columns(8).Width = 1000
BindLabels
End Function
Vielen Dank für Eure Unterstützung
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataGrid spinnt847SpaXX218.02.06 13:58

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