| |

VB & DatenbankenDataGrid 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 FunctionVielen Dank für Eure Unterstützung |  |
 DataGrid spinnt | 847 | SpaXX2 | 18.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 |
  |
|
TOP! Unser Nr. 1 
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 EURWeitere Infos
|
|
|
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
|
|