Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: chappi am April 17, 2017, 04:51:36

Titel: Formular Wert in andere Tabelle schreiben
Beitrag von: chappi am April 17, 2017, 04:51:36
Hallo Leute,
ich habe folgendes Problem.
In einem Formular rufe ich unterandern zwei Werte auf, die nicht aus der Datenherkunft des Formulars stammen.
Die beiden Werte kommen aus der
Tabelle Artikel und heißen
Artikel und BezLabel.
Der Wert Artikel ist (eindeutig) aber der Wert BezLabel ändert sich alle zwei Tage und wir brauchen ihn ein paar hundert Mal am Tag.  Nun möchte ich ihn nach dem ändern in der Tabelle Artikel aktualisieren so das er beim nächsten Aufruf aktuell ist.
Nach langen Google habe ich gedacht ich setze eine Ereignisprozedur (Bei Geändert) mit folgenden Code (Beispiel):

Dim DB As DAO.Database
    Dim rs As DAO.Recordset

    Set DB = CurrentDb
    Set rs = DB.OpenRecordset("SELECT * FROM Tabelle")
    rs.FindFirst "DeinFeld" = DeinWert   '  richtigen Datensatz suchen
    If Not rs.NoMatch Then
        rs.Edit
        rs!feld2 = Me!Texfeld
        rs.Update
    End If
    rs.Close
    Set rs = Nothing
    DB.Close
    Set DB = Nothing
Leider ohne erfolg egal wie ich es verändere.
Bekomme immer einen Fehler in der Zeile:
rs.FindFirst "DeinFeld" = DeinWert   '  richtigen Datensatz suchen
Was bitte muss ich wo und wie eintragen oder liege ich komplett falsch.
Danke für eure Hilfe.
Chappi
Titel: Re: Formular Wert in andere Tabelle schreiben
Beitrag von: MzKlMu am April 17, 2017, 08:34:35
Hallo,
so etwas würde man ohne VBA mit einer einfachen Aktualisierungsabfrage machen.
Aber, wenn ich das richtig verstanden dürfte das ganze Vorhaben ohnehin nicht notwendig sein.
Du kannst einfach die 2. Tabelle mit in die Datenherkunft aufnehmen mit einer Verknüpfung über den Artikel.
Dann hast Du das Feld "BezLabe" stets aktuell zur Anzeige im Formular.
Eine Aktualisierung ist nicht notwendig. Das Feld "BezLabe" in der 1.Tabelle kannst Du dann ersatzlos löschen.

Wie kriegst Du denn die Tabelle mit den neuen Werten für "BezLabe" ?
Titel: Re: Formular Wert in andere Tabelle schreiben
Beitrag von: chappi am April 17, 2017, 09:23:01
Hallo Klaus,
ich glaube ich muss etwas weiter ausholen.
Leider funktioniert deine Lösung bei mir nicht so.
Das Feld BezLabel wird in dem Formular aus zwei Werten, die im Artikelstamm stehen zusammengefügt und mit Tagesspezifischen Werten ergänzt und dann zu verschiedenen Aufträgen und Kunden gespeichert.
Deswegen möchte ich den Umweg über ein drittes Feld machen um mir so Tipparbeit zu ersparen.
Die Werte kommen so in mein Formular

Private Sub Artikel_AfterUpdate()
If Me.Artikel.Column(0) <> "" Then
        Me.Bezeichnung = Me.Artikel.Column(1) (Bezeichnung + Bezeichnung2 sind ungebunden)
        Me.Bezeichnung2 = Me.Artikel.Column(2)
        Me.BezLabel = Me.Artikel.Column(3)
    End If
If Me.BezLabel = "" Then
        Me.BezLabel = Form_AquaKunde.Bezeichnung & " " & vbCrLf & Form_AquaKunde.Bezeichnung2
        Else
        Me.cm.SetFocus
    End If
End Sub


Oder fals nötig über eine Schaltfläche':
Private Sub Vorschlag_Click()
    Me.BezLabelAqua = Form_AquaKunde.Bezeichnung & " " & vbCrLf & Form_AquaKunde.Bezeichnung2

End Sub

Daher kann ich das BezLabel in der zweiten Tabelle nicht wie du vorgeschlagen hast entfernen.
Ich hoffe das war nicht zu umständlich erklärt.
Titel: Re: Formular Wert in andere Tabelle schreiben
Beitrag von: MzKlMu am April 17, 2017, 10:26:36
Hallo,
eine Datenbankregel sagt:
Felder die man jederzeit aus anderen Werten zusammensetzen kann, werden im Regelfall nicht gespeichert. Und ich sehe hier keinen Grund von der Regel abzuweichen.
Daher halte ich nach wie vor das ganze Vorhaben für überflüssig.
In einer Abfrage kannst Du beide Tabellen aufnehmen und die Verknüpfung über den Artikel herstellen. Und in dieser Abfrage kannst Du das Feld "BezLabel" dann als berechnetes Feld zusammensetzen. VBA ist dazu nicht notwendig, keinen Buchstaben.
Und das berechnet Feld hat gegenüber dem Feld in der Tabelle keine Nachteile, im Gegenteil, es ist automatisch stets aktuell.
Titel: Re: Formular Wert in andere Tabelle schreiben
Beitrag von: chappi am April 17, 2017, 14:16:45
Danke Klaus,

manchmal steht mann auf dem Schlauch.
Ich habe es wie du gesagt hast einfach über eine Verknüpfung gelöst.

Bis dann
Chappi