Office: (Office 2003) Werte aus Formular in Tabelle schreiben

Helfe beim Thema Werte aus Formular in Tabelle schreiben in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; So nun bin ich über diesen Satz gestolpert: Falls du die Änderungen in den Datensatz, der nur einmal/Tag vorhanden sein darf schreiben willst, dann... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von KASIC, 21. Oktober 2007.

  1. Werte aus Formular in Tabelle schreiben


    So nun bin ich über diesen Satz gestolpert:
    Falls du die Änderungen in den Datensatz, der nur einmal/Tag vorhanden sein darf schreiben willst, dann kannst du obigen Code verwenden.

    Ja und wie mach ich das wenn mehrere auf das Formular zugreifen? Kann ich dann muss ich doch folgendes unter Optionen einstellen (bitte berichtigen wenn ich falsch liege?): Default record locking --> Edited record???
     
  2. Du meisnt das Formular, das die Protokollierung auslösen soll?
    Auf "das" Formular greifen nicht mehrere zu. Jeder hat seine eigene Instanz davon.
    Ich würde auch das Form nicht an die Log-Tabelle binden, sondern nur per Recordset darauf zugreifen. Also Form ungebunden bzw. höchstens gebunden zur Anzeige, aber nicht für die Änderung und die Änderungen per Recordset abschicken. Du kannst auch kurz im Form ändern und dann sofort wieder auf Dirty=false stellen, damit der Recordset nicht gelockt ist.
    Was ich aus diesem Thread herauslas, ist ein gebundenes Form aber gar nicht notwendig.
     
    Josef P., 24. Oktober 2007
    #62
  3. Ja das Formular welches die Protokollierung durchführen soll. Was muss ich zusätzlich einstellen? Doch keine Default record locking -> Edited record
     
  4. Werte aus Formular in Tabelle schreiben

    So nun hab ich schon die erste Fehlermeldung: hier der Quellcode bis jetzt:

    Private Sub Form_Open(Cancel As Integer)


    Dim rst As DAO.Recordset

    Set rst = CurrentDb.OpenRecordset("SELECT * FROM tbl_EOD Where TagesProtokoll_Datum = " & DatumSQL(Date)) & ""


    With rst
    If .EOF Then ' kein DS mit Date() vorhanden
    '.. anlegen
    Else 'DS vorhanden
    '.. ändern
    End If
    .Close
    End With
    Set rst = Nothing


    End Sub

    und zwar meckert er bei ".OpenRecordset"
    mit der Meldung Type Mismatch
    Habe das Häckchen bei References auf MS DAO 3.6 gesetzt
    Warum meckert er?
     
  5. guck dir einmal die Klammern genauer an. *wink.gif*
     
    Josef P., 25. Oktober 2007
    #65
  6. gelöst
    Mittlerweile schaut der Code so aus:

    Private Sub Form_Open(Cancel As Integer)

    Dim rst As DAO.Recordset
    Dim Datenbank As Database
    Dim ProtSQL As String


    Set Datenbank = CurrentDb
    ProtSQL = "SELECT * FROM tbl_EOD Where TagesProtokoll_Datum = " & DatumSQL(Date) & ""

    'Set rst = CurrentDb.OpenRecordset("SELECT * FROM tbl_EOD Where TagesProtokoll_Datum = " & Str$(CDbl(Date)), dbOpenDynaset)
    Set rst = Datenbank.OpenRecordset(ProtSQL)


    With rst
    If .EOF Then ' kein DS mit Date() vorhanden
    rst.AddNew
    rst.Fields("TagesProtokoll_Datum").Value = Date


    rst.Update
    '.. anlegen
    Else 'DS vorhanden
    rst.Edit

    rst.Update
    '.. ändern
    End If
    .Close
    End With
    Set rst = Nothing


    End Sub

    Aber mich wundert warum er mir nicht das heutige Datum in die Textbox schreibt das hat er ja nun oder nicht?
     
  7. Mit dieser Routine schreibst Du den Datensatz in die Tabelle. Mit der Ansicht im Formular hat das noch nichts zu tun.

    Wobei: Das aktuelle Datum musst Du Dir nicht anzeigen lassen, das kennst Du auch so. Die anderen Felder werden ja durch eine Routine (Prüfung, ob bestimmte Textdateien vorhanden sind) aktualisiert. Das reicht eigentlich.
     
  8. Werte aus Formular in Tabelle schreiben

    Naja aber ich will schon das dann die Daten sichtbar sind:
    Der Code schaut nun so aus:
    Code:
     
  9. Zuerst einmal:
    Verwende bitte zur Darstellung des Codes auch die Code-Tags bzw. die entsprechende Symbolschaltfläche im Antwortfenster. So hat man eine bessere Übersicht.

    Dann: Der Code wird im FormOpen-Ereignis ausgeführt. Ob dort neben dem Datensatz-Anlegen mit Datum weitere Wertzuweisungen sinnvoll sind, kannst nur Du beurteilen (ich glaubte, verstanden zu haben, dass Aktualisierungen im Tagesverlauf eintreten). Daher hatte ich weiter oben um Darstellung des genauen Ablaufs gebeten.

    Es nützt nichts, irgendwas zu schreiben (was an der Stelle auch funktioniert), und gibt es ein neues Stückchen Sachverhalt, und dann muss wieder alles ganz anders werden. Also erst der Plan, dann die Aktion, und ich denke, wir wären schon längst fertig.
     
  10. Ich glaubte auch verstanden zu haben, dass die zehn Textboxen über einen Refresh-Button auf YES gesetzt werden, wenn bestimmte Dateien vorliegen. Also kann man den aktuellen Stand sehen.

    Dann brauchst Du nur noch eine Schaltfläche (ein Ereignis), worüber dann das Schreiben des Formularinhalts in die Tabelle vorgenommen wird.

    Zur Ansicht des Tabelleninhalt würde ich ein zusätzliches Formular mit absteigender Sortierung nach Datum einsetzen, wo Bearbeiten, Anfügen und Löschen auf False gesetzt sind. Dieses zweite Formular könntest Du aus dem ersten her aufrufen.
     
  11. Du hast recht.
    Also ich stell mir das so vor oder das ist mein Ziel:
    1. Beim Öffnen des Formulars soll egal welch Anwender es öffnet ein aktueller Zustand der Situation dargestellt werden. D.h. jeder Anwender will wissen ob diese oder jene Textdatei vorhanden ist. Ob der gestern angesprochene Outlook Ordner eine Email enthält und ob bestimmte Access-Tabellen bestimmte Kriterien erfüllen. Es sind insgesamt über 60 Textboxen die ihre Befüllung brauchen.
    2. Dieses Formular dient rein nur zum informieren des aktuellen Zustands mit der Ausnahme das eine Schaltfläche getätigt werden kann wenn aus den 60 Textboxen sich eine bestimmte Konstellation sich ergibt die es erlaubt den Tagesstand endgültig in der Tabelle abzulegen und nicht mehr änderbar macht.

    Am nächsten Tag soll nur mehr auf bestimmte Textboxen zugegriffen werden können die eine NachProtokollÄnderung erlauben (2 Textboxen). Für die Historie sollen aber die Textboxen in der Access-Tabelle kopiert werden so da
    s man immer weiß was ursprünglich am TagesProtokoll-Ende drin stand.

    Auch soll eine Email am Ende des TagesProtokolls erstellt werden der die Informationen des aktuellen Tages an einen bestimmten Verteiler versendet.
     
  12. zu Punkt #70
    ja es stimmt ein Refresh Button soll auch enthalten sein also insgesamt dann 2 Schaltflächen
    1. Schaltfläche für den Emailversand am Ende des Tages
    2. Schaltfläche für die aktualisierung des Zustandes
     
  13. Werte aus Formular in Tabelle schreiben

    Im FormOpen kannst Du eine direkte Zuweisung vornehmen (ist aktueller als das Lesen aus der Tabelle):
    Code:
     
  14. 3. Schaltfläche zum Schreiben in Tabelle
    Ins Ereignis Refresh
    Code:
    oder statt über Schaltfläche direkt schreiben.
     
  15. Also doch anders als ich angefangen hab:
    1. Im Formular OpenEreignis alles ermitteln und in die Textboxen schreiben lassen
    2. Per Tagesabschlup-Button (die erste Schaltfläche) die Daten in die Tabelle übertragen

    Hab ich das richtig verstanden?
     
