Neuigkeiten:

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

Mobiles Hauptmenü

Fortlaufendes Datum in einem Tabellenformular

Begonnen von Chris SZ, Januar 25, 2012, 13:35:32

⏪ vorheriges - nächstes ⏩

Chris SZ

Hallo,

ersteinmal ich bin ganz neu hier, also nicht böse sein wenn irgendwo Fehler.. Ich arbeite momentan an einer Mitgliederdatenbank, in der unter anderem die Beiträge erfasst werden sollen. Hier gibt es mehrere Felder. Einmal Mitglied seit, ab hier sollen dann die Beiträge jeweils erfasst werden. Monatlich und in Tabellenform. So wenn ich nun eine Zeile im Formular fertig habe, erscheint ja darunter eine neue Zeile, wie bekomme ich es nun hin, das dort gleich bei "Beitrag für Monat" Das vorherige Datum sprich Monat und Jahr plus ein Monat hinzu addiert steht.

Bin schon einmal für jede Antwort Dankbar.

Arbeite übrigends mit Access2010

bahasu

#1
Hi,

unten aufgeführtes Beispiel in a2003.

Im Formular gibt es beim Ereignis "Beim Anzeigen" die Zeile:
       Me.Buchung_Monat_Jahr.DefaultValue = Chr(34) & DateAdd("m", 1, DMax("Buchung_Monat_Jahr", "T1")) & Chr(34)
Sie addiert zum maximalen Datum aus dem Feld "Buchung_Monat_Jahr" einen Monat und setzt dieses Ergebnis als Default ein.

"T1" ist der Name der Tabelle.


Und dann gibt es noch:
Private Sub Form_Open(Cancel As Integer)
    Me.Buchung_Monat_Jahr.Format = "mm.yyyy"
End Sub

Das legt das Format der Datumsanzeige fest. Ich habe aus Vereinfachungsgründen ein Datumsfeld genommen, um die Rechnerei beim Monats-/Jahreswechsel mir zu ersparen.

Harald




[Anhang gelöscht durch Administrator]
Servus

Chris SZ

Ersteinmal Danke für die Lösung.

Wäre es auch möglich, das man in einem Formular eine Tabelle hat, in einem anderen Eingabefeld ein Startdatum angibt und dann in der "Tabelle" im Formular für jeden Monat bis zum jetzigen eine neue Zeile erstellt wird. Der aktuelle Monat sollte ganz oben stehen. Bei jedem Öffnen des Formulars soll das alles dann natürlich aktualisier/ergänzt werden.

Ein Dank schon einmal im vorraus. Aber meine Kenntnisse sind nicht die besten bin gerade am Anfang.

bahasu

Zitat von: Chris SZ am Januar 25, 2012, 21:57:48
Wäre es auch möglich,
ja


Zitat von: Chris SZ am Januar 25, 2012, 21:57:48
das man in einem Formular eine Tabelle hat, in einem anderen Eingabefeld ein Startdatum angibt
Ist dieses Eingabefeld gebunden (also in der Tabelle drin) oder ungebunden?


Zitat von: Chris SZ am Januar 25, 2012, 21:57:48
und dann in der "Tabelle" im Formular für jeden Monat bis zum jetzigen eine neue Zeile erstellt wird. Der
Soll die "neue Zeile" nur den ermittelten Inhalt (Monat+Jahr) enthalten oder ist das eine Tabelle, die in Bezug zu einem darüberliegenden Hauptformular steht? Dann steht wohl auch ein Verknüpfungs-ID zur Diskussion. {Mir fehlen Angaben zur Datenstruktur}


Zitat von: Chris SZ am Januar 25, 2012, 21:57:48
aktuelle Monat sollte ganz oben stehen.
Das sollte noch der einfachste Teil sein.


Zitat von: Chris SZ am Januar 25, 2012, 21:57:48
Bei jedem Öffnen des Formulars soll das alles dann natürlich aktualisier/ergänzt werden.
Was kann denn alles passieren, das etwas aktualisiert werden muß?


Harald
Servus

Chris SZ

Also das Startdatum wird in einem Extra Eingabefeld eingegeben. Sozusagen als Vertrags Anfang. Und ist im Hauptformular angegeben.

Also Habe mir das so vor gestellt oben als Hauptformular halt Name, mit einer ID, etc.  und dann ein Unterformular. In Tabellenform. Hier soll in jeder Zeile Monat und Jahr stehen also für den Monatlichen Beitrag, dann ein Haken um es als Bezahlt zu markieren, und eine Tabellenspalte für das Zahlungsdatum also das heutige Datum.

Und öffne ich das Formular nun im August, sollen die Monate vom Startdatum bis August angezeigt werden, öffne ich es nun im September wieder die Monate vom Startdatum bis September usw.


Hoffe du kannst mit den Informationen schon was Anfangen.

Gruß
Chris


bahasu

Hi,

kannst Du eine abgespeckte Datenbank zur Verfügung stellen?
Hätte den Vorteil, die Tabellen und Formulare schon mal zu sehen.
Wenn das geht, aber bitte im a2003-Format, da ich es mir nur ungern antue, mit ACCDB zu arbeiten.

