Hallo Dieter,
ich fülle ein Grid mit folgendem Code.
Public Sub GetLieferanten(ByVal TeileNr As Long)
Dim SQL As String
Dim rs As New ADODB.Recordset
SQL = "SELECT [Lieferanten&Artikel].Posart," & _
"[Lieferanten&Artikel].LieferantenNr, " & _
"[Lieferanten&Artikel].[Lieferanten&ArtikelNr]," & _
"[Lieferanten&Artikel].TeileNr, Adressen.Kürzel " & _
"FROM Adressen INNER JOIN [Lieferanten&Artikel] ON Adressen.LieferantenNr =" & _
"[Lieferanten&Artikel].LieferantenNr " & _
"WHERE ([Lieferanten&Artikel].TeileNr)= " & TeileNr
With Me!Lieferanten
.LockUpdate True
.BalloonTip = True
.FooterVisible = True
.FooterBackColor = vbButtonFace
.FooterFont.Bold = True
.CreateClone = True
.Clear True
If dbOpen() Then
' Recordset-Objekt für Lieferanten erstellen
rs.CursorLocation = adUseClient
rs.Open SQL, conn, adOpenStatic, adLockOptimistic
Set .Recordset = rs
.ReadColumnWidth "MyApplication", "lieferanten", "ColWidths"
.AutoSort = True
.AllowMultiSelect = False
.AllowEdit = True
.AutoUpdate = True
.AllowDelete = True
.AllowColumnSizing = True
.AllowColumnReorder = True
.WheelMouse = True
.LockUpdate False
.Columns(1).ColType = TYPE_COMBOBOX
.Columns(2).ColType = TYPE_COMBOBOX
.Columns(3).Visible = False
.Columns(4).Visible = False
.Refresh
rs.Close
Set rs = Nothing
End If
End With
End Sub Die Combobox wird mit folgendem Code gefüllt.
Private Sub Lieferanten_FillComboBox(ByVal nRow As Long, ByVal nCol As Long, _
oComboBox As sevDataGrid2.EditComboBox)
Dim SQL As String
Dim rs As New ADODB.Recordset
With Lieferanten
If .Columns(nCol).Key = "LieferantenNr" Then
With oComboBox
If dbOpen() Then
SQL = "SELECT LieferantenNr, Kürzel FROM Adressen WHERE (((" & _
"Adressen.LieferantenNr) Is Not Null)) ORDER BY" & _
"Adressen.Kürzel"
rs.CursorLocation = adUseClient
rs.Open SQL, conn, adOpenStatic, adLockReadOnly
Set .Recordset = rs
.BoundColumn = 1
.DisplayColumn = 2
.ColVisible(1) = False
End If
End With
End If
End With
End Sub Über den nächsten Code lasse ich mir zur LieferantenNr den Namen anzeigen.
Private Sub Lieferanten_RowLoaded(ByVal nRow As Long, Item As _
sevDataGrid2.ListItem)
Dim nID As Long
With Item
.CellText(0) = CStr(nRow)
Select Case Lieferanten.Recordset.Fields("Posart").Value
'Kürzel statt LieferantenNr in Combobox anzeigen
nID = Val(.CellText("LieferantenNr"))
.CellText("LieferantenNr") = ""
.CellText("LieferantenNr") = .CellText("Kürzel")
End With
End Sub Wenn ich den Lieferanten in der Combobox heraussuchen will, muss ich mit der Maus arbeiten. Eine Autocomplete Funktion ist nicht vorhanden.
Woran liegt das ?
Danke
Jörg |