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 ⏩

accessy

ACCESS 2003

Private Sub Kunde_Partner_AfterUpdate() 'Mit der ComboBox die Umkehrfunktion. Partner gewählt - Sprung 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 = Nothing
  Me.Ansprechpartner.SetFocus
End Sub


Diesen Code habe ich mit Hilfe von euch hier im Forum erstellt.
Der funktioniert wirklich prima. Aber eine Kleinigkeit fehlt noch.
Das HF heißt KUNDEN
Das UF heißt PARTNER
Das Feld, wo der gesuchte Partner steht heißt NACHNAME.
Das ist Column(1)

Jetzt nochmal zum Ablauf. Ich öffne die Combobox und wähle einen Namen.
Jetzt sucht der Code zu diesem Namen den dazugehörigen Kunden.
Dann springt der Cursor ins UF PARTNER in den ersten gefundenen DS des Feldes NACHNAME.

Soweit ist alles Okay.
Jetzt habe ich Kunden mit 30 bis 40 Ansprechpartner.
Doch der Cursor steht leider immer im ersten gefundenen Namen.

Es wäre super, wenn der Cursor gleich im Feld des PARTNERS stehen würde.
So muss ich jedes mal nach unten scrollen.

Der Code Me.Ansprechpartner.SetFocus bezieht sich lediglich auf den ersten DS im UF PARTNER.

Kam das irgendwie rüber, was ich hier versuche zu erklären?
Danke für Tipps, was ich da am Code einfügen muss.

Gruß Achim

MaggieMay

Hi,

mir ist da noch einiges unklar, bspw. wo (in welchem Formular) befindet sich die Ereignisprozedur? Und warum enthält ein Feld namens "KNR" einen Nachnamen? Oder wie hängt das genau zusammen?

Und wie lautet die Datensatzquelle des Kombifeldes?
Freundliche Grüße
MaggieMay

DF6GL

Hallo,


ehrlich gesagt, verstehe ich nur Bahnhof...


Dein Code positioniert in dem Formular, wo er abläuft, auf den Datensatz, bei dem "KNR" dem (vermutlich) angezeigten Wert (Kundennummer?) aus der 2. Spalte des Kombilistenfeldes entspricht...

Was hat das alles mit "Nachname"  und Positionieren auf den (welchen denn) Nachnamen im Unterformular zu tun?

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

Weia!! Also doch nicht gut beschrieben von mir.
Ich versuche es nochmal zu erklären.

Die Ereignisprozedur steht im Formular KUNDEN, also im HF.

KNR ist die Kundennummer. Diese hat eine Verknüpfung der Stammdaten mit den Ansprechpartnern.
Mein HF heißt KUNDEN
Das UF heißt PARTNER
Und die sind verknüpft mit dem Feld KNR.

Beispiel: Der Herr Fischer vom Kunden ....ääh ja.. komm jetzt nicht drauf........hmmm.

Also öffne ich die Combo, gebe den Namen Fischer ein, drücke Enter und schon wird der Stammdatensatz MÜLLER im HF gefunden, weil dort der Ansprechpartner Fischer heißt.
Das funktioniert richtig gut.

So, und nun wollte ich diesen Ablauf noch etwas komfortabler gestalten.
Annahme beim Kunden Müller habe ich 10 Ansprechpartner drin.
ALSTER
BAUM
DOLS
DOSER
ENTENMANN
FISCHER
RECKERMANN
STELLS
TAUCHER
ULSASS

Der Herr Fischer ist natürlich irgendwo mitten drin in der Liste. In diesem Fall an 6.Position.

Mit dem bisherigen Code wird nach Klick auf ENTER die Firma MÜLLER gefunden und im Unterformular steht der Cursor im Feld ALSTER.
Der Cursor steht immer auf dem ersten Namen des Felds NACHNAME.

Was muss ich am Code ändern, damit der Cursor bei Herrn FISCHER steht?

DF6GL

Hallo,

dann positioniere halt zusätzlich das UFO auf den Nachnamen...:


Private Sub Kunde_Partner_AfterUpdate() 'Mit der ComboBox die Umkehrfunktion. Partner gewählt - Sprung 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!Ansprechpartner.Form.RecordsetClone
  rst.findfirst "Nachname = '" & Me!Kunde_Partner.Column(0) & "'"   ' je nachdem, in welcher Spalte der Nachname steht.
  Me!Ansprechpartner.Form.Bookmark = rst.Bookmark
  rst.Close

  Set rst = Nothing
  Me.Ansprechpartner.SetFocus

End Sub

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

Hallo Franz,
der Code sieht nun so aus.

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!Ansprechpartner.Form.RecordsetClone
  rst.FindFirst "Nachname = '" & Me!Kunde_Partner.Column(1) & "'"
  Me!Ansprechpartner.Form.Bookmark = rst.Bookmark
  rst.Close
 
  Set rst = Nothing
  Me.Ansprechpartner.SetFocus
