collapse

* Benutzer Info

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

* Wer ist Online

  • Punkt Gäste: 69
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 2
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 14058
  • stats Beiträge insgesamt: 67483
  • stats Themen insgesamt: 9095
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Problem mit Unterformular bei Datensatzwechsel im Hauptformular über Suchfeld  (Gelesen 1869 mal)

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 178
Hallo Gemeinde,
ich habe ein vermutlich kleines Problem welches ich aber nicht in den Griff bekomme :-[
Im Hauptformular kann ich über ein Suchfeld einen Datensatz suchen und in einem Unterformular kann ich für den Datensatz einen Prüf Datensatz für den Hauptdatensatz anlegen.
Wenn ich den Datensatz wechsel (über das Suchfeld) dann ist es aber nicht mehr möglich und er wil den ersten Datensatz bearbeiten.
Wenn aber in der Steuerungsleiste zum nächsten Datensatz gesprungen wird kann ich wieder einen neuen Datensatz anlegen.

Ich habe eine Beispieldatenbank beigefügt und hoffe ihr könnt mir helfen. (leider nur in .accdb)

Gruß
Danny
 

Offline Josef P.

  • Access-Profi
  • **
  • Beiträge: 237
    • Code-Bibliothek für Access-Entwickler
Hallo!

Zitat
Wenn aber in der Steuerungsleiste zum nächsten Datensatz gesprungen wird kann ich wieder einen neuen Datensatz anlegen.
Weil es zu diesem Datensatz vermutlich noch keine Prüfung gibt.

Beim Unterformular wirkt die Eigenschaft "DataEntry" nur beim Laden.
Das könntest du erzwingen, wenn du im Hauptformular bei jedem Datensatzwechsel die Eigenschaft neu setzt:
Private Sub Form_Current()
   Me.frmPruefPruefungUFO.Form.DataEntry = True
End Sub

mfg
Josef

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 178
Hallo Josef,
ich danke dir es klappt super und es ist ja so einfach :D
Aber selbst wäre ich da warscheinlich in 3 Jahren nicht draufgekommen :o

Gruß
Danny
 

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 178
Hallo Gemeinde ,
ich muss das hier leider nochmal aufgreifen!!! :(
Also ich habe wie oben beschrieben ein Haupftformular. Hier drin gibt es ein Textfeldeld (wird best. mit Enter) zum Wechsel der Datensätze. (Bild 1 = Haupt und UFO Problembereich)

Wenn aber schon ein Datensatz vorhanden ist nimmt der den letzten Datensatz und nicht einen neuen Datensatz.
Aber wenn ich das Hauptformular öffne wird der erste Datensatz angezeigt und hier ist im UFO der Datensatz auch leer obwohl Datensätze vorhanden sind.

Den Code wie oben beschrieben habe ich im Hauptformular drin aber er hilft nicht.
Private Sub Form_Current()
   Me.frmPruefPruefungUFO.Form.DataEntry = True
End Sub

Im UFO habe ich versuchsweise den ganzen Code gelöscht aber es verändert auch nichts.


Und hier noch der Code der ausgeführt wird wenn im Textfeld nach dem neuen Datensatz gesucht wird.
(Me.Kombinationsfeld56 ist jetzt ein Textfeld und wird noch umbenannt :))

Private Sub Kombinationsfeld56_AfterUpdate() 'AfterUpdate ist hier wichtig

'Suche in Kombifeld und dann sucht er den Datensatz und zeigt ihn an / mit Autovervollst. AUS und Eingabe wieder löschen!


   Dim strFilter As String
   
   strFilter = "[RzNummerVerbunden] = '" & Me.Kombinationsfeld56 & "'"    'hier mein feldname und Kombiname
   
Debug.Print strFilter

   If DCount("*", "qryPruefMatAllesSortiert", strFilter) > 0 Then
      Me.Filter = strFilter
      Me.FilterOn = True
        Me.cboPfad.Requery
        Me!cboPfad = Me!cboPfad.ItemData(0)
     
   Else
       MsgBox "Diese RZ Nummer ist nicht vergeben!", , "Achtung!"
   End If

Me.Kombinationsfeld56 = Null 'zurücksetzen/löschen des Suchbegriffs
End Sub

Ich hoffe mir kann jemand sagen was hier mal wieder schief geht!

Gruß und danke fürs Lesen
Danny
 

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 178
Also Kurzgesagt wenn im Hautformular ein neuer Datensatz aufgerufen wird dann soll im UFO ein neuer Datensatz erzeugt werden!
Das klappt allerdings nicht und ich habe keine Ahnung was ich falsch mache.
War oben eventuell etwas zu verwirrend!!! :-\
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7415
Hallo,
mit welchen Daten soll den ein neuer Datensatz erzeugt werden ?

Hafo und Ufo sollten eigentlich über die Schlüsselfelder verknüpft sein. Dann steht bei einem neuen Datensatz im Hafo (nach Eingabe der Daten) auch sofort ein neuer Datensatz im Ufo zur Verfügung.
Da muss man nix programmieren, Du musst nur zum neuen DS wechseln.
Gruß
Klaus
 

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 178
Also die Tabellen sind verknüpft. Aber wenn z.B. der Datensatz mit der ID 1 im Hauptformular geöffnet wird, dann spingt er im Unterformular zum letzten dazugehörenden UFO Datensatz. Außer es ist noch kein Datensatz dazu angelegt. Dann ist das UFO leer. Aber er soll immer einen neuen anlegen(leeres UFO).

Es geht um Materialprüfung: z. B. Seil 1 wird  im UFO geprüft und beim nächsten mal kommt wieder eine neue Prüfung dazu.
« Letzte Änderung: Januar 22, 2018, 23:11:04 von Brallu »
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1329
Welche Datenherkunft (Datensatzquelle) liegt denn in Haupt- und in Unterformular vor?
Grüße von der (⌒▽⌒)
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7415
Hallo,
Du brauchst doch nur im Ufo zu einem neuen Datensatz zu wechseln. Das geht doch ganz einfach per Mausklick.
Du kannst auch im Ereignis "Beim Laden" des Ufos zu einem neuen DS gehen.

DoCmd.GoToRecord , , acNewRec
Gruß
Klaus
 

Offline Brallu

  • Access-Profi
  • **
  • Beiträge: 178
Genau das macht er ja nicht  :-[
Irgend etwas verhindert das!?!
Werde morgen noch ein paar Versuche starten.
Ich danke dir und eventuell bis morgen 😊

Gruß Danny