Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Sprung zum gefundenen Feld

Begonnen von accessy, Februar 04, 2015, 13:20:26

⏪ vorheriges - nächstes ⏩

database

Hallo Achim,

ZitatUnd damit kann ich nichts anfangen.
Namen des Unterformular-Steuerelements im Hauptformular.
Keine Ahnung welches Objekt hiermit gemeint ist.

Wenn du dein Formular im Entwurfsmodus öffnest dann klickst du EINMAL auf das Unterformular und schaust dir dessen Eigenschaften an. Den Namen des Unterformular-Steuerelements findest du entweder im Dropdown oberhalb der Register angezeigt oder auf der Registerkarte 'Andre' im Feld 'Name'

accessy

Also, ich habe das Formular KUNDEN im Entwurf geöffnet.
Anschließend einen Klick auf die erste Registerkarte, in der das UF PARTNER eingebaut ist.
Diese Registerkarte trägt den Namen ANSPRECHPARTNER

Klicke ich mit der rechten Maustaste auf diese Registerkarte ANSPRECHPARTNER und schaue in den Eigenschaften unter ALLE, steht dort unter dem Eigenschaftswert NAME der Name der Registerkarte. Und der heißt ANSPRECHPARTNER.

Deshalb steht ja im Code auch zuletzt ganz unten drin
Me.Ansprechpartner.SetFocus


DF6GL

Hallo,

Du musst das UFO-Steuerelement  markieren, nicht die Registerseite.....

In den Eigenschaften dieser "Markierung" steht unter "Herkunftsobjekt" vermutlich "Partner" und auch bei "Name" vermutlich auch "Partner". Insofern sollte der Code so lauten, wenn zudem entspr. der Abfrage die Spaltenanzahl des Kombis auf 3  gesetzt ist :


Private Sub Kunde_Partner_AfterUpdate() 'ComboBox um Partner zu suchen zum Kunden
  Dim rst As DAO.Recordset
  Set rst = Me.RecordsetClone
  rst.FindFirst "KNR = '" & Me!Kunde_Partner.Column(1) & "'"
  Me.Bookmark = rst.Bookmark
  rst.Close
 
  Set rst = Me![color=red]Partner[/color].Form.RecordsetClone
  rst.FindFirst "Nachname = '" & Me![color=green]Kunde_Partner.Column(2) [/color] & "'"
  Me![color=red]Partner[/color].Form.Bookmark = rst.Bookmark
  rst.Close
 
  Set rst = Nothing
  Me!AnsprechPartner.SetFocus
End Sub


Wenn das immer noch nicht klappt, dann lad die DB abgespeckt (vorher komprimiert/repariert und gezippt) hier hoch...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

accessy

Exakt so wie der Code jetzt von dir hier dargestellt wird, steht er auch in meinem VBA.
So, jetzt habe ich mal nach deiner Anweisung das UF markiert und die Eigenschaft aufgerufen.
Die Datenherkunft ist eine Abfrage die da heißt "Partner sortiert Name".
Öffne ich diese Abfrage, steht im Entwurf folgende Reihenfolge:
ID, Vorname, Nachname, Firma, Adresse, ...usw..usw...
Also Nachname steht an Position 3.

Es funktioniert ja erst einmal korrekt bis zum ersten rst.close, weil der richtige Stammdatensatz gefunden wird.
Auch alle Ansprechpartner des Kunden werden im UF gelistet.
Einzig der Cursor steht NICHT in dem Feld des richtigen Namen, sondern immer oben beim ersten.
Vielleicht ist ja dieses Me.Ansprechpartner.SetFocus falsch, oder nicht ausreichend.
Dieser Codeteil veranlasst doch lediglich, dass die Registerkarte ANSPRECHPARTNER gewählt wird und der Focus dort liegt.

Da müsste vielleicht stehen
Me.Ansprechpartner.Partner.Nachname.SetFocus
Aber das geht leider nicht.

MaggieMay

Hi,
ZitatDa müsste vielleicht stehen
Me.Ansprechpartner.Partner.Nachname.SetFocus
der Name der Registerkarte spielt hierbei keine Rolle, aber das Setzen des Fokus solltest du unterlassen, der geht dann ja vom Ufo weg.
ZitatSo, jetzt habe ich mal nach deiner Anweisung das UF markiert und die Eigenschaft aufgerufen.
Die Datenherkunft ist eine Abfrage die da heißt "Partner sortiert Name".
Du solltest das Ufo-Steuerelement im Hfo markieren, also nur einmal anklicken.
Dann schau dir die Eigenschaften an.
Freundliche Grüße
MaggieMay

accessy

Zitat
das Ufo-Steuerelement im Hfo markieren
Das habe ich nicht verstanden.

Aber es gibt eine deutlich, verbesserte Veränderung, die ich hier mal erwähnen möchte.
Ich habe mal gemäß der Vorgabe die Zeile

Me.Ansprechpartner.setfocus

deaktiviert.
Wenn ich nun den Namen in der Combo wähle und Enter drücke, dann
wird wie bisher der Stammdatensatz gefunden aber der Cursor steht NICHT mehr im ersten Feld des UF.

Ich vermute mal, dass der nun im richtigen Feld des Namen steht, aber außerhalb des sichtbaren Bereichs.

Gebe ich nun in der Combo noch einmal den Namen ein,
dann wird das UF entsprechend runter gescrollt und der Cursor steht exakt im Feld des Namen.

Nur noch einen Schritt bis zur Lösung....Vermute ich...Aber welcher?

DF6GL

Hallo,


ZitatNur noch einen Schritt bis zur Lösung....Vermute ich...Aber welcher?

