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
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
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.
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
Super, hat auf antieb geklapt.
Danke
Gruss Iso

