Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Albo am August 23, 2005, 13:40:33

Titel: In einem Formular einen bestimmten Datensatz suchen
Beitrag von: Albo am August 23, 2005, 13:40:33
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
Titel: Re: In einem Formular einen bestimmten Datensatz suchen
Beitrag 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 & "'"
.



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





Titel: Re: In einem Formular einen bestimmten Datensatz suchen
Beitrag von: albo am August 29, 2005, 11:36:28
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
Titel: Re: In einem Formular einen bestimmten Datensatz suchen
Beitrag von: DF6GL am August 29, 2005, 16:51:25
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.
Titel: Re: In einem Formular einen bestimmten Datensatz suchen
Beitrag von: kai.hedrich am November 02, 2011, 15:44:11
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.
Titel: Re: In einem Formular einen bestimmten Datensatz suchen
Beitrag von: DF6GL am November 02, 2011, 17:31:17
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
Titel: Re: In einem Formular einen bestimmten Datensatz suchen
Beitrag von: kai.hedrich am November 03, 2011, 11:27:26
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.
Titel: Re: In einem Formular einen bestimmten Datensatz suchen
Beitrag von: DF6GL am November 03, 2011, 19:15:40
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.

Titel: Re: In einem Formular einen bestimmten Datensatz suchen
Beitrag von: Beaker s.a. am November 06, 2011, 00:18:45
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.