Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Access 2003 - Stundenachweis - Literatur Tipps

Begonnen von Hennes, Mai 24, 2011, 09:35:15

⏪ vorheriges - nächstes ⏩

Hennes

Hallo zusammen,

ich bräuchte bitte einen Literatur Tipp. Nachdem ich nun schon einige kleinere Access Lösungen entwickelt habe, möchte ich nun gerne einen Stundennachweis für Projekte bauen.

Eines der wichtigsten Elemente ist hierbei natürlich ein Kalender, auf dem man durch die Tage navigieren und sich anzeigen lassen kann, wer, was an welchem Tag für welches Projekt getan hat.

Mit dem vorhandenem Kalender Steuerelement aus Access bin ich nicht so recht zufrieden, da er nicht formatierbar genug ist (Stichwort Feiertage\Wochenenden farbig hinterlegen).

Ein "eigener Kalender" muss her. Leider war ich nicht in der Lage aus den vielen Beispielen die ich bei meiner Recherche gefunden habe genug Verständnis für die Materie zu entwickeln um selber los zu basteln und einfach eine Fremdlösung zu implementieren, ohne selber begriffen zu haben wie es geht, finde ich unbefriedigend.

Ich suche im Grunde also eine "Schritt für Schritt" Anleitung, die mit mir die einzelnen Stationen so eines Vorhabens abgeht, damit ich mir die nötige Logik\Befehle\Funktionen aneignen kann.

Gibt es da ein schlaues Buch, in dem so etwas als Beispiel durchexerziert wird? Wenn jemand da einen kleinen Kauftipp für mich hätte, wäre ich dankbar.

Gruß

Torsten

Hondo

Hallo
nein sicherlich gibts genau dazu kein Buch.
Aber erstell dir doch deinen Kalender selbst, das ist eine einfache Sache.
Dieser Artikel wird dir dabei helfen. Den KalenderCode kannst du sicherlich 1:1 übernehmen:
http://www.accessblog.de/archives/54

Gruß Andreas

Hennes

Bei einem Buch würde ich auch eher eines suchen wo so ein Kalender halt nur eines von mehreren Programmierbeispielen wäre, nicht eines das den Kalender als einzigen Themenschwerpunkt hat.

Danke für den Link - den werde ich mir jetzt mal zur Brust nehmen.

Gruß

Torsten

Hennes

Hello again,

das verlinkte Beispiel mit dem selbst gebauten Datepicker habe ich jetzt erfolgreich durchgearbeitet und es funktioniert als reine Datumsauswahl Funktion hervorragend. Nochmals vielen Dank dazu.

Leider bin ich damit aber erstmal nur den ersten Schritt gegangen und immer noch weit davon entfernt den Kalender so weit zu verstehen, dass ich ihn mir entsprechend abwandeln kann. Ich versuche es mal mit zwei Beispielen zur Erläuterung:

Ich hätte gerne einen Kalender als fixes Element meines Formulares.
Der Datepicker ist so beschaffen, dass er via Button geöffnet wird, ein einmaliges Klicken ein Datum auswählt und ihn wieder schließt.
Ich bekomme es hin den Befehl für das Schließen des Datepickers herauszunehmen, aber weiteres herumklicken im Datepicker ändert nichts mehr an der Datumsangabe die beim ersten Klick gesetzt wird, weil der Code eben vorsieht, dass das Datepicker Formular geöffnet, ein Datum gewählt und es danach wieder geschlossen wird.

Ich hätte aber gerne ein Kalender Element das als Bestandteil meines Formulares immer geöffnet bleibt und das ich zur Navigation durch meine Datensätze nutzen kann (Einen Mitarbeiter auswählen und durch seine Tätigkeiten "browsen") und das also bei jedem Klick ein Datum ausgibt.

Erweitertes Formatieren
Ich möchte gerne Wochenenden\Feiertage grau hinterlegen können.


Ich wäre also für Tipps dankbar wo man sich derartiges Wissen im Selbststudium aneignen kann. Tut es da z.B. eines dieser "Access Entwickler Handbücher" (gibt es ja für 2003) oder wäre ein Buch das sich auf VBA konzentriert besser? (wenn ja, kann jemand eines Empfehlen?).

Gruß

Torsten

DF6GL

Hallo,

"Ich hätte aber gerne ein Kalender Element das als Bestandteil meines Formulares immer geöffnet bleibt und das ich zur Navigation durch meine Datensätze nutzen kann "

das gibt es doch als Kalendersteuerelement in der (erweiterten) Toolbox...


Hondo

Hallo,
das KalenderControl ist ungeeignet da nur Datum angezeigt wird und kein zusätzlicher Text im Tagesfeld möglich.
Daher sollst du doch einen eigenen Kalender erstellen, und der Code zum Füllen der Kalendertage findest du im Datepicker Beispiel.
Verwende als Tag-Felder Bezeichnungsfelder und per Doppelklick kannst du über ein Eingabeformular Daten eintragen, die du mittels der Caption-Eigenschaft anzeigen lassen kannst.

Andreas

Hennes

Zitatdas gibt es doch als Kalendersteuerelement in der (erweiterten) Toolbox...
Das Kalendersteuerlement ist mir zu wenig formatierbar und ich möchte halt gerne was dazu lernen - was eigenes bauen.

