Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Starthilfe für Access-Anfänger

Begonnen von pjo12345, August 28, 2010, 20:50:59

⏪ vorheriges - nächstes ⏩

pjo12345

 Hallo Leute,

ich möchte mich jetzt auch in die Welt von Access begeben. Habe dafür auch gleich ein schönes Projekt gefunden.

In unserer Firma müssen 2-3x am Tag ca. 50 Werte aufgenommen und archiviert werden. Da sich diese Werte nur in kleinen Schritten ändern bzw. nur ein kleiner Teil der Werte geändert werden muss, wäre es von Vorteil, wenn ich eine Möglichkeit hätte beim Start ältere Datensätze (oder den letzten) einzulesen, diese zu ändern und als neuen Datensatz abspeichern könnte. Es soll aber nicht möglich sein ältere Datensätze zu ändern und ihn wieder zu speichern! Also wenn die Daten von einem älteren Datensatz übernommen sind muss immer ein neuer Datensatz erstellt werden. Ich hoffe ich habe mich verständlich ausgedrückt.

Jetzt bräuchte ich nur ein bisschen Starthilfe. Was geht z.B.: mit Bordmitteln zu lösen, was mit VBA (einige Kenntnisse in VB vorhanden). Wie kann ich meine oben gestellten Aufgaben lösen. Eine Step by Step Anleitung ist nicht nötig. Einfach nur ein paar "Wegweiser".

Danke für eure Hilfe...

Gruß pjo12345
***Kommasetzung nach Gefühl*** (Trefferquote 90%)

MzKlMu

#1
Hallo,
Zitatich möchte mich jetzt auch in die Welt von Access begeben. Habe dafür auch gleich ein schönes Projekt gefunden.
Ich gehe davon aus, dass Du Access richtig lernen willst, daher:
Der Ansatz scheint mir schon mal falsch. Die Tabelle ist vermutlich aufzuteilen. Eine Tabelle die die unveränderlichen Daten hat (=Stammdaten) und eine Tabelle mit den veränderlichen Daten. In der Stammdatentabelle ist ein Primärschlüssel zu führen und in den Detaildaten ein Fremdschlüsselfeld. Über beide Felder muss eine Beziehung erstellt werden.

Erkläre mal den Aufbau der jetzigen tabelle und was das für veränderliche Daten sind.

Gruß Klaus

pjo12345

Also es werden Messwerte aufgenommen (Drücke, Temperaturen, etc.). Es können sich alle Werte ändern. Wichtig für den Anfang wäre mir erst einmal, dass ich nach dem Start der DB eine Auswahl der vorhandenen Datensätze habe. Aus diesen wähle ich einen aus, um die Daten in mein Formular zu übernehmen. Dann ändere ich diese und möchte sie wieder als neuen Datensatz abspeichern.
Soweit versuche ich erst einmal zu kommen. Danach sehe ich weiter.

Grüße....
***Kommasetzung nach Gefühl*** (Trefferquote 90%)

pjo12345

#3
Moin,

habe mal so einiges probiert. Stand der Dinge ist wie folgt:

- eine Tabelle erstellt für die Messwerte
- zwei Formulare (frmDatensätze und frmDateneingabe), im ersten werden die vorhandenen Datensätze aufgelistet (ID, Datum, Uhrzeit, Ersteller,...) und im zweiten Formular die Daten eingegeben bzw. geändert

Ich möchte jetzt in dem Formular "frmDatensätze" (mit den aufgelisteten Datensätzen) per Doppelklick auf die ID den entsprechenden Datensatz in meinem zweiten Formular "frmDateneingabe" (Dateneingabe/-änderung) aufrufen. Dabei soll ein neuer Datensatz erstellt werden und die Daten aus dem per Doppelklick ausgewählten Datensatz übernommen werden. Wie kann ich die ID ermitteln auf welche ich geklickt habe um dann diesen Datensatz auszuwählen? Wenn das geklappt hat, dann würde ich die Daten ändern und als neuen Datensatz abspeichern wollen.
Vieleicht hat ja noch jemand ein paar Anregungen für mich.

So denn....

Edit: Bin jetzt soweit, dass ich von dem per Doppelklick ausgewählten Datensatz die ID an eine Variable übergeben kann.

Private Sub ID_DblClick(Cancel As Integer)
    a = Me.ID.Text
    b = CLng(a)
End Sub


Wenn ich jetzt den Datensatz mit der entsprechenden ID als aktuellen Datensatz setzen möchte, habe ich das so versucht:

Private Sub ID_DblClick(Cancel As Integer)
    a = Me.ID.Text
    b = CLng(a)
    DoCmd.GoToRecord acDataForm, "frmDateneingabe", acGoTo, b
End Sub


Leider wird nicht der Datensatz mit der ID (z.B.: 5) aktiviert sondern der 5. vorhandene Datensatz. Wenn also die ID bei 10 beginnt dann wird der Datensatz 15 genommen. So will ich das aber nicht. Gibts eine Möglichkeit den Datensatz mit der ID (Primärschlüssel) Nr. X als aktiven Datensatz zu setzen?
***Kommasetzung nach Gefühl*** (Trefferquote 90%)

MzKlMu

Hallo,
das ganze Vorhaben ist eine Krücke. Du müsstest an Hand der ID den gleichen Datensatz mit einer Anfügeabfrage hinten anhängen. So wie Du es angefangen hast, geht es jedenfalss überhaupt nicht.
Aber das ist alles mehr als zweifelhaft. Lasse mal die Formulare und solche Dinge bei Seite bevor nicht das Datenmodell geklärt ist.

Wo werden die Gegenstände/Geräte erfasst die vermessen werden?
Was passiert mit den Messwerten, wird das ausgewertet?
Was wird noch erfasst, außer Messwerten?

Ziel in einer DB muss es sein, alles was mit der Datenstruktur zu tun hat ohne VBA alleine über das Datenmodell zu regeln.
Gruß Klaus

DF6GL

Hallo,

wenn ich richtig verstehe, ließe sich das Ganze (unter Berücksichtigung/Umsetzung der schon erwähnten Datenmodellierung) etwa wie folgt realisieren:


Endlos(!)formular mit Datenherkunft zur Tabelle erstellen mit folgenden Eigenschaften:

Bearbeitungen zulassen auf nein
Daten eingeben auf nein
Löschen zulassen auf nein


Weiterhin Daten"übernahme"   nach Vorgabe  www.donkarl.com/?FAQ4.22   realisieren, wobei nicht das Ereignis "Nach Aktualisierung , sondern "Beim Anzeigen" ("Form_Current") benutzt werden sollte.



pjo12345

Hallo,

@MzKlMu: Denke auch das der Weg über die Formulare nicht der Beste ist. Habe diese Strategie auch verworfen. Der Tipp von DF6GL war der richtige Weg.

@DF6GL: Danke für den Tipp. So gehts. Damit kann ich arbeiten.


Danke an alle, bis zur nächsten Frage....
***Kommasetzung nach Gefühl*** (Trefferquote 90%)

WhiteCrow

Zitat von: pjo12345 am August 29, 2010, 16:51:56

Der Tipp von DF6GL war der richtige Weg.

jou und so ist das immer mit d.Kerl ^^