Thema:

Werte aus Formular in Tabelle schreiben

Die Seite wird geladen...
  1. Werte aus Formular in Tabelle schreiben - Similar Threads - Werte Formular Tabelle

  2. Formular Berechnung

    in Microsoft Access Hilfe
    Formular Berechnung: Hallo, ich habe ein Problem, an dem ich mir im Moment die Zähne ausbeiße. Ich greife auf eine externe Excel - Tabelle als Datenbasis zu. Darüber habe ich eine Abfrage gelegt, um die relevanten...
  3. NACH Filter im Formular Min-Wert mit VBA

    in Microsoft Access Hilfe
    NACH Filter im Formular Min-Wert mit VBA: Hallo Zusammen, ich habe ein Formular basierend auf Tabelle im Formular möchte ich mit VBA den Prozentwert einer Spalte angeben. hierzu benötige ich den Min-Wert dieser Spalte soweit bin ich...
  4. Wert aus Formular-Feld an SQL-Statement übergeben

    in Microsoft Access Hilfe
    Wert aus Formular-Feld an SQL-Statement übergeben: Hallo werte Access-Helfer, ich möchte in einem Unterformular (neues Angebot anlegen) nur die Werte in einer DropSown-Box angezeigt bekommen, die zu diesem Hauptformular (Kontakte dieses Kunden)...
  5. Werte im Formular aus anderer Tabelle übernehmen

    in Microsoft Access Hilfe
    Werte im Formular aus anderer Tabelle übernehmen: Hallo, folgendes: Ich habe ein Formular mit Aktionen. Diese Aktionen haben alle einen Veranstalter. Die Veranstalter werden seperat in einer anderen Tabelle eingetragen als die Aktionen. Ich...
  6. Formular Werte in Tabelle schreiben

    in Microsoft Access Hilfe
    Formular Werte in Tabelle schreiben: Hi Leute Ich würde gerne ein Formular erstellen, welches per ButtonKlick die eingegebenen Werte in eine Tabelle speichert (bereits vorhanden). Wie bekomme ich das am besten hin? Mit MVB, einem...
  7. Berechneter Wert im Formular in Tabelle speichern

    in Microsoft Access Hilfe
    Berechneter Wert im Formular in Tabelle speichern: Hi, habe folgendes Problem: Habe in nem Formular ein Textfeld, das seinen Inhalt durch ne Funktion bekommt. [Bsp.: Steuerelementeinhalt: =Funktion()] Den von der Funktion berechneten Wert...
  8. Erstellen eines Textfelds in einem Formular, das einen Wert in einer Tabelle nachschlägt

    in Microsoft Access Tutorials
    Erstellen eines Textfelds in einem Formular, das einen Wert in einer Tabelle nachschlägt: Erstellen eines Textfelds in einem Formular, das einen Wert in einer Tabelle nachschlägt Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden