Salut.
Ich bastel derzeit an meiner ersten DB-Anwendung (is auch mein erstes VB-Projekt) und fummel grad an meinen Datenbindungen rum, wie der Pennäler am BH seiner ersten Freundin. Folgendes Szenario:
SQL-ServerCE als lokale DB, Projekt ist eine Finanzdatenbank (Ja, ich weiß, davon gibts schon tausende. Aber nein, ich will das genau so hinschrauben, wie ich es haben will. Und außerdem will ich ja damit auch das VB-Proggen lernen).
Im Prinzip eine Tabelle mit den eigentlichen Buchungen sowie weitere Tabellen, in denen Werte stehen, die der Benutzer dann über schicke Comboboxen in seine Buchungen einklicken kann (sowas wie Fälligkeit, Zahlungsarten... ist nicht so von Belang hier).
Bisher hat es prima funktioniert
Dataset erstellt.
Relations definiert. Alle Tabellen binden sich über id-Spalten. Alle Detailtabellen sind der Buchungstabelle übergeordnet (1:n)
Forms für Detailtabellen gebastelt (ging superleicht in VB)
Hauptform gebastelt... alles schick für die Basisdaten, auch Detailtabellen über Combos eingebunden, die Werte werden als Integer im Buchungsdatensatz abgelegt. Datenbindung einwandfrei über Bindingsources.
Aber dann:
Da ich weitere Daten an so eine Buchung anklemmen will (die aber nicht für jede Buchung von Belang sind) habe ich weitere Tabellen, in denen sie abgelegt werden. Die sind verknüpft mit der Buchungstabelle über deren ID, also ist diesmal die Buchungstabelle übergeordnet. Auch dafür habe ich im DataSet entsprechende Relations (da mit Löschweitergabe) definiert.
Habe in meinem Buchungsformular ein Tabcontrol definiert mit mehreren Tabpages. Jede Page für eine dieser Zusatztabellen. Und dann ging der Zirkus los. Normalerweise würde ich sagen, ich ziehe aus den Datenquellen die Relation Buchung/[Zusätzliche Tabelle] einfach in die Tabpage, formatiere das entstehende DGV und schick ist. Ist aber nicht schick. Meine Datenquellen zeigen mir diese speziellen Relations nicht an! Die Relations, in denen meine Buchungstabelle untergeordnet ist, werden bei den jeweiligen Detailtabellen angezeigt, aber nicht die, wo meine Buchungstabelle übergeordent ist .
Habe ein DGV über die eigentliche Datatable einer Zusatztabelle eingebaut, aber Bingo: geht natürlich nicht. Bekomme eine Exception, weil die id des Buchungsdatensatzes nicht automatisch eingetragen wird. Was nicht anders zu erwarten war.
Hat jemand eine Idee, warum in meinen Datenquellen diese speziellen Relations nicht angezeigt werden?
Ich bastel derzeit an meiner ersten DB-Anwendung (is auch mein erstes VB-Projekt) und fummel grad an meinen Datenbindungen rum, wie der Pennäler am BH seiner ersten Freundin. Folgendes Szenario:
SQL-ServerCE als lokale DB, Projekt ist eine Finanzdatenbank (Ja, ich weiß, davon gibts schon tausende. Aber nein, ich will das genau so hinschrauben, wie ich es haben will. Und außerdem will ich ja damit auch das VB-Proggen lernen).
Im Prinzip eine Tabelle mit den eigentlichen Buchungen sowie weitere Tabellen, in denen Werte stehen, die der Benutzer dann über schicke Comboboxen in seine Buchungen einklicken kann (sowas wie Fälligkeit, Zahlungsarten... ist nicht so von Belang hier).
Bisher hat es prima funktioniert
Dataset erstellt.
Relations definiert. Alle Tabellen binden sich über id-Spalten. Alle Detailtabellen sind der Buchungstabelle übergeordnet (1:n)
Forms für Detailtabellen gebastelt (ging superleicht in VB)
Hauptform gebastelt... alles schick für die Basisdaten, auch Detailtabellen über Combos eingebunden, die Werte werden als Integer im Buchungsdatensatz abgelegt. Datenbindung einwandfrei über Bindingsources.
Aber dann:
Da ich weitere Daten an so eine Buchung anklemmen will (die aber nicht für jede Buchung von Belang sind) habe ich weitere Tabellen, in denen sie abgelegt werden. Die sind verknüpft mit der Buchungstabelle über deren ID, also ist diesmal die Buchungstabelle übergeordnet. Auch dafür habe ich im DataSet entsprechende Relations (da mit Löschweitergabe) definiert.
Habe in meinem Buchungsformular ein Tabcontrol definiert mit mehreren Tabpages. Jede Page für eine dieser Zusatztabellen. Und dann ging der Zirkus los. Normalerweise würde ich sagen, ich ziehe aus den Datenquellen die Relation Buchung/[Zusätzliche Tabelle] einfach in die Tabpage, formatiere das entstehende DGV und schick ist. Ist aber nicht schick. Meine Datenquellen zeigen mir diese speziellen Relations nicht an! Die Relations, in denen meine Buchungstabelle untergeordnet ist, werden bei den jeweiligen Detailtabellen angezeigt, aber nicht die, wo meine Buchungstabelle übergeordent ist .
Habe ein DGV über die eigentliche Datatable einer Zusatztabelle eingebaut, aber Bingo: geht natürlich nicht. Bekomme eine Exception, weil die id des Buchungsdatensatzes nicht automatisch eingetragen wird. Was nicht anders zu erwarten war.
Hat jemand eine Idee, warum in meinen Datenquellen diese speziellen Relations nicht angezeigt werden?
Ich code nur 'just for fun'! Damit kann ich jeden Mist entschuldigen, den mein Interpreter verdauen muss