collapse

* Benutzer Info

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

* Wer ist Online

  • Punkt Gäste: 84
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14160
  • stats Beiträge insgesamt: 68645
  • stats Themen insgesamt: 9248
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Recordset mit Bedingung ?  (Gelesen 11026 mal)

Offline asiat

  • Access-Profi
  • **
  • Beiträge: 103
Recordset mit Bedingung ?
« am: Februar 23, 2011, 16:01:28 »
Hallo,

Ich habe ein Endlosformular mit einer Tabelle  über Eigenschaften verbunden, in der Tabelle gibt es Felder mit Namen: Geburtsdatum, Alter und Alteram.  Wenn ich Geburtsdatum nicht kenne aber ungefähres alter kenne tippe ich nur alter in Feld "Alter " und aktuelles Datum in Feld "Alteram". mit den Jahren wird das alter nicht aktualisiert deswegen das Feld "Alteram" damit ich später ungefähres, aktuelles alter ausrechnen kann. nun die Frage, WIE.
ich habe mir sowas gedacht:
Code: Visual Basic
Private Sub Form_Load()
    'Wenn Geburtsdatum nicht eingegeben ist
   If IsNull(Me.Geboren) And Not IsNull(Me.Alter) Then
    Me.Alter = Me.Alter + DateDiff("yyyy", Me.Alteram, Now)
    End If
End Sub
das funktioniert nur bei den ersten Eintrag, soll aber natürlich für alle eintträge funktionieren

es soll nur das Jahr berücksichtigt werden.

weis jemand, wie man das in VBA lösen kann?

« Letzte Änderung: Februar 23, 2011, 16:08:50 von asiat »
 

Offline T417

  • Access-Profi
  • **
  • Beiträge: 380
Re: Recordset mit Bedingung ?
« Antwort #1 am: Februar 23, 2011, 16:47:12 »
Du könntest das alles doch auch über ein berechnetes Steuerelement lösen.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7
 

Offline asiat

  • Access-Profi
  • **
  • Beiträge: 103
Re: Recordset mit Bedingung ?
« Antwort #2 am: Februar 23, 2011, 21:24:58 »
ok..und was für Ausdruck soll ich da reinschreiben ?
 

Offline Jonny

  • Access-Meister
  • ***
  • Beiträge: 639
Re: Recordset mit Bedingung ?
« Antwort #3 am: Februar 24, 2011, 17:35:09 »
Hallo,
wenn Du als Datenherkunft eine Abfrage hast, was hier sinnvoll ist, kannst du eine freie Spalte nehmen und
dort das Alter berechnen. Da dich nur die Jahre interessieren könnte die Spalte so aussehen:
AktAlter: Jahr(Datum()) - Jahr(Geboren)
oder wie Deine Felder auch immer benannt sind.

Achtung! Diese Form der Berechnung ist genauso wie mit DatDiff berechnet nicht genau
wenn jetzt jemand ab März Geburtstag hat machst Du ihn ein Jahr älter.

Gruß

Johann
 
Folgende Mitglieder bedankten sich: asiat

Offline asiat

  • Access-Profi
  • **
  • Beiträge: 103
Re: Recordset mit Bedingung ?
« Antwort #4 am: Februar 25, 2011, 09:24:01 »
Hallo Jonny,

danke für deine noch einfachere Lösung.
für das was ich vor hatte habe ich so gemacht.

AktAlter: [Alter]+Jahr(Datum())-Jahr([Alteram])

Zitat
Achtung! Diese Form der Berechnung ist genauso wie mit DatDiff berechnet nicht genau
wenn jetzt jemand ab März Geburtstag hat machst Du ihn ein Jahr älter.
das macht nichts, denn das wollte ich auch so haben. (wollte ja nur ungefähres/aktuelles alter wissen)

Hallo T417 ,
ich würde auch gerne wissen wie du das mit berechnetes Steuerelement gemeint hast, also was man da eingeben muss.
 

Offline T417

  • Access-Profi
  • **
  • Beiträge: 380
Re: Recordset mit Bedingung ?
« Antwort #5 am: März 02, 2011, 14:22:12 »
Hallo, (wenn auch etwas verspätet)

mir schwebte etwas ähnliches wie Jonny vor.
Aber ich hatte kein Zeit zum testen, und ich wollte auch nichts falsches sagen. ;)


Gruß
T.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7
 
Folgende Mitglieder bedankten sich: asiat

Offline asiat

  • Access-Profi
  • **
  • Beiträge: 103
Re: Recordset mit Bedingung ?
« Antwort #6 am: März 03, 2011, 12:00:38 »
Hallo,

