collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 48
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13754
  • stats Beiträge insgesamt: 62828
  • stats Themen insgesamt: 8540
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Datzensätze in Abhängigkeit des Datums einfügen  (Gelesen 409 mal)

Offline Knopf

  • Newbie
  • Beiträge: 48
Datzensätze in Abhängigkeit des Datums einfügen
« am: Juni 14, 2017, 16:32:34 »
Hallo Experten!
 
Ich versuche eine Dateneingabe zu erstellen, bei der in einem Formular ein Anfangsdatum und ein Enddatum sowie einige Werte eingetragen werden. Nun möchte ich mir die Differenz der beiden Datumswerte als Anzahl Wochen ausgeben lassen.
 
Für jede dazwischen liegende KW möchte ich einen Datensatz erzeugen und die KW abspeichern. Aber: Es will mir nicht gelingen!! Das habe ich bisher gebastelt:
 
 
Sub DatumDifferenz()
 
Dim DatumStart As Date
Dim DatumEnde As Date
Dim I As Integer
Dim J As Integer
Dim rst As DAO.Recordset
Dim db As DAO.Database
 
DatumStart = Forms!for.Auftragsbeginn
DatumEnde = Forms!for.Auftragsende
 
 
Set db = CurrentDb
Set rst = db.OpenRecordset("tblMo")
`Hier sollte das Formular geöffnet werden, aber das musste ich nach vielen Versuchen aufgeben
 
 
For I = 0 To DateDiff("w", DatumStart, DatumEnde).Value – 1  `Das hier funktioniert überhaupt nicht
rst.AddNew
 
        rst.Fields(1) = Forms!forMob.AnfNrMob
    rst.Fields(2) = Forms!forMob.KGNr
    rst.Fields(3) = ?? `Hier sollte jetzt die jeweilige KW eingetragen werden, also KW von Startdatum + I
rst.Update
 
Debug.Print I
 
Next I
 
rst.Close
db.Close
 
End Sub

Ich hoffe ihr könnt mir helfen. Danke!!
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 166
Re: Datzensätze in Abhängigkeit des Datums einfügen
« Antwort #1 am: Juni 14, 2017, 17:28:01 »

 
For I = 0 To DateDiff("w", DatumStart, DatumEnde).Value – 1  `Das hier funktioniert überhaupt nicht

Nach welchem Prinzip programmierst du?
Trail and error?
Copy and paste?
Es gibt eine Hilfe für VBA.
Dort erfährt man alles zu einem Befehl.
Wenn man die nicht nutzen kann, vergeudet man seine Zeit.
10 Jahre Access
 

Offline Knopf

  • Newbie
  • Beiträge: 48
Re: Datzensätze in Abhängigkeit des Datums einfügen
« Antwort #2 am: Juni 14, 2017, 17:50:24 »
Ja, mein access-vba-skill-level liegt bei 0 und ich bin froh, dass ich überhaupt so weit gekommen bin. Ich kenne die Hilfe sehr gut nur hilft sie in diesem Fall leider nicht. Der Befehl Datediff () funktioniert an sich. Man kann es nur nicht = I setzten ubd ich weiß nicht was ich machen muss. Ist dieses Forum nicht für solche Fragen da?
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 166
Re: Datzensätze in Abhängigkeit des Datums einfügen
« Antwort #3 am: Juni 14, 2017, 18:06:37 »
DateDiff ist eine Funktion. Du kannst nicht einfach .Value anhängen. Dafür benötigt man ein Objekt.

Bevor du programmierst überleg dir eine Logik. Da liegt nämlich das Problem.
Die Schleife muss lauten.
For i = ErsteKalenderWoche + 1 To LetzteKlaenderWoche - 1

Das geht aber nur, wenn alle Kalenderwochen innerhalb eines Jahres liegen.

10 Jahre Access
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23047
Re: Datzensätze in Abhängigkeit des Datums einfügen
« Antwort #4 am: Juni 14, 2017, 18:39:22 »
Hallo,

konkret heißt das:

Sub DatumDifferenz()
 
Dim DatumStart As Date
Dim DatumEnde As Date
Dim I As Long
Dim rst As DAO.Recordset
Dim db As DAO.Database
Dim KwFirst as Long
Dim KwLast as Long



DatumStart = Forms!forMob!Auftragsbeginn   
DatumEnde = Forms!forMob!Auftragsende
 
If Year (DatumStart) <> Year (DatumEnde) Then Exit Sub

KwFirst = Datepart("ww", DatumStart, 2, 2)  'Achtung:  Wochenberechnung nicht nach DIN!
KwLast = Datepart("ww", DatumEnde, 2, 2)

Set db = CurrentDb
Set rst = db.OpenRecordset("tblMo", dbOpenDynaset)
 
 
For I = KwFirst To KwLast
rst.AddNew
 
    rst.Fields(1) = Forms!forMob!AnfNrMob
    rst.Fields(2) = Forms!forMob!KGNr
    rst.Fields(3) =  I
    rst.Fields(4) =Year(DatumStart)
rst.Update
 
Debug.Print I
 
Next I
 
rst.Close
db.Close
 
End Sub

Offline Knopf

  • Newbie
  • Beiträge: 48
Re: Datzensätze in Abhängigkeit des Datums einfügen
« Antwort #5 am: Juni 16, 2017, 17:28:31 »
Vielen Dank!!! Hat wunderbar geklappt :))