collapse

* Benutzer Info

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

* Wer ist Online

  • Punkt Gäste: 67
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14135
  • stats Beiträge insgesamt: 68396
  • stats Themen insgesamt: 9212
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Direkt zu Datensatz in einem Register springen  (Gelesen 700 mal)

Offline xoius

  • Newbie
  • Beiträge: 6
Direkt zu Datensatz in einem Register springen
« am: Mai 17, 2018, 16:54:23 »
Hallo liebe Forumsgemeinde und Accessgenies,
ich stelle mich offenbar gerade sehr dumm an und studiere seit 3h Stunden erfolglos das Internet oder suche schlicht nach den falschen Schlüsselwörtern.

Ich habe ein Formular mit dem Namen "Hauptseite". Darauf habe ich ein Register mit Namen "Registerstr10" und drei Register (mit Nummerierung 0,1,2).

Ich möchte nun in Register 0 (auf dem mit dem Bericht "Bericht Aktuelle Arbeitspakete" alle relevanten Arbeitspakete aus der Datenbank zusammengefasst sind) auf einen Button klicken können und dadurch Register 2 aufrufen. Dort ist das Formular "ArbeitspaketeDetail" eingebettet. Dort soll natürlich nicht irgendein Arbeitspaket, sondern genau das Arbeitspaket mit der ID mit der ID von Registerseite 0 angezeigt werden.

Im Prinzip hätte ich gern so etwas
Forms!Hauptseite!RegisterStr10 = 2.Recordset.FindFirst "ID = " & Me.[ID]
was natürlich nicht funktioniert.

Ich hänge also bei der schlichten Öffnung des Registers fest:
Private Sub Öffnen_Click()
   Forms!Hauptseite!RegisterStr10 = 2
End Sub

Ist einer so lieb und kann mir weiterhelfen?
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23515
Re: Direkt zu Datensatz in einem Register springen
« Antwort #1 am: Mai 17, 2018, 17:03:39 »
Hallo,

bist Du sicher, da ein vernünftiges Konzept zu verfolgen?


Stimmt es auch , dass Du einen Bericht auf der 1. Reg-Seite anzeigst?

Prinzipiell ist sowas nur möglich, wenn beim Klick auf den Button die ID in eine globale Variable (oder Ähnliches, wie TempVar-Element) abgelegt wird und bei Ändern-Ereignis des Register-St.El.  das Formular "ArbeitspaketeDetail" gefiltert wird.



Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1432
Re: Direkt zu Datensatz in einem Register springen
« Antwort #2 am: Mai 17, 2018, 17:14:38 »
Registerseiten haben eindeutige Werte, die im Eigenschaftsblatt als Seitenindex eingesehen werden können, wenn die Seite im Entwurfsmodus aktiviert ist. Zum Wechelsn auf eine bestimmte Seite, genügt es dann Me.RegisterStr10 = 4711 zu schreiben bzw. aus einem Unerformmular heraus Me.Parent.RegisterStr10 = 4711. Beim Zugriff auf ein Recordset eines Unterformulars spielt es keine Rolle, ob das Unteformularsteuerelement auf einer Seite oder sonstwo positioniert ist. Vom Unterformular erfolgt der Zugriff auf das  Recordset eines anderen, parallel liegenden Unterformularsteuerelements mittels Me.Parent.NameDesAnderenUnterformularsteuerelements.Form.Recordset oder vom Hauptformular aus mittels Me.NameDesAnderenUnterformularsteuerelements.Form.Recordset.
Grüße von der (⌒▽⌒)
 

Offline xoius

  • Newbie
  • Beiträge: 6
Re: Direkt zu Datensatz in einem Register springen
« Antwort #3 am: Mai 22, 2018, 08:48:52 »
Hallo ihr zwei!

@DF6GL:
bist Du sicher, da ein vernünftiges Konzept zu verfolgen? -> Eine schwere Frage und vielleicht etwas zu umfassen für so einen kleinen Unterpunkt. Es ist in der Tat ein Bericht. In der Übersicht sollen keine Einträge editiert werden, es geht mehr um den Überblick, deswegen dachte ich, dass Bericht hier gut wäre. Was wäre denn eine bessere Alternative?