da habe ich mich aber zu früh gefreut   :(

das Problem ist jetzt, wo das Geburtsdatum bekannt ist wird durch diese..

AktAlter: [Alter]+Jahr(Datum())-Jahr([Alteram])

..Berechnung überschrieben.

Ich brauche so eine Berechnung mit bedienung, ist sowas möglich ?
 

Offline T417

  • Access-Profi
  • **
  • Beiträge: 380
Re: Recordset mit Bedingung ?
« Antwort #7 am: März 03, 2011, 12:26:18 »
Hallo,

Wenn ich das jetzt richtig verstanden hab, sollte dir nz() weiterhelfen.
Du willst ja verhindern das vorhandene Werte überschreiben werden.

Gruß
T.

Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7
 
Folgende Mitglieder bedankten sich: asiat

Offline asiat

  • Access-Profi
  • **
  • Beiträge: 103
Re: Recordset mit Bedingung ?
« Antwort #8 am: März 03, 2011, 13:03:56 »
ich beschreibe das Problem lieber nochmal, bin mir nicht sicher ob du so verstanden hast was ich gemeint habe.

Ich habe eine Tabelle: tbl_Kontakt
mit Feldern
Vorname, Name, Alter, Geburtsdatum

einen Endlosformular Formular : frm_Kontakt
Vorname | Name  | Alter | Geburtsdatum |

Dieses Formular wird nur zum Daten Anzeigen gedacht, nicht einfügen oder bearbeiten (Dafür ist ein anderes Formular gedacht).
also es geht jetzt nur um Daten Ausgabe !

wenn bei der eingabe kein Geburtsdatum bekann ist aber Alter, gibt man nur alter an. wenn Geburtsdatum bekannt, dann Alter und Geburtsdatum wird eingetragen.

so,  ein Jahr später wenn ich im Formular die Daten anschaue, dann sind Altersangaben nicht mehr aktuell.

wie kann ich aktuelles Alter anzeigen lassen ?

 

Offline T417

  • Access-Profi
  • **
  • Beiträge: 380
Re: Recordset mit Bedingung ?
« Antwort #9 am: März 03, 2011, 13:37:15 »
Hmm,

das ist nicht getestet, aber in einen ungebundenen Steuerelement auf ein Formular mit deiner Tabelle als Datenherkunft:
=Summe(nz([Alter]+Jahr(Datum())-Jahr([Alteram])))könnte funktionieren, falls Access es zulässt.


Gruß
T.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7
 
Folgende Mitglieder bedankten sich: asiat

Offline asiat

  • Access-Profi
  • **
  • Beiträge: 103
Re: Recordset mit Bedingung ?
« Antwort #10 am: März 03, 2011, 13:59:45 »
 :D :D :D
ich habe jetzt in jedem Eintrag im Feld Alter die Zahl 60



 

Offline T417

  • Access-Profi
  • **
  • Beiträge: 380
Re: Recordset mit Bedingung ?
« Antwort #11 am: März 03, 2011, 14:14:57 »
 :D Ähhh, :D
Also zumindestens bewirkt der Code etwas. ;D

Hast du das wirklich in einen ungebundenen Textfeld auf einen Formular (nicht Endlosformular), das als Datenherkunft deine Tabelle hat?
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7
 
Folgende Mitglieder bedankten sich: asiat

Offline asiat

  • Access-Profi
  • **
  • Beiträge: 103
Re: Recordset mit Bedingung ?
« Antwort #12 am: März 03, 2011, 14:21:35 »
nein, ich habe das für Endlosformular benutzt was als Datenherkunft meine Tabelle hat
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23531
Re: Recordset mit Bedingung ?
« Antwort #13 am: März 03, 2011, 14:25:56 »
Hallo,

dann lass die Geschichte mit dem Steuerelementinhalt und berechne das Alter in einer  Abfrage für das Formular....


http://www.donkarl.com/?FAQ2.7

Offline imp666

  • Access-User
  • *
  • Beiträge: 83
Re: Recordset mit Bedingung ?
« Antwort #14 am: März 03, 2011, 14:34:01 »
Du kannst als Datensatzquelle des Formulars bereits eine SELECT-Anweisung angeben, z.B. wie folgt:
Code: Visual Basic
SELECT  *, IIF(Geburtsdatum IS NULL;[Alter] + YEAR([Alteram])-YEAR([Alter]);[Geburtsdatum]) AS BerechnetesAlter FROM tblKontakt

Im Formular zeigst du dann im entsprechenden Feld den Wert von BerechnetesAlter an.
 
Folgende Mitglieder bedankten sich: asiat

 

RecordSet zusammengesetzt klappt nicht.

Begonnen von KnatterkopfBoard Access Programmierung

Antworten: 3
Aufrufe: 3365
Letzter Beitrag Mai 31, 2010, 09:50:11
von MzKlMu
Recordset in Access Runtime (2003) Umgebung

Begonnen von togo85Board Access Programmierung

Antworten: 4
Aufrufe: 3258
Letzter Beitrag August 10, 2010, 17:34:31
von togo85
Abfrage/Recordset per VBA in die Zwischenablage?

Begonnen von steve-wonderBoard Access Programmierung

Antworten: 5
Aufrufe: 6700
Letzter Beitrag November 19, 2010, 20:16:05
von lumbumba
DAO.Recordset

Begonnen von Bernie110Board Access Programmierung

Antworten: 13
Aufrufe: 7950
Letzter Beitrag Dezember 05, 2010, 19:55:43
von Josef P.
Probleme mit Recordset

Begonnen von JunoBoard Access Programmierung

Antworten: 13
Aufrufe: 7162
Letzter Beitrag Dezember 08, 2010, 09:45:44
von Juno