versuche mich nun gezwungener maßen in ado. die access datenbankverbindung scheint hergetellt zu sein. wie fülle ich nun meine editböxlis mit den inhalten aus der db. und wie fülle ich eine combobox mit den inhalten einer db ? -- gruesse rene
Aus dem Stehgreif würd ich sagen eine Schleife basteln in der Schleife immer rs.MoveNext() und die Werte in die Datenbank eintragen m_MeineListBox.AddItem(text);
C++:
m_MeineListBox.ResetContent(); // oder so ähnlich while rs.EOF == FALSE { m_MeineListBox.AddItem(text); // wobei ich nicht weiß mit welcher Methode du die Datenbank geöffnet hast rs.MoveNext(); }
.... aber vielleicht habe ich das ganze auch GAAAAANZ falsch verstanden
fangen wir mal ganz einfach von vorne an. wie connecte ich zur db (access) ? bei initialisierung sollen die felder alle leer sein. klickt man dann auf nächsten datensatz, soll der erste angezeigt werden. vorerst mal nur in einem editfeld. -- gruesse rene
Also ich kann dir schon helfen, wenn es den sein muss. Meinetwegen machen wir auch ein KLEINES Projekt zusammen. Aber eins müsste ich vorausschicken: Ich verwende keine abgleiteten Klassen die so "schön" unterstützt werden von der MFC. Einfach deshalb nicht weil du dann die einzelne Sätze aus der Datenbank nicht mehr kapseln kannst. Ich hab lieber eine CAdressen Klasse die sich dann selber in die Datenbank schreibt als eine CMeinDatenbankklasse die dann sehr feste Datenbestände liest und schreibt
Also entweder mit mir, den steinigen und beschwerlichen ( und konfusen *gg)Weg oder du wartest auf wen anderen. Sag mir Bescheid.
ich nehme den steinigen weg gerne an. es gilt 3 tabellen einzubinden. eine tblPlatine, eine tblKunde und eine tblSoftware. alle in einer db. nehme mal stark an das ich ein neues projekt amlegen soll, oder ? denn immo habe ich eine klasse crecordset im projekt und die willst du ja nicht. also wie gehen wir vor ? -- gruesse rene
na dann machen wir es mal hier. ich nehm mal nur die tblKunden her der Rest funktioniert dann eh ähnlich.
Also ich würds so machen. Eine Klasse erstellen für die Kunden. Ich hab sie CKunden genannt.
C++:
class CKunden { public: CKunden(void); ~CKunden(void); //private: //nacvhher wieder als aktiven Code und //Zugriffsfunktionen schreiben für die ganzen Variablen int m_ID; CString m_Vorname; CString m_Nachname;
// was halt so alles zusammenkommt
};
und ein Klasse die eine Liste auf alle Kunden enthält. Die hab ich CKundenListe genannt hier der header:
also lösche ich aus meinem bisherigen projekt vorher einfach die klasse crecordset ? noch was anderes löschen vorher ? oder neu anlegen ? wenn ich neu anlege mit welcher ansichtsklasse ?
ansonsten : gut verständlich ! wenn ich das richtig verstanden habe ist die klasse ckunden zum speichern der daten da. die klasse ckundenliste für die operationen und die funktion getkunden liefert mir den gewünschten kunden zur angegebenen id. korrekt ?
Leg dir ein Projekt an mit einem Dialogfenster. In OnInitDialog schreibst einfach rein CKundenListe kunden("C\download\\db1.mdb"); natürlich mit deinem Pfad wo deine Datenbank herumkugelt und mit dem richtigem Namen. Somit wird der Construktor aufgerufen und das teil beginnt Daten zu lesen. Kannst du überprüfen wenn du einen Haltepunkt in der While-Schleife machst. Ansonsten seh ich das genau so wie du ;-)