Hallo zusammen,
habe ein sevDataGrid im recordset Modus und in den angezeigten Daten eine Spalte vom Type COMBOLIST (namens ControlType).
In den Datensätzen stehen in dieser Spalte IDs, der Anwender soll aber ausschließlich mit den zugehörigen Texten hantieren.
Umgesetzt habe ich das 1:1 analog zur Online-Hilfe:Private Sub Form_Load()
Dim SQLString As String
(...) 'Öffnen des WS, der DB etc.
With Grid1
.LockUpdate True
.CreateClone = True
.DataMode = Mode_Recordset
.SaveNullValues = False
.AllowEdit = True
.Clear True
SQLString = "SELECT ArtParamID, ControlType FROM ArtParamDimension;"
Set .Recordset = DB.OpenRecordset(SQLString)
.Columns("ArtParamID").Visible = False
' Beim Editieren der ControlType-Spalte soll eine
' ComboBox mit bestimmten Auswahlpunkten angezeigt werden
.Columns("ControlType").ColType = TYPE_COMBOLIST
.LockUpdate False
.Refresh
End With
End Sub
Private Sub Grid1_RowLoaded(ByVal nRow As Long, Item As sevDataGrid2.ListItem)
With Item
' Volltext anzeigen
Select Case Val(.CellText("ControlType"))
Case 1 'TextBox
.CellText("ControlType") = "TextBox"
Case 2 'Label
.CellText("ControlType") = "Label"
Case 3 'ComboBox
.CellText("ControlType") = "ComboBox"
Case 4 'List
.CellText("ControlType") = "List"
Case 5 'CheckBox
.CellText("ControlType") = "CheckBox"
End Select
End With
End Sub
Private Sub Grid1_FillComboBox(ByVal nRow As Long, ByVal nCol As Long, _
oComboBox As sevDataGrid2.EditComboBox)
With Grid1
' Jetzt ComboBox mit Werten füllen
If .Columns(nCol).Key = "ControlType" Then
With oComboBox
' ComboBox mit 2 Spalten erstellen (ID und Text)
.ColumnAdd "CtrlType", , , , False
.ColumnAdd "Descr"
' Werte eintragen
.AddItem "1" & vbTab & "TextBox", "1"
.AddItem "2" & vbTab & "Label", "2"
.AddItem "3" & vbTab & "ComboBox", "3"
.AddItem "4" & vbTab & "List", "4"
.AddItem "5" & vbTab & "CheckBox", "5"
' 1. Spalte an das Datenfeld im DataGrid binden
.BoundColumn = 1
' 2. Spalte an das Eingabefeld binden
.DisplayColumn = 2
End With
End If
End With
End Sub Soweit, so schön...! Wenn man einen bestehenden Datensatz editiert, kann man mit der ComboBox ganz normal arbeiten.
Wenn ich allerdings einen neuen Datensatz (nach der AddNew()-Methode) bearbeite, und aus der ComboBox einen Eintrag auswähle, dann wird dieser nicht in die Zelle übernommen, sondern dort erscheint immer nur eine 0!
Übrigens verwende ich Version 2.2.42.
Für Hilfe wäre ich äußerst dankbar.
Gruß!
Reinski
Immer noch auf der Suche nach dem "Tu's trotzdem"-Button...  |