@Lachtaube:
Das sind verdammt gute Hinweise, doch ich stelle mich noch beim Anwendungstransfer zu dämlich an. Soweit habe ich es verstanden und soweit funktioniert es natürlich auch.

Private Sub Öffnen_Click()
    Me.Parent.RegisterStr10 = 2
End Sub

Jetzt fehlt natürlich noch die Zuordnung der richtigen ID und damit das Anzeigen des richtigen Datensatzes. Bitte sei so lieb und greif mir dabei noch mal unter die Arme...

Ich habe verstanden, dass ich die ID aus dem Bericht per Me.Parent.ID.Form.Recordset bekomme...(hoffe verstanden zu haben)
Aber wie wähle ich damit den Datensatz aus?
So geht es ja nicht
Me.Recordset.FindFirst "ID = " & Me.Parent.ID
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1432
Re: Direkt zu Datensatz in einem Register springen
« Antwort #4 am: Mai 22, 2018, 09:16:31 »
Du musst das Unterformular adressieren, in dem die Suche stattfinden soll. Deine Anweisung bezieht sich auf das das Recordset desFormular, in welchem der Code hinterlegt ist und ausgeführt wird. Verwende also die vorletzte Form aus meiner Antwort und hänge dort die .FindFirst-Anweisung an.

PS: der des Unterformularsteuerelements kann wie der Name des darin beheimateten Formulars lauten - muss aber nicht. Am besten schaust Du im Eigenschaftblatt nach dem Namen.
 
Grüße von der (⌒▽⌒)
 

Offline xoius

  • Newbie
  • Beiträge: 6
Re: Direkt zu Datensatz in einem Register springen
« Antwort #5 am: Mai 22, 2018, 09:39:16 »
Ich stehe noch immer auf dem Schlauch...das hier liefert mir ne Fehlermeldung

Private Sub Öffnen_Click()
    Me.Parent.RegisterStr10 = 2
    Me.Parent.ID.Form.Recordset.FindFirst "ID = " & Me.Parent.ID
End Sub

Also das Unterformular aus dem es kommt heißt BerichtAktuelleArbeitspakete. Das Unterformularsteuerelement, das ich haben möchte heißt ID. Die gefundene ID muss im nun aktuellen Unterformular ArbeitspaketeDetail mit ID abgeglichen und der entsprechende Datensatz ausgewählt werden.
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1432
Re: Direkt zu Datensatz in einem Register springen
« Antwort #6 am: Mai 22, 2018, 09:55:03 »
Me.Parent.ArbeitspaketeDetail.Form.Recordset.FindFirst "ID=" & Me.ID
Grüße von der (⌒▽⌒)
 

Offline xoius

  • Newbie
  • Beiträge: 6
Re: Direkt zu Datensatz in einem Register springen
« Antwort #7 am: Mai 22, 2018, 15:10:26 »
Also:
Private Sub Öffnen_Click()
    Me.Parent.RegisterStr10 = 2
      Me.Parent.ArbeitspaketeDetail.Form.Recordset.Find First "ID=" & Me.ID
 End Sub

Vielen Dank! Das ist in der Tat eine der Varianten, die ich auf Deinen Tipp hin ausprobierte. Access haut allerdings auch hier ne Fehlermeldung raus: Laufzeitfehler 2465 - Anwendungs- oder Objektdefinierter Fehler.
Eine Idee, was das Problem ist?
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23515
Re: Direkt zu Datensatz in einem Register springen
« Antwort #8 am: Mai 22, 2018, 15:18:39 »
Hallo,

lad mal die DB hier hoch, datenreduziert und gezippt.


Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1432
Re: Direkt zu Datensatz in einem Register springen
« Antwort #9 am: Mai 22, 2018, 15:21:22 »
Dann heißt das Unterformularsteuerelement vermutlich nicht ArbeitspaketeDetail.
Grüße von der (⌒▽⌒)
 

