| |
VB.NET - Ein- und UmsteigerDB auslesen Monthcalendar Selectoin start/end | | | Autor: Knabber | Datum: 21.01.24 07:29 |
| Hallo
Ich kenne mich mit dem Monthcalender nicht so aus.
Wie kann ich per code bei einem Montcalender Tage selectieren.
Die Tage stehen in einer Access DB und werden im Datagridview angezeigt
Meine Idee war folgende.
Auslesen aus DB und im Datagridview anzeigen lassen
DGV auslesen und dann im Kalender selektieren.
habe folgenden Code, der aber nicht funktioniert.
For i As Integer = 0 To DGV.Rows.Count - 1
kalender_1.SelectionStart = CType(DGV.Rows(i).Cells(11))
kalender_1.SelectionEnd = CType(DGV.Rows(i).Cells(12))
Next Kann da jemand helfen? | |
Re: DB auslesen Monthcalendar Selectoin start/end | | | Autor: Manfred X | Datum: 22.01.24 10:42 |
| Hallo!
Mir ist nicht klar, ob einzelne Tage oder Datums-Spanne(n) im MonthCalendar hervorgehoben werden sollen.
Liegen die Daten in einer Datatable (geladen aus MS-Access), kann man wie folgt vorgehen:
'Beispieldaten in Tabellenspalte
Dim dt As New DataTable
dt.Columns.Add("Date", GetType(DateTime))
dt.Rows.Add(New Date(2024, 1, 1))
dt.Rows.Add(New Date(2024, 1, 5))
dt.Rows.Add({Nothing})
dt.Rows.Add(New Date(2024, 1, 15))
'Datumswerte fett darstellen (mc ist ein MonthCalendar)
For r As Integer = 0 To dt.Rows.Count - 1
If Not IsDBNull(dt.Rows(r)("date")) Then
mc.AddBoldedDate(DirectCast(dt.Rows(r)("Date"), Date))
Else
'was auch immer
End If
Next r
mc.UpdateBoldedDates() | |
Re: DB auslesen Monthcalendar Selectoin start/end | | | Autor: Knabber | Datum: 22.01.24 19:46 |
| Hallo,
Das hat leider nicht funktioniert.
Also: Ich versuche mal zu erklären
Ich habe auf der Form 12 Monthcalender (Jahresübersicht) allerding ein Externes Control (DotNetbar)
wenn Ich zur Laufzeit einen Bereich selektiere wird Automatisch das Startdatum und Enddatum
in je eine Textbox geschrieben
In der DB sind also Spalten Für das Startdatum und Enddatum Es sind auch schon Daten in der DB
Die Spalten sind "Datum_von", "Datum_bis"
Diese sind also in der DB vorhanden
Bei Programmstart sollen die Daten ausgelesen werden und in den Kalender übertragen werden.
Bei den Kalendern gibt es in den Einstellungen ein "SelectionRange) Ich habe mal ein
bißchen mit dem Code von dir rumgetestet aber leider ohne erfolg
DGV und Textboxen sind an der DB gebunden
Mein code Jetzt
Private Sub dateneinlesen(Datum_von As SelectionRange, Datum_bis As _
SelectionRange)
Dim dt As New DataTable
dt.Columns.Add("Datum_von", GetType(DateTime))
dt.Columns.Add("Datum_bis", GetType(DateTime))
For r As Integer = 0 To dt.Rows.Count - 1
If Not IsDBNull(dt.Rows(r)("Datum_von")) Then
kalender_1.SelectionRange = Datum_von
kalender_1.SelectionRange = Datum_bis
End If
end sub | |
Re: DB auslesen Monthcalendar Selectoin start/end | | | Autor: Manfred X | Datum: 22.01.24 21:07 |
| Hallo!
Das Windows.Forms.MonthCalendar-Control kann meines Wissens immer nur einen einzelnen
Datumsbereich per SelectionStart/-End oder Selectionrange (weniger empfehlensewert)
anzeigen.
Du kannst aber jeweils über einen Datumsbereich eine Tagesschleife laufen lassen
und jedes Datum im Bereich fett anzeigen.
Von Datum_von bis Datum_bis Adddays(1) in einerSchleife hochsetzen und im Control
dieses Datum fett markieren (vgl mein Beispiel). | |
Re: DB auslesen Monthcalendar Selectoin start/end | | | Autor: Knabber | Datum: 24.01.24 09:20 |
| Hallo
Sorry das ich mich erst jetzt melde (dringende andere Termine)
Habe deinen Rat soweit beherzigt aber ess gibt dabei immer noch Probleme
Habe im Designer eine Tabelle estellt mit "Datum_von" und "Datum_bis"
die Tabelle heisst "DT1"
Dim DT1 As TermineDataSet.DT1Row
For i As Integer = 0 To DT1.Row.Count - 1
If Not IsDBNull(DT1.Rows(i)("Datum_von")) Then
kalender_1.SelectionStart = CDate("Datum_von")
kalender_1.SelectionEnd = CDate("Datum_bis")
End If
Next i Ich wollte nun die Tabelle durchlaufen aber vb quarkt mich schon bei der ersten zeile an
For i As Integer = 0 To DT1.Row.Count - 1
Hier wird "DT1" wellenfömig unterstrichen.
weiss da erstmal nicht weiter
MFG
Knabber
Sorry das mit der Tabelle erstellen mache ich das erste mal | |
WinForm-Beispiel: Monthcalendar - BoldedDays | | | Autor: Manfred X | Datum: 24.01.24 12:34 |
| Hallo!
Eine Windows-Form:
Public Class frmMonthCalendarDemo
Dim mc As New MonthCalendar With {.Parent = Me, .Size = New Size(400, 400)}
Private Sub frmMonthCalendarDemo_Load(sender As Object, e As EventArgs) _
Handles MyBase.Load
'Eine Beispieltabelle
Dim dt As New DataTable
dt.Columns.Add("Datum_Von", GetType(DateTime))
dt.Columns.Add("Datum_bis", GetType(DateTime))
'Zwei Zeitspannen
dt.Rows.Add({New Date(2024, 1, 1), New Date(2024, 1, 7)})
dt.Rows.Add({New Date(2024, 1, 13), New Date(2024, 1, 19)})
dt.Rows.Add({Nothing, New Date(2024, 1, 31)})
Dim d As DateTime
For r As Integer = 0 To dt.Rows.Count - 1
If Not IsDBNull(dt.Rows(r)("Datum_von")) _
AndAlso Not IsDBNull(dt.Rows(r)("Datum_Bis")) Then
d = CType(dt.Rows(r)("Datum_von"), DateTime).Date
'Tagesschleife über die Zeitspanne
Do
mc.AddBoldedDate(d)
d = d.AddDays(1)
Loop While d <= CType(dt.Rows(r)("Datum_bis"), DateTime).Date
End If
Next r
mc.UpdateBoldedDates()
End Sub
End Class
Beitrag wurde zuletzt am 24.01.24 um 12:44:40 editiert. | |
Re: DB auslesen Monthcalendar Selectoin start/end | | | Autor: Knabber | Datum: 24.01.24 14:40 |
| Ja, als Einzelanwendung funktioniert das bestens.
Es wird eine neue Tabelle erstellt und Pseudodaten eingelesen. funktioniert auch super
Nun habe ich aber eine bestehende Tabelle im Designer erstellt (DT1). Wenn ich nun versuche
meine eigene Tabelle zu benutzen funktioniert das nicht.
also statt
Dim dt As New DataTable eben
Dim DT1 As DataTable oder mache ich hier einen grundsätzlichen Fehler??? | |
Re: DB auslesen Monthcalendar Selectoin start/end | | | Autor: Manfred X | Datum: 24.01.24 15:10 |
| Hallo!
Durch die Dim-Anwesisung mit dem Schlüsselwort New wird eine neue Instanz
der Datatable erstellt. Ohne das Schlüsselwort entsteht eine lokale Variable,
die den Zugriff auf eine Tabelle ermöglicht.
Diese Anweisung benötigst Du nicht, weil der Designer bereits eine Tabelle DT1
für Dich erstellt hat. Die kannst Du direkt nutzen. | |
Re: DB auslesen Monthcalendar Selectoin start/end | | | Autor: Knabber | Datum: 24.01.24 15:40 |
| Vielen dank für deine Mühe.
aber ich komme hier nicht weiter.
Ich glaube das es besser ist hier aufzuhören. Die Lösung steckt mit Sicherheit in deinen Posts
aber ich sehe hier den Wald vor lauter Bäumen nicht mehr.
Bisher hab ich eigentlich alles (mit Hilfe) hinbekommen.
In das Theme Datatable werde ich mich ert gründlich reinarbeiten müssen.
Ich bin nun ein paar Tage nur bei diesem Thema "Datatable, erstellen, Auslesen) und habs immer noch nicht geschnallt.
Warscheinlich werde ich erst damit weitermachen wenn ich mein bescheidenes Wissen etwas mehr aufgemöbelt habe.
Nochmals vielen Dank für deine Geduld und Mühe
MFG
Knabber | |
Re: DB auslesen Monthcalendar Selectoin start/end | | | Autor: Manfred X | Datum: 24.01.24 17:12 |
| Versuche esmit der Zeile
Dim dt as datatable = dt1 'untypisierte Referenz
und dann verwende meinen Code. | |
Re: DB auslesen Monthcalendar Selectoin start/end | | | Autor: Knabber | Datum: 24.01.24 19:06 |
| hallo,
da gibt es eine Fehlermeldung
Dim dt As DataTable = DT1 Der Verweis auf einen nicht freigegebenen member erfordert einen Objektverweis
Das würde ja bedeuten das mit der Tabelle die ich im Designer erstellt
habe etwas nicht stimmt richtig???
in der Tabelle stehen nur
"Datum_von" und "Datum_bis" ohne ID
und die Beziehung
TermineDataset-------------------DT1
Datum_von...................Datum_von
Datum_bis....................Datum_bis
Die ID und andere daten werden doch nicht benötigt ??? oder | |
Re: DB auslesen Monthcalendar Selectoin start/end | | | Autor: Manfred X | Datum: 24.01.24 22:12 |
| Du musst die Tabelle angeben. DT1 scheint ein Dataset zu sein,
in dessen Tables-Auflistung die Tabelle steht.
Also z.B. DT1.mytable | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats 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
|