ZitatVerwende als Tag-Felder Bezeichnungsfelder und per Doppelklick kannst du über ein Eingabeformular Daten eintragen, die du mittels der Caption-Eigenschaft anzeigen lassen kannst.
Das mit der Caption Funktion ist eine schöne Idee. Mir hätte auch ein Listenfeld oder ein Unterformular gereicht zum Anzeigen der Datensätze mit ausgewähltem Datum, aber so wäre es sogar noch eleganter.

Genau in deinem Vorschlag liegt aber mein Problem. Ich sehe mich noch nicht in der Lage den Code des Datepicker Beispieles soweit abzuwandeln, dass es bei jedem Klick auf ein Tagesfeld das entsprechende Datum ausgibt und würde genau das gerne ändern.

Bevor mir jetzt wer antwortet  - "lern mehr VBA"  ;D Genau das will ich ja gerne. Darum meine Bitte um einen "Buchtipp".

Ich möchte ungern einfach ein paar Bücher auf "gut Glück" kaufen.

Gruß

Torsten

Hondo

Hallo,
du brauchst doch nur 42 Bezeichnungsfelder auf das Formular malen und ihnen den Namen k1 bis k42 geben.
Dann einfach nur noch den Code kopieren:

Public Sub KalenderFuellen(Monat As Long, Jahr As Long)
    Dim I As Long, J As Long, d As Date, frm As Form
    Set frm = Forms("DatePicker")

    'Monatsanfang & -ende bestimmen
    datMonatsanfang = CDate("1." & Monat & "." & Jahr)
    datMonatsende = DateAdd("m", 1, datMonatsanfang)    'l;+ 1 Monat
    datMonatsende = DateAdd("d", -1, datMonatsende)    'l;- 1 Tag

    'Offset setzen
    Offset = Weekday(datMonatsanfang, vbMonday)    'l;vbMonday um die Woche mit Montag zu beginnen
    If Offset < 2 Then Offset = 8

    'Alle Labels zurücksetzen
    For I = 1 To 42
        frm("k" & I).BackColor = 16777215
        frm("k" & I).BorderStyle = 0
        frm("k" & I).Tag = ""
    Next I

    'Labels des vorherigen Monats setzen
    If Offset > 1 Then
        For I = Offset - 1 To 1 Step -1
            d = DateAdd("d", I - Offset, datMonatsanfang)
            frm("k" & I).Caption = Day(d)
            frm("k" & I).ForeColor = RGB(128, 128, 128)
            frm("k" & I).Tag = "premonth"
        Next I
    End If

    'Labels des aktuellen Monats setzen
    For I = 0 To Day(datMonatsende) - 1
        d = DateSerial(Jahr, Monat, I + 1)
        frm("k" & I + Offset).Caption = I + 1
        frm("k" & I + Offset).ForeColor = &H80000012

        If CStr(d) = Format(Now, "dd.mm.yyyy") Then
            frm("k" & I + Offset).BackColor = 65535
            frm("k" & I + Offset).BorderStyle = 1
        End If
    Next I

    'Labels des Folgemonats setzen
    For J = 1 To 42 - I - Offset + 1
        d = DateSerial(Jahr, Monat + 1, J)
        frm("k" & I + J + Offset - 1).Caption = J
        frm("k" & I + J + Offset - 1).ForeColor = RGB(128, 128, 128)
        frm("k" & I + J + Offset - 1).Tag = "nextmonth"
    Next J

End Sub


Der Kalender wird mit folgendem Aufruf aufgebaut:
KalenderFuellen month(now()), year(now())

Was ist daran schwierig?

Hennes

Hi,

schwierig ist für mich, den Kalender für mich anzupassen, weil ich eben den Code nicht verstehe, weswegen ich ja nach Rat suche, welche Literatur mich weiterbringen könnte.

Ich bekomme die 42 Bezeichnungsfelder schon "gemalt" ;) und betankt dank deinem Code, so dass die richtigen Tage angezeigt werden, aber wenn es dann zu dem Punkt kommt, wo ein Datum ausgegeben werden soll, indem ich auf ein "Tagesfeld" klicke, hängt es halt. Da bekomme ich Fehler wie:
"Objektvariable oder With-Block Variable nicht festgelegt".

Ich suche ja auch "Hilfe zur Selbsthilfe" und will gar nicht, dass jemand mit mir jeden Schritt durchgeht, das nervt nur den Helfer und wenn ich dann zum Thema Auswertung komme, habe ich wieder das Problem nicht zu wissen wie mein Bericht dann nach hinten raus aussehen soll.

Ich erinnere mich z.B. dass es seinerzeit als ich mit Access 97 angefangen hatte, einen Ratgeber in Papierform gab, mit monatlichen Ausgaben zum sammeln. Da waren immer Programmierbeispiele dabei und Erklärungen was man da eigentlich genau macht, damit man eben nicht nur die Beispiele runter programmieren, sondern sie auch abwandeln lernt.
Etwas in der Art, nur nicht unbedingt als Abo, sondern eben als fertiges Buch, das suche ich.

Gruß

Torsten