| |

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 | 848 | 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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere 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
|
|