lad die Db hoch...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaggieMay

Hi,

ich hätte dazu noch folgenden Vorschlag:
Private Sub Kunde_Partner_AfterUpdate() 'ComboBox um Partner zu suchen zum Kunden
    Me.Recordset.FindFirst "KNR = '" & Me!Kunde_Partner.Column(1) & "'"
    Me!Partner.Form.Recordset.FindFirst "Nachname = '" & Me!Kunde_Partner.Column(2)  & "'"
    Me!Partner.SetFocus
    Me.Partner.Form.Nachname.SetFocus
End Sub
Freundliche Grüße
MaggieMay

accessy

Diese, oder ähnliche Codezeile

Me.Partner.Form.Nachname.SetFocus

hatte ich schon zuvor probiert und erwähnt.
Geht leider nicht wegen Fehler 438.

MaggieMay

Fehler 438: "Objekt unterstützt diese Eigenschaft oder Methode nicht"

Dann hantierst du immer noch mit den falschen Namen herum.
Was hat denn die Überprüfung des Unterformular-Steuerelement-Namens ergeben?

BZW: Warum lädst du nicht einfach mal eine Test-DB dazu hoch?
Freundliche Grüße
MaggieMay

accessy

Ich möchte die DB nicht hochladen. Das sind Firmendaten.... das mache ich nicht... will mir keinen Ärger einhandeln.

Ich gebe hier nochmal eine Zusammenfassung der Elemente durch.
HF heißt KUNDEN
In der Registerkarte mit Namen ANSPRECHPARTNER liegt das UF mit Namen PARTNER.
Die Combobox heißt KUNDE_PARTNER und bezieht ihr Daten aus einer Abfrage.
In dieser Abfrage gibt es die Tabellen KUNDE und PARTNER, verknüpft.
4 Felder stehen im Entwurf.
ID
KNR
Nachname
Kunde
Also der Name steht an 3. Stelle; für die Combo in Klammern (2).
Im UF PARTNER heißt das Feld NACHNAME

Wenn ich mit
Me.Partner.Form.Nachname.SetFocus starte, kommt der Fehler 438.

Wenn ich mit
Me.Partner.Form.Name.SetFocus starte, kommt der Fehler beim Kompilieren.
Ungültiger Bezeichner und markiert ist .Name.

Kann es sein, dass ich hier versuche etwas benutzerfreundlich zu gestalten,
aber gar nicht machbar ist?

Nachtrag:
Ich erhalte ja keine Fehlermeldung mit
Me.Ansprechpartner.Setfocus.

Vielleicht ist ja die Registerkarte "ANSPRECHPARTNER" der Schlüssel.

MaggieMay

Hi,
Zitat von: Accessy am Februar 06, 2015, 16:50:27Das sind Firmendaten.... das mache ich nicht... will mir keinen Ärger einhandeln.
niemand will hier Firmendaten sehen, es soll lediglich eine Beispiel-DB mit ein paar Testdaten und dem was nötig ist, um das Problem nachzustellen, geliefert werden.

ZitatWenn ich mit
Me.Partner.Form.Nachname.SetFocus starte, kommt der Fehler 438.
Dann stimmt vermutlich der Name des Unterformular-Steuerelements nicht mit dem Namen des eingebetteten Formulars überein. Aber darauf wurde ja bereits mehrfach hingewiesen.

ZitatWenn ich mit
Me.Partner.Form.Name.SetFocus starte, kommt der Fehler beim Kompilieren.
Ungültiger Bezeichner und markiert ist .Name.
Wildes Herumprobieren ist sinnfrei, das lässt sich schließlich nachsehen, wie die Steuerelemente heißen, die du ansprechen willst.

ZitatKann es sein, dass ich hier versuche etwas benutzerfreundlich zu gestalten,
aber gar nicht machbar ist?
Ganz bestimmt ist das machbar und durchaus nichts besonderes.

ZitatIch erhalte ja keine Fehlermeldung mit
Me.Ansprechpartner.Setfocus.
Kein Wunder, denn das ist eine Registerkarte im Hauptformular, nur hat die mit dieser Sache absolut nichts zu tun. Aber auch das sagte ich bereits.
So langsam ist es nicht mehr lustig... :-(

ZitatVielleicht ist ja die Registerkarte "ANSPRECHPARTNER" der Schlüssel.
GANZ SICHER NICHT!
Freundliche Grüße
MaggieMay

accessy

Ich habe mal versucht die DB auf einen Zustand zu bringen, der mir für eine Veröffentlichung keine Schwierigkeiten bereitet. Leider vergeblich. Das Formular lässt sich nicht mehr öffnen. Nur noch Fehlermeldungen. Das fehlt, das fehlt und das fehlt...Fehler hier, Fehler da....

Ich schließe das Thema mal als gelöst ab. Es funktioniert ja alles und das ist mir die Hauptsache. Ich bitte euch daher auch nicht sauer zu sein. Ihr habt mir hier in den letzten Monaten wirklich viel geholfen meine DB in einem derart guten Zustand zu bringen. Dafür ein großes Danke schön.

Ist halt nur ärgerlich, dass es fast funktioniert.
Wenn ich die Zeile
Me.Ansprechpartner.SetFocus NICHT setzen würde, wird das UF PARTNER nicht angesprungen.

Und noch ärgerlicher ist, dass es beim 2.Eingeben des Partners in der Combo der Cursor dann im Feld NACHNAME beim richtigen Partner steht.


DF6GL

Hallo,

importiere nur das Hauptform in eine neue leere DB und lad das Ding hier hoch....
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

accessy

Das war eine gute Idee.
Aber ob das was bringt möchte ich bezweifeln.