Meine obige Frage nach dem Aktualisieren hatte als Hintergrund:
Ist es vorstellbar, dass ein so ermittelter Soll-Buchungswert auch mal - warum auch immer - gelöscht , geändert wird?
Wie sollte der "Automatismus" greifen: per Mausklick oder automatisch beim Programmstart?
Wenn so vollautomatisch, wird eine womöglich zuvor gelöschte Zeile wieder neu erstellt. Soll/darf das sein?

Muß es unbedingt einen "Haken" geben als Zeichen für bezahlt?
Wenn Du ein Buchungsdatum eingegeben hast, ist das doch schon auswertbar. (Geht in Richtung redundante Daten!)

Harald
Servus

Chris SZ

Mit einer 2003 Vesion wird schwer mir steht nur 2010 zur verfügung. Und beim Abspeichern in ner 2003 Version gabs letztens Probleme. Wenn du sagen würdest du würdest damit klar kommen dann mache ich es so nochmal.

Nein der Wert sollte nicht gelöscht und nicht geändert werden.

Der Automatismus am besten beim Programmstart.

Da keine gelöscht werden sollte wird auch keine neu erstellt.

Das mit dem Haken habe ich so noch nicht gesehen. Bin da relativ offen. Aso der Haken ist kein Muss.

Gruß
Chris

bahasu

Zitat von: Chris SZ am Januar 26, 2012, 19:52:41
Mit einer 2003 Vesion wird schwer mir steht nur 2010 zur verfügung

N'abend

Wenn mein a2007 die a2010-Datenbank lesen kann, dann zur Not auch das.
Werde aber frühestens am Wochenende Zeit haben.

Harald
Servus

Chris SZ

So hier dann mal eine gekürzte Version der Datenbank. Das Feld Vertragsbeginn soll der erste Monat sein von dem aus Hoch gezählt wird.

Schonmal danke fürs Anschauen.

Gruß
Chris

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

heisser Tipp (vermutlich schon tausendmal erwähnt):


Sorg als Allererstes für brauchbare (fehlervermeidende) Benamsung der Tabellen-, Feld- und Formularnamen.


Entferne/vermeide DRINGEND Leer- und Sonderzeichen in den Namen , wie  auch reservierte Wörter.



Ansonsten etwa so im Formular "Barzahlung/Überweisung"



Private Sub Form_Current()
Dim M As Long
If DCount("*", "Barzahlung/Überweisung", "Vertragsnummer= " & Me.Parent![Mitglieds-ID]) = 0 Then
   Me![Beitrag für Monat].DefaultValue = """" & Format(Me.Parent!Vertragsbeginn, "dd.mm.yyyy") & """"
Else
   Me![Beitrag für Monat].DefaultValue = """" & Format(DateAdd("m", 1, Nz(DMax("[Beitrag für Monat]", "Barzahlung/Überweisung", "Vertragsnummer = " & Me.Parent![Mitglieds-ID]), Date)), "dd.mm.yyyy") & """"
End If
End Sub 
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Chris SZ

Danke ersteinmal für deine Mühe. Das ist nun so wie ich es oben beschrieben habe und funktioniert auch einband frei, den Ratschlag mit ändern der Namen habe ich mir zu Herzen genommen und auch schon umgesetzt.

Jedoch kam ja noch eine Frage nach einer erweiterung. Das die Tabelle im Formular sich mit dem öffnen des Formulars oder auch von Access automatisch bis zum jetzigen Monat erweitert. Hat da jemand eine Idee wie man das Bewerkstelligen kann?

Lieben Gruß

DF6GL

Hallo,

"dumme" Frage: warum??

Es ist ungeschickt, Datensätze "im Voraus" und auf Verdacht anzulegen...

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

ebs17

ZitatEs ist ungeschickt, Datensätze "im Voraus" und auf Verdacht anzulegen...
Bei Stammdaten auf jeden Fall. Hilfstabellen bieten dagegen Möglichkeiten, um auf aufwändiges und evtl. fehlerbehaftetes VBA zu verzichten.

Beispiel:
- Hilfstabelle, die die Monatsersten fortlaufend und in einem ausreichenden Zeitraum enthält. Eine Anzeigeformatierung kann passend gewählt werden.
- Datenherkunft des Formulars:
SELECT H.Monatserster, S. Wert
FROM Hilfstabelle AS H LEFT JOIN Stammdatentabelle AS S
ON H.Monatserster = S.Monatserster
WHERE H.Monatserster < Date()

Mit Ausfüllen eines Wertes der Stammdatentabelle (Wert) wird der Monatserste in die Stammdatentabelle übernommen => Dummydatensatz wird zum Stammdatensatz.

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard

Chris SZ

Hi,

also es geht darum das ich ne Abfrage machen will wer für den Monat noch keinen Beitrag entrichtet hat. Allerdings gibt die ja keine Werte raus, wenn der Monat noch nicht vorhanden ist. Daher hätte ich halt gerne die Automatische erweiterung.

Weiß vielleicht jemand eine Lösung?

Gruß

DF6GL

Hallo,

dann erzeug eine Hilftabelle (die alle "Monatsersten" eines "übersehbaren" Zeitraumes  enthält  , wie ebs17 es schon erwähnt hat)  und erzeuge eine Abfrage wie hier beschrieben:

http://www.donkarl.com/?FAQ3.16
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access