Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Fokus auf einen Datensatz im Listenfeld setzen.





Frage

Hallo zusammen Wie kann ich einen Datensatz im Lisenfeld markieren? Ich habe den String den ich markieren möchte aber ich weich nicht wie ich dann den Fokus auf den Datensatz im Listenfeld setze. Hat da jemand eine Idee. Gruss Iso

Antwort 1 von mapet

Hallo

Ich glaube Du musst es genauer erklären. Wo hast Du den String und wie willst Du den Fokus setzen (mit vba?)

mapet

Antwort 2 von Iso

Hallo mapet

Das ganze ist auf einem Formular.
Im Anhang habe ich das Script in VBA.
Die Idee ist:
Ich gebe in einem Feld z.B. (intArtSuchen) einen Wert ein."0026077"

Ueber VBA suche ich dann den Wert und hole so den Wert aus einer anderen Spalte. z.B.(strKlassen)->"Erdung"
Diese Bezeichnung ist im Listenfeld aufgefuehrt.
Nun möchte ich den Focus in diesem Listenfeld auf die Gefundene Bezeichnung setzen.

Ich hoffe, dass ich mich einigermassen verständlich ausdrücken konnte.

Gruss Iso

Private Sub cmdArtSuchen_Click()
Dim intArtSuchen As String
Dim strKriterien As String, strQuery As String ', strDescription As String
Dim strKlassen1 As String
Dim strClass As String

On Error GoTo Err_cmdArtSuchen_Click

Dim rstTB As Recordset

Set rstDB = CurrentDb
strArtSuchen = "0026077"

strQuery = "SELECT ComponentData.COMPVAL, ComponentData.Class, qryComponentData_ik.strKlassen " _
& "FROM qryComponentData_ik INNER JOIN ComponentData ON qryComponentData_ik.BCODEG = ComponentData.BCODEG " _
& "WHERE (((ComponentData.COMPVAL)=""" & strArtSuchen & """));"


Set rstTB = rstDB.OpenRecordset(strQuery, dbOpenDynaset)

strKlassen1 = rstTB!strKlassen
strClass = rstTB!strKlassen
strQuery = strKlassen1
DoCmd.OpenForm "frmKlassen_ik", acNormal, , "strKlassen = '" & strQuery & "'"
'DoCmd.OpenForm "frmKlassen_ik", acNormal, , "Kombinationsfeld0 = '" & strClass & "'"


rstTB.Close

Exit_cmdArtSuchen_Click:
Exit Sub

Err_cmdArtSuchen_Click:
MsgBox Err.Description
Resume Exit_cmdArtSuchen_Click
End Sub

Antwort 3 von vbadi

Hi Iso,

du kannt mit einer for Schleife Dein Listenfeld abklappern und die entsprechende Zeile mit Selected markieren.

[CODE]
Dim lngCount As Long
Dim lngCounter AS Long

lngCount = Me.NameDeinListenfeld.ListCount
For lngCounter = 1 To lngCount
If Me.NameDeinListenfeld.column(1, lngCounter - 1) = "Deine StrBegriff" Then
Me.NameDeinListenfeld.Selected(lngCounter - 1) = True
Else
Me.NameDeinListenfeld.Selected(lngCounter - 1) = False
End If
Next lngCounter
[/CODE]

Mit ....column... musst Du event. auf Deine Spalte anpassen (Achtung 1.Spalte = 0, 2.Spalte = 1).

Gruß vbadi.

Antwort 4 von Iso

Hallo vbadi

Super, hat auf antieb geklapt.

Danke

Gruss Iso