collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 49
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13953
  • stats Beiträge insgesamt: 66359
  • stats Themen insgesamt: 8942
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Formulars für neue Datensätze ändert alle! datensätze  (Gelesen 540 mal)

Offline nimora

  • Access-Profi
  • **
  • Beiträge: 135
Hi,

wie oben beschrieben. ich habe ein formular, welches einträge in eine tabelle erzeugen soll. das funktioniert auch gut, aber nur einmal. beim zweitenmal erzeugt das formular auch einen zweiten eintrag, überschreibe aber auch den ersten eintrag mit den neuen daten.

db.Execute "INSERT INTO tblGehaelter(GehaelterVertraegeRID, NeuesGehalt, GehaltAb) VALUES('" & PrimSchl & "', '" & Gehalt & "', '" & GehaltStart & "')"
    DoCmd.Close

Reicht der beispielcode für eine erste beurteilung?

VG und danke
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1226
Re: Formulars für neue Datensätze ändert alle! datensätze
« Antwort #1 am: März 14, 2018, 10:33:02 »
In einem gebundenen Formular sorgt das Recordset des Formulars schon dafür, dass neue oder editierte Datensätze gespeichert werden, sofern keine Regelverletzung stattfindet. Das zusätzliche ausführen einer Anfügeabfrage würde den angezeigten Datensatz dann erneut schreiben. Der Code scheint also kontraproduktiv und total überflüssig zu sein.l
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: nimora

Offline PhilS

  • Administrator
  • Access-Profi
  • *****
  • Beiträge: 332
    • Tipps zu Access, VBA, SQL und Co.
Re: Formulars für neue Datensätze ändert alle! datensätze
« Antwort #2 am: März 14, 2018, 10:42:45 »
beim zweitenmal erzeugt das formular auch einen zweiten eintrag, überschreibe aber auch den ersten eintrag mit den neuen daten.
Ergänzend zu Lachtaube's Anmerkung:
Dass ein zusätzlicher, neuer Eintrag erzeugt wird, ist "normal" (wenn auch nicht sinnvoll), dass der gezeigte Code einen bestehenden Datensatz überschreibt, ist jedoch nicht möglich. Das muss eine andere Ursache haben.
Neues Access 2019 Feature angekündigt: Modern Charts
 

Offline nimora

  • Access-Profi
  • **
  • Beiträge: 135
Re: Formulars für neue Datensätze ändert alle! datensätze
« Antwort #3 am: März 14, 2018, 14:28:54 »
danke für die antworten.

das stimmt meine struktur nicht.
ich habe ein form samt tabelle für verträge und ein subform samt tabelle für gehälter.

im form verträge möchte ich per button ein neues gehalt eintragen, was das subform öffnet.
DoCmd.OpenForm "frmGehalt", WindowMode:=acDialog, OpenArgs:=Me!VertragIDhier war bisher ein okaybutto mit oben genannten code eingefügt. aber auch ein button der den datensatz speichert liefert nicht das richtige bzw. gar kein ergebns. es erfolgt kein eintrag.

Die tabllen sind über einen fremdschlüssen in der gehältertabelle und der vertragsID miteinander verbunden.

es soll in der gehältertabelle also natürlich der bezug zum vertrag hergestellt werden.

scheinbar habe ich da mal wieder ein brett vorm kopf.

Habt ihr bitte noch einen helfenden hinweis?

@PhilS es ist in der tat komisch, dass der erste datensatz überschrieben wird, dennoch findet es statt. :(
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7268
Re: Formulars für neue Datensätze ändert alle! datensätze
« Antwort #4 am: März 14, 2018, 14:39:23 »
Hallo,
der Begriff Subform ist schon mal falsch. Als Subform bezeichnet man ein Formular das als Unterformular in das Hauptformular eingebunden ist.
Du öffnest per Code ein eigenständiges Formular und kein Subform.

Weiterhin wäre es tatsächlich einfacher und eleganter wenn das jetzige Formular "frmGehalt" tatsächlich als Unterformular verwendet werden würde. Dann könnte man die Gehälter zum Vertrag direkt anzeigen und auch ändern bzw. ein neues Gehalt eintragen. Das Ufo (frmGehalt wäre dann das Subform) und das Hafo sind über die Schlüsselfelder zu verknüpfen.
Dann braucht es überhaupt keinen Code, keinen Buchstaben.

Zeige mal ein Bild des Beziehungsfensters.
Gruß
Klaus
 
Folgende Mitglieder bedankten sich: nimora

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1226
Re: Formulars für neue Datensätze ändert alle! datensätze
« Antwort #5 am: März 14, 2018, 14:42:44 »
Wenn das zu öffnende Formular gebunden ist, verwende diesen Aufruf, um einen neuen Datensatz anzulegen.   DoCmd.OpenForm "frmGehalt", DataMode:=acFormAdd, _
                  WindowMode:=acDialog, OpenArgs:=Me.VertragID
In diesem Formular kannst Du dann im Beim Anzeigen Ereignis die VertragID aus OpenArgs in einem neuen Datensatz zuweisen.Private Sub Form_Current()
   If Me.NewRecord Then
      If IsNumeric(Me.OpenArgs) Then
         Me.VertragID = Me.OpenArgs
      End If
   End If
End Sub
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: nimora

Offline nimora

  • Access-Profi
  • **
  • Beiträge: 135
Re: Formulars für neue Datensätze ändert alle! datensätze
« Antwort #6 am: März 18, 2018, 23:06:56 »
@MzKlMu
sorry, habe mich falsch ausgedrückt. es gibt in der tat ein ordentliches ufo sfmGehaelter.

frmGehalt ist nur ein formular, welches geöffnet wird um felder zur verfügung zu stellen, in denen die entsprechenden daten (gehälter) eingefügt werden und dann in die tabelle eingetragen wird.

im ufo wird der verlauf des gehalts lediglich angezeit. im ufo sollen eigentlich keine änderungen vorgenommen werden. die felder sollen in der ansicht gesperrt sein. lediglich per button sollen neue gehälter hinzukommen. Nicht jeder nutzer soll über das frontend gehälter eintragen können.

aber: du hast recht. wenn ich die einträge darüber vornehme, funktioniert es ohne code. nur das soll/darf eben nicht so sein.

heute ist es schon spät. ich werde morgen mal den vorschlag von Lachtaube versucht.

Danke zunächst

 

Offline nimora

  • Access-Profi
  • **
  • Beiträge: 135
Re: Formulars für neue Datensätze ändert alle! datensätze
« Antwort #7 am: März 19, 2018, 16:18:45 »
Das "DataMode:=acFormAdd" war der schlüssel bzw. mein Fehler. nun funzt es wie gewünscht.

Besten Dank an euch