Kalenderwochen einer Combo einschränken

Moderator: ModerationP

Re: Kalenderwochen einer Combo einschränken

Beitragvon Gast » 02. Mai 2021, 10:54

Hallo,
Die Fehlermeldung kann ich nicht nachvollziehen.

Ich habe noch mal die controls gecheckt. Die Meldung kommt bei der Filter-Combo "Jahr:"
SQL
Code: Alles auswählen
SELECT DISTINCT Year([TDatum]) AS Jahr
FROM tblAlleTage;

tblAlleTage gibts nicht; aber das Feld steht in qryFormular1; also nach Austausch alles OK.
Keine Meldung kommt bei der Filter-Combo "Monat:", obwohl da auch tblAlleTage steht.
Warum kommt da die Meldung wohl nicht, was ja zu erwarten wäre?
Gruß Heinz
Gast
 

Re: Kalenderwochen einer Combo einschränken

Beitragvon KlausMz » 02. Mai 2021, 11:24

Hallo,
dieses Beispiil stammt aus einer anderen Datenbank von mir. Das Formular diente ja ursprünglich auch zum Anhaken von Feiertagen und anderen freien Tagen.
Das war ja bei Dir so nicht gefragt. Das habe ich daher vergessen anzupassen.
Falls Du diese Funktionalität haben willst, habe ich das korrigiert und hier oben noch mal neu hochgeladen.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 40104
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: Kalenderwochen einer Combo einschränken

Beitragvon knobbi38 » 02. Mai 2021, 12:54

Hallo Heinz,

hier noch als Nachtrag die Variant mit der Zuweisung einer Werteliste zu einer Kombobox(cboWeekNumber), ausgehend von einem bestimmten Datum:
Code: Alles auswählen
Private Sub InitWeeks(ByVal InitialDate As Date)

  Const CTL_NAME As String = "cboWeekNumber"

  Dim objCbo As ComboBox
  Dim dteTemp As Date
  Dim strItem As String
  Dim i As Long

  Set objCbo = Me.Controls(CTL_NAME)
  objCbo.RowSource = vbNullString

  For i = -21 To 21 Step 7
    dteTemp = InitialDate + i
    strItem = DIN_KW_JAHR(dteTemp)
    strItem = Replace(strItem, "/", ";") & ";" & strItem
    objCbo.AddItem strItem
  Next

  objCbo.Value = objCbo.ItemData(0)
End Sub

Die Kombobox ist 3-spaltig, mit KW/Jahr/KW+Jahr, wobei die 1. Spalte gebunden ist und die 3. zur Anzeige verwendet wird.
Für die Berechnung der Kalenderwoche mit Jahresangabe habe ich folgende Variante verwendet:
Code: Alles auswählen
Public Function DIN_KW_JAHR( _
    ByVal DasDatum As Date, _
    Optional Delimiter As String = "/") As String

 ' basierend auf einer Idee von:
 ' https://www.online-excel.de/excel/singsel_vba.php?f=48

  Dim dteKW As Date
  Dim intJahr As Integer

  dteKW = 4 + DasDatum - Weekday(DasDatum, vbMonday)
  intJahr = Year(dteKW)

  DIN_KW_JAHR = CStr((dteKW - DateSerial(intJahr, 1, -6)) \ 7) _
      & Delimiter & CStr(intJahr)
End Function


Gruß Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3263
Registriert: 02. Jul 2015, 14:23

Re: Kalenderwochen einer Combo einschränken

Beitragvon Gast » 03. Mai 2021, 18:10

Hallo Ulrich,
super, vielen Dank!
Die Private-Sub wird jetzt durch Form_Load gestartet und alles steht in der Combo.
Ich habe noch die Codezeile für Werteliste ergänzt, weil die Combo noch auf "Tabelle/Abfrage" stand.
Die Funktion DIN_KW_JAHR klingt so, als wenn Schaltjahre berücksichtigt sind. Das habe ich aber nicht gecheckt.
Ich lass das Formular mit in der DB. So hat man 2 Varianten und einen größeren Horizont.
Nochmals vielen Dank
Gruß Heinz
Gast
 

Vorherige

Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste