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 Tabelle updaten

Discussion in 'Office-Programme' started by Excalibur6, Jan 21, 2004.

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

    Excalibur6 Byte

    hi leute,
    ich hab ein Tabelle in die Datensätze eingeben werden und diese Sätze werden dann anhand bestimmter Werte wieder in eine weitere Tabelle sortiert eingefügt. in dieser tabelle gibt es nun eine spalte in der die platzierung eingetragen werden soll.
    sprich: der erste datensatz soll die platzierung 1 erhalten, der zweite die 2 usw.
    in pl/sql wäre das kein problem, doch mit dem vba komm ich nicht zurecht.

    könnt ihr mir da helfen?

    und ach ja, da man oracle nicht einfach so hat, muss man auf access ausweichen und access nervt ...
     
  2. Excalibur6

    Excalibur6 Byte

    hi,
    danke für deine hilfsbereitschaft. ich weiß das zu schätzen.

    also, es gibt nur eine tabelle und hat folgende struktur:

    startnummer text
    vorname text
    nachname text
    punkte_1 zahl
    tout_1 zahl
    solo_12_1 zahl
    solo_9_1 zahl
    solo_6_1 zahl
    punkte_2 zahl
    tout_2 zahl
    solo_12_2 zahl
    solo_9_2 zahl
    solo_6_2 zahl
    platzierung zahl (neu)

    nach eingabe von daten soll nun anhand der gesamtpunkte ((punkte_1 + punkte_2) und den anderen spalten) sortiert werden. wer nun am meinsten punkte hat, soll als platzierung der wert 1 bekommen. den select für die platzierung hab ich schon. nun soll ein ähnliches skript ablaufen wie von mir in pl/sql beschrieben, doch eben alles in vb.

    danke im voraus.
     
  3. neanderix

    neanderix Kbyte

    .. den du verwerfen solltest ;)

    Stimmt, heute gibt es gleich deren zwei: "ADODatabase" und "DAODatabase" ;)

    Als ersatz fuer das in alten Programmen und Programmbeislpielen genutze "Database" musst du "DAODatabase" verwenden - dann klappt's auch mit dem übersetzen ;)

    Hab mich selber gut 2 Jahre mit ORACLE herumgeschlagen (unter anderem das Billing einers TelCo-StartUp auf DB-Ebene durchgefuehrt - ja ich weiss, entsprach schon damals nicht ganz den Richtlinien ;) )

    Was dein Problem betrifft - wenn ich dran denke, setze ich mich heut Abend mal hin und las mir was einfallen - allerdings waere die Feldstruktur deiner Tabellen hilfreich.

    ausserdem guggich mal ob man nicht auf die zweite Tabelle vollstaendig verzichten und stattdessen auf eine gespeicherte Abfrage zurueckgreifen kann.
     
  4. Excalibur6

    Excalibur6 Byte

    danke erstmal, doch weitergeholfen hast du mir noch nicht so ganz.
    dass das redundante daten sind ist mir klar, doch das war nur ein lösungsansatz. rein theoretisch könnte ich auch eine weitere spalte von der quelltabelle anfügen und dort die platzierung eintragen. doch nur wie?
    wenn mir jemand sagen könnte, wie ich eine art cursor definiere (so wie bei oracle) und bei jedem durchgang eine variable um 1 erhöhe und diesen wert dann in die spalte als platzierung schreibe.
    mit vba macht das richtig probleme.
    man findet zwar einen lösungsansatz im netz, doch werden überall variablen folgender form deklariert:

    dim db as Database

    doch den datentyp "Database" gibts nicht.


    dass es keinen "ersten Datensatz" in einer db nicht gibt ist mir auch klar. da hast du mich wohl falsch verstanden. ich meinte mit ersten datensatz denjenigen, der bei einem select mit order by als erster zurückgegeben wird.

    in pl/sql würde der code folgendermaßen aussehen, wenn eine zusätzliche spalte platzierung in der tabelle xyz vorhanden wäre und nummer als primarschlüssel definiert ist:

    -------
    v_cnt number;
    begin
    v_counter:=1;
    for cur in (select nummer from xyz order by ...) loop
    update xyz set platzierung=v_cnt where nummer=cur.nummer;
    v_cnt:=v_cnt+1;
    end loop;
    commit;
    end;
    ----------
     
  5. neanderix

    neanderix Kbyte

    Warum?

    Das ist doppeltes vorhalten der Daten, als überflüssig.

    Du kannst jederzeit jede beliebige Sortierung per Abfrage erhalten.

    Es gibt keinen "ersten Datensatz" - jedenfalls nicht in rel. DBMS

    Volker
     
Thread Status:
Not open for further replies.

Share This Page