End Sub

Aber ich erhalte die Fehlermeldung 438 "Objekt unterstützt diese Eigenschaft oder Methode nicht"

Der Debugger steht dann in der Zeile
Set rst = Me!Ansprechpartner.Form.RecordsetClone


DF6GL

Hallo,

setz mal für "Ansprechpartner"  den richtigen Namen des Ufo-Steuerelementes ein.
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 hatte ich gleich mal gemacht, noch bevor du geantwortet hast.

Dann gibt es zwar keine Fehlermeldung, aber es gibt auch keine Veränderung zum bisherigen Ablauf.
Der neu hinzugefügte Codeteil von dir bleibt gewissermaßen wirkungslos.

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!Partner.Form.RecordsetClone
  rst.FindFirst "Nachname = '" & Me!Kunde_Partner.Column(1) & "'"
  Me!Partner.Form.Bookmark = rst.Bookmark
  rst.Close
 
  Set rst = Nothing
  Me.Partner.SetFocus
End Sub

DF6GL

Hallo,


Column(1) im 2. Teil kann ja nicht stimmen,  in dieser Spalte steht die Kundennummer und nicht der Nachname drin...
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

Hatte ich beides probiert.
(0) und (1).
Keine Veränderung. Der Cursor steht nach wie vor im Feld Nachname des ersten DS im Formular Partner.

accessy

Nachtrag zur letzten Antwort:
Die Tabelle, in der die Partner stehen hat folgende Reihenfolge.
ID, Vorname, Nachname.
Die Combo hat als Spaltenbreiten 0;3;8
Und die 8 bezieht sich auf den Nachnamen.

So habe ich mal alle Klammerwerte von 0,1,2,3 getestet
Nichts zu machen.....

MaggieMay

Hi,

wildes Probieren macht keinen Sinn. Du musst wissen, welche Spalte du brauchst und wie du sie ansprichst, die Zählung beginnt bei 0.
Die Antwort auf meine Frage:
ZitatUnd wie lautet die Datensatzquelle des Kombifeldes?
habe ich nicht gefunden, aber nachdem was ich gelesen habe, könnte der Nachname in der dritten Spalte stehen, also brauchst du Column(2), um darauf zuzugreifen.

Ist deine KNR vom Typ Text???

Und das Kombifeld soll beides tun, erst den Kunden suchen, dann den Partner?
Wie heißt denn das Unterformular-Steuerelement im Hauptformular?
Freundliche Grüße
MaggieMay

accessy

Die Datensatzquelle des Kombi ist eine Abfrage.
Diese beinhaltet 2 Tabellen.
Die Tabelle mit den Kundenstammdaten und die Tabelle mit den Partnern.
Beide Tabellen haben eine Beziehung über das Feld Kundennummer KNR.

Das Unterformular-Steuerelement im Hauptformular?
Hoffentlich habe ich das jetzt richtig kapiert.
Der Name des Steuerelements ist "NAME"
Der Steuerelementinhalt ist "Nachname"

MaggieMay

Sorry, aber hier ist "Klartext" gefragt:
Zitat von: Accessy am Februar 04, 2015, 19:22:50
Die Datensatzquelle des Kombi ist eine Abfrage.
Diese beinhaltet 2 Tabellen.
Die Tabelle mit den Kundenstammdaten und die Tabelle mit den Partnern.
Beide Tabellen haben eine Beziehung über das Feld Kundennummer KNR.
zeige doch bitte endlich den mehrfach nachgefragten SQL-Code dieser Abfrage.

ZitatDas Unterformular-Steuerelement im Hauptformular?
Hoffentlich habe ich das jetzt richtig kapiert.
Der Name des Steuerelements ist "NAME"
Der Steuerelementinhalt ist "Nachname"
Nein, das ist das Textfeld im Unterformular. Gefragt war aber nach dem Namen des Unterformular-Steuerelements im Hauptformular.
Bitte genau lesen was geschrieben wird. Bei Verständnisproblemen nachfragen. Nicht einfach "Milch" durch "Wasser" ersetzen, bloß weil man das Wort nicht kennt.



Freundliche Grüße
MaggieMay

accessy

Den SQL Text hat keiner nachgefragt.
Na egal.
[/
SELECT Partner.ID, Partner.KNR, Partner.Nachname, Kunden.Kunde
FROM Kunden INNER JOIN Partner ON Kunden.KNR = Partner.KNR
ORDER BY Partner.Nachname;
code]

Das hier ist der SQL Code der Abfrage.

Und damit kann ich nichts anfangen.
[b]Namen des Unterformular-Steuerelements im Hauptformular.
[/b]Keine Ahnung welches Objekt hiermit gemeint ist.