Hi Experten!
Habe einen „Calender“ in mein VB-Programm eingebunden und will den nun programmieren!
Und zwar habe ich nebenan ein TextFeld und möchte, dass immer wenn ich ein neues Datum angeklickt wird die zupassenden Einträge kommen (die ich zuvor mal eingeben kann)!
Das heißt, dass er mir die einträge immer auf dem Datum speichter bei dem ich mich grad befinde!
Wie programmier ich das?? (Code etc.)
Weiters wäre es sehr praktisch wenn er mir zb. jedes Datum wo ein Eintrag vorhanden ist mit einer anderen Farbe makiert oder so! Ist denn das überhaupt möglich?
Ich danke für jede Meldung
mfg Daniel
Wie programmier ich das?? (Code etc.)
Also eigentlich ganz einfach:
Du platzierst eine Textbox ein Command Button (Caption = Speichern) und ein Calendar control auf die Form. Beim Click Event des Command Buttons instanzierst Du ein ADO.Connection dann connectest Du dich mit einem Connectionstring (benutze die Methode Open) auf eine beliebige Datenbank (die Du zuerst designen musst… aber das ist ja ein anderes thema).
Danach schreibst Du Dir ein geeignetes Insert Query zusammen (mit dem Aktuellen Datum welches Du aus dem Control rauslesen kannst und dem Text der Textbox) und führst das Query über die Execute Methode des ADO Objektes aus.
Klickst Du hingegen auf ein Datum des Calendars Control, instanzierst Du ein ADO.Recordset objekt und übergibst diesem ein SELECT Query indem du das ausgewählte Datum des Controls in die WHERE Klausel des SELECT Query übergibst. Das richtige Feld des Recordset Objekts synchronisierst Du dann mit der Text Eigenschaft des TextBox Controls. ACHTUNG : Vergiss nicht auf EOF zu prüfen, denn es könnte ja sein, dass Das SQL nichts zurückgibt. Ja, nun solltest Du das Aktualisieren implementieren. Am Besten machst Du das so: beim Change Event der Textbox, wechselst Du die Caption des Command Buttons auf „Aktualisieren“. Da nun der Command Button 2 sachen machen muss, wäre es vielleicht angebracht den Code den Du schon geschrieben hast, in eine Prozedur auszulagern die „Save“ heissen könnte. Nun kannst Du eine Prozedur schreiben die „Update“ heisst, und darin machst Du wieder ein ADO.Connection objekt welches sich wiederum mit dem Connecionstring über die methode Open an die Datenbank connected. Danach kannst Du ein Update Query schreiben welches den Datensatz in der Datenbank aktualisiert. Vergiss nicht das Datum wiederum in die WHERE Klausel zu schreiben, sonst updatest Du alle Datensätze.
Wenn Du ein ganz cleverer Bursche bist (und von dem gehe ich aus deiner Fragenstellung aus) kannst Du eine Globale Variable definieren von Typ ADODB.Recordset und das Verwendete ADODB.Recordset objekt welches Du schon beim SELECT verwendet hast für das Update benutzen. Schreibe einfach in das richtige Feld den neuen Wert rein und ruf die Update methode des Recordsets auf.
Nun musst du den Command_Click code anpassen. Zwar musst Du jetzt ein if statement schreiben um unterscheiden zu können ob Du updaten oder saven willst. Dafür kannst Du die caption des CommandButtons abfragen. Vergiss dann nicht nach dem Update die Caption des CommandButtons wieder anzupassen. Beim Form_Unload event zerstörst Du alle Objekte und machst alle Connections zu…
So das wars auch schon. Program ist Fertig.
Gruss
Giuseppe
ist leider .net aber vielleicht nützt es dir trotzdem.
http://www.c-sharpcorner.com/database/calendar.asp
gruss