Neuigkeiten:

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

Mobiles Hauptmenü

In einem Formular einen bestimmten Datensatz suchen

Begonnen von Albo, August 23, 2005, 13:40:33

⏪ vorheriges - nächstes ⏩

Albo

Hallo zusammen,

ich habe ein Formular mit Kundendaten und darin enthalten ist ein Unterformular, in dem evtl. Schulden der einzelnen Kunden erfasst sind. Jetzt möchte ich nicht, wenn ich neue Schulden zu einem Kunden eingeben will, erst alle Datensätze durchblättern oder mit der Datensatznummer zum entsprechenden Kunden springen. Es ist bestimmt möglich, daß wenn das Formular geöffnet wird, nach dem Kundennamen gefragt wird und nach Eingabe dessen zu diesem Datensatz gesprungen wird. Es kann natürlich auch vorkommen, daß der Kundenname mehrfach auftritt. Kann mir jemand sagen, wie man das realisieren kann. Ich hoffe, das läßt sich irgendwie wie in einer Abfrage machen, ohne groß mit VBA-Code zu arbeiten. Da kenn ich mich nämlich noch nicht so aus.
Das führt mich auch gleich zu meiner 2. Frage: Kennt jemand ein gutes Lernprogramm für Access welches sich auch mit dem Erstellen von VBA-Code befasst. Ich würde die Frage gern auch in einem anderen Bereich stellen, weiß nur nicht wohin damit.

Danke schon mal für die Hilfe

Albo

DF6GL

#1
Hallo,


zu 1):

Mach ein UNGEBUNDENES (nichts in  Steuerelementinhalt)  Kombifeld (Kundesuchen) im Hauptformularkopf  mit Datensatzherkunft:
Select Kundennr, Kundenname from tblKunden

Gebunden Spalte:1
Anzahl Spalten: 2
Spaltenbreiten: 0cm;3cm
Steuerelementinhalt: leer

Bei markiertem Kombi: bei Eigenschaften/Ereignisse/Nach Aktualisierung auf die rechten 3 Pünktchen klicken, "Code" auswählen und im VBA-Editor in die erstellte Ereignisprozedur dieses schreiben (Namen anpassen natürlich):

Sub Kundesuchen_Afterupdate() 'vorhanden
Me.Filter="Kundennr=" & Me!Kundensuchen
Me.Filteron=true
End Sub 'vorhanden


Wobei das Tabellenfeld Kundennr, falls vorhanden, hier vom Typ Zahl sein muß.
Wenn vom Typ Text, muß es so heißen:
.
Me.Filter="Kundennr= '" & Me!Kundensuchen & "'"
.



2)
Gut ist relativ:
http://www.ti5.tu-harburg.de/manual/vba5/httoc.htm
http://home.t-online.de/home/achim.roehl/access.htm
www.yaccess.de Tutorials oder Lernen
www.dbwiki.de  unter Anfänger und ff





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

albo

Hallo,

danke erst aml für die Antwort. Ich hab´s ausprobiert aber leider funktioniert das nicht so richtig.
Ich hab zwar im Formularkopf jetzt ein Kombifeld, in dem man die Kundennamen auswählen kann. Sobald ich aber nach Auswahl eines Namens das Feld verlasse kommt folgende Fehlermeldung:
"Laufzeitfehler 2456:

Microsoft Access kann das in Ihrem Ausdruck angesprochene Feld `Kundensuchen`nicht finden."

Das entsprechende Feld existiert bei mir auch nicht. Die Felder in der Tabelle, die in Frage kommen, heißen "Kundennummer" und "Nachname".

Weiß vielleicht jemand, was ich falsch mache.

Und noch eine Frage zu Punkt 2.)

Kennt jemand das Access-Lernprogramm von der Fa. Learnkey und wenn ja, taugt das was.

Danke

Albo

DF6GL

Hallo,


ja mei... ::)

Offensichtlich heißt das Kombifeld nicht "Kundensuchen", sondern irgendwie anders, und diesen anderen Namen setzt Du im Code anstelle ein.  8)

zu 2.:

Ich nicht und kann auch nichts darüber sagen.
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

kai.hedrich

Zitat von: DF6GL am August 23, 2005, 13:59:02
Hallo,


zu 1):

Mach ein UNGEBUNDENES (nichts in  Steuerelementinhalt)  Kombifeld (Kundesuchen) im Hauptformularkopf  mit Datensatzherkunft:
Select Kundennr, Kundenname from tblKunden

Gebunden Spalte:1
Anzahl Spalten: 2
Spaltenbreiten: 0cm;3cm
Steuerelementinhalt: leer

Bei markiertem Kombi: bei Eigenschaften/Ereignisse/Nach Aktualisierung auf die rechten 3 Pünktchen klicken, "Code" auswählen und im VBA-Editor in die erstellte Ereignisprozedur dieses schreiben (Namen anpassen natürlich):

Sub Kundesuchen_Afterupdate() 'vorhanden
Me.Filter="Kundennr=" & Me!Kundensuchen
Me.Filteron=true
End Sub 'vorhanden


Wobei das Tabellenfeld Kundennr, falls vorhanden, hier vom Typ Zahl sein muß.
Wenn vom Typ Text, muß es so heißen:
.
Me.Filter="Kundennr= '" & Me!Kundensuchen & "'"
.



Hallo,

Danke für die Anleitung und den Code - das funktioniert wunderbar :-)

Nun würde ich gerne den Datensatz, den ich im Kombinationsfeld ausgewählt habe, mit einer Löschabfrage verknüpfen. Stelle mir das also so vor: Datensatz über Kombinationsfeld aussuchen und dann mit Klick auf eine Schaltfläche - den ausgesuchten Datensatz und alles was damit zu tut hat - löschen. Habe schon ein wenig rumgetüftelt, komme aber nich so recht weiter ... bzw. es will nicht funktionieren.

Wie verknüpfe ich das mit der (Lösch)Abfrage ohne dass ich aufgefordert werde, einen Parameterwert einzugeben?


Gruß Kai.

DF6GL

Hallo,


dafür brauchst Du keine Löschabfrage, wenn Du den akt. DS löschen willst:

Sub btnLöschen_Click()
Runcommand accmdDeleteRecord
End Sub

mit  Löschabfrage:
Sub btnLöschen_Click()
Currentdb.Execute "Delete * from tblTabelle where ID_Feld = " & Me!ID_Feld
Me.Requery
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

kai.hedrich

Hallo,

danke für die Codes - wenn ich jedoch "Runcommand accmdDeleteRecord" einsetze und den Button anklicke erscheint "Laufzeitfehler '2046': der Befehl oder die Aktion 'DatensatzLöschen' ist zurzeit nicht verfügbar."

Und da frage ich mich doch --- warum nur?  ???

Gruß Kai.

DF6GL

Hallo,

vermutlich ist der Formular-Recordset nicht aktualisierbar...d. h. unbrauchbare Abfrage in der Datenherkunft, in den Eigenschaften "Daten" , oder ein anderer Zustand des Forms, der das Löschen verhindert.

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

Beaker s.a.

Hallo Kai,

Zitat
'2046': der Befehl oder die Aktion 'DatensatzLöschen' ist zurzeit nicht verfügbar."
Und da frage ich mich doch --- warum nur?

Überprüfe als erstes die Formulareinstellung "Löschen zulassen" (Eigenschaftenblatt > Register "Daten")

hth
gruss beaker s.a.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)