Offline xoius

  • Newbie
  • Beiträge: 6
Re: Direkt zu Datensatz in einem Register springen
« Antwort #10 am: Mai 22, 2018, 15:44:56 »
Hier meine bisherige Datenbank... (deaktiviert da Lösung gefunden)
« Letzte Änderung: Mai 22, 2018, 16:55:45 von xoius »
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7504
Re: Direkt zu Datensatz in einem Register springen
« Antwort #11 am: Mai 22, 2018, 16:01:50 »
Hallo,
Du solltest erst mal die Beziehungen in Ordnung bringen bevor Du mit Abfragen und Formularen weiter machst.

- Beziehungen laufen immer über den Primärschlüssel und ggf. einen extra Fremdschlüssel

- es ist in den Beziehungen grundsätzlich referentielle Integrität einzustellen

- Die Mitarbeitertabelle muss 2x aufgenommen werden, sonst ist keine Unterscheidung zwischen Zugewiesen und Verantwortlich möglich

Was ist in der Projekttabelle der Unterschied zwischen der ID und der Projekt_ID ? Eines von beiden ist überflüssig, vermutlich die ID.

Erst wenn die Beziehungen passen, kannst Du Dich ernsthaft mit Abfragen und Formularen befassen.

Siehe Bild.
« Letzte Änderung: Mai 22, 2018, 16:08:34 von MzKlMu »
Gruß
Klaus
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23515
Re: Direkt zu Datensatz in einem Register springen
« Antwort #12 am: Mai 22, 2018, 16:14:41 »
Hallo,

die Krux beim aktuellen Problem sind die falschen Namen der UFO_Steuerelemente:

Private Sub Öffnen_Click()
    Me.Parent.RegisterStr10 = 2
     Me.Parent.[Arbeitspakete im Detail].Form.Recordset.FindFirst "ID=" & Me.ID
End Sub

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1965
Re: Direkt zu Datensatz in einem Register springen
« Antwort #13 am: Mai 22, 2018, 16:40:15 »
Hallo,
Zitat
Dann heißt das Unterformularsteuerelement vermutlich nicht ArbeitspaketeDetail.
Genau, das heisst "Bericht Aktuelle Arbeitspakete".

@xoius
Lies http://www.donkarl.com?FAQ4.2
Die Codezeile muss also so aussehen
     Me.Parent.[Arbeitspakete im Detail].Form.Recordset.FindFirst "ID=" & Me.ID
gruss ekkehard

edit:
War Franz mal wieder schneller.
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7504
Re: Direkt zu Datensatz in einem Register springen
« Antwort #14 am: Mai 22, 2018, 16:54:14 »
Hallo,
ich würde trotzdem erst mal das Datenmodell bereinigen.
Gruß
Klaus
 

 

SQL-Query-String direkt an Backend senden

Begonnen von imp666Board Access Programmierung

Antworten: 7
Aufrufe: 5612
Letzter Beitrag März 24, 2011, 11:18:31
von Hondo
Bericht direkt drucken der im Bericht einen Code mit der Gruppierung hat

Begonnen von smily68Board Bericht

Antworten: 1
Aufrufe: 3815
Letzter Beitrag Mai 14, 2011, 07:47:39
von database
Datumswert direkt eintragen mit Checkbox als Kriterium

Begonnen von Frank77Board Tabelle/Abfrage

Antworten: 4
Aufrufe: 2466
Letzter Beitrag Mai 09, 2012, 22:47:09
von Beaker s.a.
Termine direkt nach Google calendar

Begonnen von tismoBoard Access Programmierung

Antworten: 1
Aufrufe: 5305
Letzter Beitrag Mai 15, 2012, 23:00:11
von Frank77
Import csv Daten direkt aus E-Mail

Begonnen von KitechBoard Access-Hilfe

Antworten: 1
Aufrufe: 1201
Letzter Beitrag Juli 09, 2013, 14:14:07
von database