1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Access Langlaufrennen

Discussion in 'Office-Programme' started by schilling, Feb 26, 2003.

Thread Status:
Not open for further replies.
  1. schilling

    schilling Byte

    Hallo Access-Experten,
    ich habe folgendes Problem:
    Ich möchte für ein Ski-Langlaufrennen ein einfaches Auswertungsprogramm mit Access erstellen. Ist auch alles nicht schwer, habe nur ein Problem: Es gibt zwei Tabellen, in der einen werden die Starter erfaßt, in der anderen werden die Startklassen verwaltet. Zu jedem Läufer wird in einem Formular neben Name und Geschlecht etc auch das Geburtsjahr (z.B. 1973) erfaßt. Die zugehörige Startklasse soll anhand des Geschlechts (w oder m) und des Geburtsjahres automatisch aus der Tabelle Startklassen ermittelt werden. Das Problem liegt darin, dass es Startklassen gibt, die für mehrere Jahrgänge gelten (z.B. 1970 ? 1975). Wie kann ich über eine Aktualisierungsabfrage (oder auch anders) die jeweilige Klasse finden und dem Starter in die Tabelle schreiben? In der Tabelle Startklassen habe ich zwei Felder ?Jahrgang ab? und ?Jahrgang bis? angelegt, die Tabelle Strater hat das Feld Startklasse.
    Vielen Dank für Eure Hilfe.
     
  2. castanho

    castanho Kbyte

    Jain und nein.
    Also das gesamte Konstrukt ist VBA. Allerdings erzeuge ich einen SQL-String (strSQL = " ...") , also eine Anweisung, die die Jet DB-Engine versteht. Den übergebe ich an die Datenbankengine (dbs.openrecordset(strsql)) und fülle damit ein Recordsetobjekt (Rst).
    Prinzipiell ist es möglich, Abfragen zusammenzuklicken, und natürlich kann man dann den SQL-Text auch kopieren. Im vorliegenden Fall müssen aber noch die Inhalte von Formularfeldern als Vergleichsoperanden (..." & Me.Feldname & "...) eingefügt werden.
    Natürlich ist die Routine noch nicht vollständig, auch wenn sie so bereits lauffähig wäre. Allerdings ist ja denkbar, daß die Abfrage keinen Datensatz findet, das Recordsetobjekt (Rst) wäre dann leer. Bei dem Versuch, darauf zuzugreifen gäbe es einen Laufzeitfehler, den man abfangen müßte.
     
  3. Vyasa

    Vyasa Kbyte

    Ich verstehe zwar nix davon, aber es sieht sauberer, besser und auch interessanter aus als mein Vorschlag :-).
    Ist das SQL?
    Kann ich sowas auch per Mausklick bei den Abfragen erzeugen? Vermutlich nicht, oder?
     
  4. castanho

    castanho Kbyte

    Dim Dbs as Database
    Dim Rst as recordset
    dim strSQL as string

    set dbs = currentdb
    strsql = "SELECT Startklassen.Startklasse FROM Startklassen WHERE Startklassen.[Jahrgang ab] >= " & Me.Geburtsjahr & " AND Startklassen.[Jahrgang bis] <= " & Me.Geburtsjahr & " AND Startklassen.Geschlecht = " & Me.Geschlecht & ";"
    set rst = dbs.openrecordset(strsql)
    Me.Startklasse = rst!Startklasse

    Den Quelltext einem Button oder einem Formularereignis zuweisen und das Formular sucht sich die passende Startklasse selber.
    [Diese Nachricht wurde von castanho am 05.03.2003 | 11:13 geändert.]
     
  5. schilling

    schilling Byte

    Jau, Danke so geht es natürlich auch. Hätte ich auch selber drauf kommen können, aber ich hatte einen anderen Weg im Kopf. Habe aber Deine Empfehlung genutzt.
    Gruß Ralf
     
  6. Vyasa

    Vyasa Kbyte

    Kannst Du nicht einfach in einer Tabelle ein Jahresfeld und ein Startklassenfeld anlegen?

    Dann gehört zu jedem Jahr auf jeden Fall immer das richtige Startklassenfeld.
     
Thread Status:
Not open for further replies.

Share This Page