vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
DB 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?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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()
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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???
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel