0

我有一个 3 列的 Flexgrid (VSFlexGrid 8)

网格名称 = Main_Window.form_seg_carrier_grid

Select | Name | ID
x      | abc  | 1
       | cdf  | 2
x      | dfs  | 3

选择列定义为布尔数据类型,由用户选择哪些行是真/假。

我需要的是一种获取所有真实行并将 ID 设置为数组的方法。

目前我唯一能得到的就是告诉我选择了哪一行,或者它是真/假,0代表假,-1代表真。

阵列可以在按钮单击或更改时构建。

编辑 1

据我所知,这将触发一个 msgbox(测试变量的快速方法)以显示它何时设置为 true

    Private Sub form_seg_carrier_grid_Click()
Dim test As String
    test = Main_Window.form_seg_carrier_grid.Value
        If test = -1 Then

            MsgBox test

        End If

结束子

编辑 2

我觉得我很接近这样的事情,只是不能让它做我想做的事..

Dim i As Integer
Dim test As String

For i = 0 To Main_Window.form_seg_carrier_grid.Rows - 1
    If Main_Window.form_seg_carrier_grid.IsSelected(i) Then
        If test <> vbNullString Then test = test & ", "
            test = test & "'"
            test = test & Main_Window.form_seg_carrier_grid.ValueMatrix(i, 1)
            test = test & "'"
    End If
Next i
4

1 回答 1

0

我能够通过添加一个布尔列来实现这一点

0 为假,-1 为真

然后我使用这段代码构建了一个数组,我可以使用 IN 语句填充 SQL 查询

(i, 3) 指定我希望值来自哪一列

    Dim i As Integer
Dim test As String

For i = 0 To Main_Window.form_seg_carrier_grid.Rows - 1
    If Main_Window.form_seg_carrier_grid.ValueMatrix(i, 0) = -1 Then
        If test <> vbNullString Then test = test & ", "
            test = test & "'"
            test = test & Main_Window.form_seg_carrier_grid.ValueMatrix(i, 3)
            test = test & "'"
    End If
Next i

输出将是(参考原始帖子)

'1','3'
于 2015-12-10T17:35:58.463 回答