PDA

Vollständige Version anzeigen : SuchFormular HILFE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


londi
14.08.2001, 10:13
Hallo leute!!

vor einige woche habe ich eine Frage gestellt, da nich die richtige antwort bekommen habe stelle ich die Frage noch ein mal!
Habe ein SuchFormular herstellt mit einem TextFeld(ungebunden) und einem Listenfeld(Inhalt der Listenfeld kommt aus eine Abfrage/Tabelle).
Ich will durch das eintippen im TextFeld das im Listenfeld schon anfängt zu suchen(aktuelle DS muss Markiert sein), dann durch die ReturnTaste sollen die Daten (aus den markierten DS) die ich will(zb:KdNr.,Nachname,Vorname)in einem Formular kopieren.
PS.: Keine KombinationFeld, Mouse.
das ApplicationsProgramm ist für eine Kassengeschäft vorgesehen, also nur über Tastatur eingabe.
Antwort brauche ich so schnell wie möglich
(KnoHw30 Beispiel funktioniert bei mir nicht)

DANKE an alle

MFG
Londi

sekoe
14.08.2001, 12:39
Hi londi,
Ist das Listenfeld numerisch oder ein String ?

londi
14.08.2001, 12:51
Hi Sekoe!
Bin vielleicht ein bisschen Blöd, weiss nicht.
Brauche die einfachste Lösung

Gruß
londi

sekoe
14.08.2001, 13:32
Hallöchen,
ich habe hier ein gaaaaaaanz zartes Pflänzchen mal zur weiteren Verwendung geschrieben.
BEACHTE:
txtTextfeld ist das Textfeld
lstListfeld ist das Listfeld (logisch gell ?)
Die Rowsource (Datensatzherkunft) als Abfrage speichern (Wenn noch nicht geschehen)
Da darf nix mit "SELECT blablabla" stehen !!
Bei vielen DS ist das Ding auch eher ähhhh... gemütlich

Private Sub txtTextfeld_Change()
' ****
' **** Position im Listfeld ermitteln
' ****
Dim rec As Recordset
Set rec = CurrentDb.OpenRecordset(Me.lstListfeld.RowSource, dbOpenSnapshot)

If rec.RecordCount <> 0 Then
rec.FindFirst "[DeinFeldname] LIKE '" & Me.txtTextfeld.Text & "*'"
Me.lstListfeld.Selected(rec.AbsolutePosition) = True
End If
Set rec = Nothing
End Sub

londi
14.08.2001, 14:17
Hallo Sekoe,

ich weis es nicht warum aber bei mir funzt dat nicht.

Private Sub Suche_Change()
Dim rec As Recordset

Set rec = CurrentDb.OpenRecordset(Me.Kundenliste.RowSource, dbOpenSnapshot)

If rec.RecordCount <> 0 Then
rec.FindFirst "[DeinFeldname] LIKE '" & Me.Suche.text & "*'"
Me.Kundenliste.Selected(rec.AbsolutePosition) = True
End If
Set rec = Nothing
End Sub

ListenFeldName=Kundenliste
TextFeldName=Suche
[DeinFeldName]=???(ist es vielleich einen Feld aus der ListenFeld?)

PS.: Bin Anfänger

Gruß
londi

londi
15.08.2001, 10:11
Hallo Sekoe,

mit diesen code bekomme Ich zwar Keine Fehlermeldung, aber ist anscheinend nicht ganz korrekt.
Kanst du mir sagen was es dabei Falsch ist???

Private Sub Suche_Change()
Dim rs
Dim db

Set db = CurrentDb
Set rs = db.OpenRecordset("Kundenliste")

If rs.RecordCount <> 0 Then
rs.FindFirst "[Nachname] LIKE '" & Me.Suche.text & "*'"
Me.Kundenliste.Selected(rs.AbsolutePosition) = True
End If
Set rs = Nothing
End Sub

ListenFeldName=Kundenliste
TextFeldName=Suche
[DeinFeldName]=???(ist es vielleich einen Feld aus der ListenFeld?)

PS.: Bin Anfänger

Gruß
Londi

A.S.
15.08.2001, 16:04
on top

sekoe
16.08.2001, 11:04
Bin daha, wer nohoch !!!
Sorry, hab kurz Urlaub gemacht. Ist die Datenherkunft für Dein Listfeld "Kundenliste" ?

londi
16.08.2001, 12:00
Hallo Sakoe,
ja, kommt aus abfrage

gruß
londi

sekoe
16.08.2001, 12:01
Kannst Du mal kurz den SQL-String von der Abfrage posten ?

londi
16.08.2001, 12:26
Hallo Sakoe,
glücklicherweise habe ich das Suchformular schon fertig (Vorläufig) und es läuft, trotzdem DANKE.
Habe aber eine Frage:
wie kann ich jetz die suchergebnisse in einem anderen Formular schicken.
D.H.: Ich habe im Listenfeld im SuchForm einem Kunde (mit KDNR, Nachname,Vorname, Straße, usw.) und will z.B. KDNR aus ListenFeld im einem anderen Formular "Kopieren".

Beispiel: KDNR aus Listenfeld von SuchFrom soll in KDNRTextFeld in Formular"Vorgang"

Danke Schonmal!
Gruß
Londi

sekoe
16.08.2001, 12:43
Hi,
eigentlich müsste das so funktionieren:
Forms!Vorgang!KDNRTextFeld.Text=Listenfeld.column(0)

londi
16.08.2001, 13:54
Hallo Sakoe,

Danke das Klappt, aber nur mit Textfelder die den Focus haben, was ist mit den danderen(deaktivierte)TextFelder? Wie Fülle ich sie ein wie KdNr?

Gruß
Londi

sekoe
16.08.2001, 14:12
Hi,
Bei den anderen Textfeldern erst den Focus setzen. z.B.:
Forms!Vorgang!NachnameTextFeld.Setfocus
Forms!Vorgang!NachnameTextFeld.Text=Listenfeld.column(1)
Schliessen mit:
docmd.close acForm, me.name

londi
16.08.2001, 14:28
Hallo Sekoe,

Danke für alles!
Es Klappt wie geschnurrt.

Gruß
Londi