Registerreiter automatisch

Hallo!

Also ich habe mir mal gedacht ein Haushaltsplaner in vb.net zu schreiben, bin aber absoluter Neuling und habe schon im Design mein erstes Problem gefunden:

Ich will das die Monate in den Registerreitern angezeigt (is ja kein Problem) und - wenn der entsprechende Monat ist - aktiviert werden.
Sprich wenn ich den 5. Mai habe soll das Programm zum Registerreiter Mai springen.

Schon mal Vielen Dank im vorraus für die Hilfe!

Hallo

Das funktioniert so:

Me.TabControl1.SelectTab((New Date).Month-1)

Mit „SelectTab“ aktivierst du einen Tab (er muss vorhanden sein)
Mit „(New Date)“ erzeugst du ein Date-Object mit dem heutigen Tag als Default Value
Mit „.Month“ bekommst du den Monat des Datums, das im entsprechenden Date-Objekt gespeichert ist.
Und „-1“ deshalb, weil Januar der 1. monat ist (–> Somit „1“ als Ergebnis liefert), die Tabs-Aufzählung aber bei 0 beginnt.
Willst du das heutige Datum öfters benutzten, kannst es auch in einer Variablen speichern:

dim d as new Date
Me.TabControl1.SelectTab(dMonth-1)

Gruß,
Alex

Hallo!

Noch ein Vorschlag zur Lösung meines Vorredners: Wenn Du nicht den (VB-internen) Datentyp Date nimmst, sondern die Klasse DateTime , dann wird das ganze ein gutes Stück portabler…

Gruß,
Martin

Hallo,

danke erstmal! Ich habs mir irgendwie schwieriger vorgestellt aber hört sich recht einfach an.

Aber ich hab gleich noch ne Frage bezüglich des Speicherns der Werte ( Zum Beispiel das Datum und dazu entsprechende Ein - und Ausgaben) und zwar hab ich da nur die Auswahl zwischen einer SQL Datenbank und Access. Mit Access kenn ich mich nicht aus aber bei SQL DB muss doch immer ein Server gestartet sein. So und nu zu meiner eigentlichen Frage, wenn das Programm irgendwann mal fertig ist muss dann auch immer ein Server laufen oder geht das irgendwie anders?

Marc

Hallo

hat es so auch geklappt oder sich nur leicht angehört :wink:

[…] bei SQL DB muss doch immer ein Server gestartet sein.
So und nu zu meiner eigentlichen Frage, wenn das Programm
irgendwann mal fertig ist muss dann auch immer ein Server
laufen oder geht das irgendwie anders?

Es ist ja nur ein Prozess, der im hintergrund läuft. --> Das wäre das praktischste, wenn er durchgehend laufen würde.

Du könntest aber auch den Server jedesmal automatisch mit deinem Program starten und wieder beenden. Wenn du der einzige Nutzer bist, ist das ansich nicht das Problem, nur unnötig. (Ausser dein PC ist wirklich so langsam, dass ein Prozess mit 50MB RAM Verbrauch deine Performance runter zieht)
Wie das gehen könnte? Irgendwie so:
Beim starten des Programms:

 p as Process = Process.Start("xxx")

Beim beenden des Programms:

p.kill

Aber das wäre unschön, du schießt dann die db einfach ab. Lieber mit SQL mitteln starten und schließen, aber wie das geht, weiß ich nicht.
Einfach mal googlen.

Gruß,
AlexR

ps…
Mit der Klasse DateTime sieht das Ganze dann so aus:

Me.TabControl1.SelectTab((New DateTime).Month-1)

Nicht viel anders :wink: Aber wohl besser… Wusste nicht, das Date VB.NET spezifisch ist