Access 2003 datum von bis

guten abend

ich arbeite mit access 2003 und vba (anfänger)
in einer tabelle (tab_01) gebe ich ein datum_von und ein datum_bis ein. z.B
datum_von 13/10/2010
datum_bis 30/10/2010

in einer 2.tabelle (tab_02) möchte ich jedes einzelne datum angezeigt bekommen, was zwischen den beiden datumen liegt also 13/10/2010, 14/10/2010, 15/10/2010… bis zum 30/10/2010 einschliesslich.

da ich ja die Anzahl der Tage errechnen kann, stelle ich mir vor, dass ich ab dem datum_von eine schleife programmieren kann, die solange durchrechnet bis die Anzahl der Tage erreicht ist.
Kann mir jemand weiterhelfen oder auf einen link verweisen, der es mir ermöglicht diese aufgage zu lösen ?
Vielen Dank schon im Voraus

Hallo,

habe leider keine Erfahrung mit Access 2003, viel Glück bei der Suche.

Gruß Uwe

Hi.
Sorry, aber VBA in ACCESS - noch dazu 2003 - da bin ich überfragt.
Prinzipiell denke ich ist es der richtige Ansatz, über die Zahl der Tage zu gehen, mit den Grenzen min(date)=13.10 und max(date)=30.10. - aber dann bin ich mit meinem Latein auch schon am Ende.
Viel Erfolg.

Freundlich grüßt Ernie

Hallo maafr,
die Frage, die sich mir stellt ist:
sollen die Daten an die Tabelle tab_02 angehängt werden, oder soll diese immer wieder überschrieben werden. Im ersten Fall gibt es die Methode AddNew in VBA, im zweiten Fall müsste zuerste eine Tabelle erstellt werden.
Bitte um genauere Infos

Gruß

Hallo LukBaumann

danke für deine rückmeldung

ersteres trifft zu, die daten sollen in tab_02 angehängt werden.

ab einem bestimmten Datum zb. 15/02/2011 werden dann nur die daten eines bestimmten zeitraumes des vorjahres aus tab_02 gelöscht.

maafr

Hallo maafr,
sorry, dass ich mich so spät melde.
Das Problem ließe sich etwa folgendermaßen lösen:

Zunächst muss ein Formular erstellt werden, das die verschiedenen Datumsbereiche aus Tab01 anzeigt.Die Datenfelder heißen vonDatum und bisDatum.
Dieses wird mit einem Button versehen, dessen VBA-Code dann die Datumswerte in Tab02 einträgt.
Dieser könnte etwa so aussehen:

Dim Conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim datDatum as date
Dim inti as integer
Dim intAnzahl as integer

'Anzahl der Tage ausrechnen
intAnzahl = Me.bisDatum - Me.vonDatum

With rst
'Tabelle Tab02 öffnen
.Open „Tab02“, Conn, adOpenKeyset, adLockOptimistic
'Einen neuen Datensatz anhängen
.AddNew
'Das Feld „Datum“ füllen
.Fields(„Datum“) = Me.vonDatum
'Den neuen Datensatz speichern
.Update
'Schleife zum Eintrag der restlichen Datumswerte
For inti = 1 to intAnzahl
datDatum = Me.vonDatum + inti
.AddNew
.Fields(„Datum“) = datDatum
.Update
Next inti
.Close
End With
Set rst = Nothing
Set Conn = Nothing

End Sub

Ich hoffe das klappt so.

Viel Erfolg
LukBaumann

Danke für deine Antwort

Ich habe deinen code übernommen und angepasst(siehe unten).
Beim ablauf des codes bekomme ich bei der Zeile open „EL_abs_COURS“, Conn, adOpenKeyset, adLockOptimistic folgende Fehlermeldung : Object variable or With block variable not set.

Wenn ich open „EL_abs_COURS“, durch OpenTable „EL_abs_COURS“, ersetze bleibt die Fehlermeldung bestehen.

Könnte das Problem darinbestehen, dass es sich nicht um lokale Tabellen sondern um verknüpfte Tabellen aus einer anderen access Datenbank handelt (linked) handelt ?

Private Sub updateABS_Click()

Dim Conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim datDatum As Date
Dim inti As Integer
Dim intAnzahl As Integer

'Anzahl der Tage ausrechnen
intAnzahl = Forms!F_abs_LD!SUB_abs_LD_COURS!date_a -Forms!F_abs_LD!SUB_abs_LD_COURS!date_de

With rst
'Tabelle Tab02 öffnen
.open „EL_abs_COURS“, Conn, adOpenKeyset, adLockOptimistic

'Einen neuen Datensatz anhängen
.AddNew

'Das Feld „Datum“ füllen
.Fields(„jour_sem“) = Forms!F_abs_LD!SUB_abs_LD_COURS!date_de

'Den neuen Datensatz speichern
.Update
'Schleife zum Eintrag der restlichen Datumswerte
For inti = 1 To intAnzahl
datDatum = Forms!F_abs_LD!SUB_abs_LD_COURS!date_de + inti
.AddNew
.Fields(„jour_sem“) = datDatum
.Update
Next inti
.Close
End With
Set rst = Nothing
Set Conn = Nothing

End Sub

Grüsse
Maafr

Hallo maafr,

sorry, ich vergaß 2 Zeilen:

vor der Zeile „With rst“ müssen noch 2 Variablen gesetzt werden:

Set Conn = CurrentProject.Connection
Set rst = New ADODB.Recordset

Nun sollte es klappen.

Gruss LukBaumann

Volltreffer, vielen Dank für deine Hilfe LukBaumann

Grüsse aus Luxemburg

Hallo,

verwende eine Do Until - schleife - lese die beiden Datumswerte in Variablen ein und zähle hoch - schreibe den wert z.B. über ein SQL-Statement (Anfügeabfrage) bis der zweite Wert erreicht ist.

LG Thomas