我有一个我想解决的问题。
我想在adodc更新数据库中的记录之前检查列是否在数据网格的行中重复了值。
为此,我将获取DataGrid中显示的记录并将它们放入Array中,然后计算单元格中具有相同值的行数。
我遇到的问题是我无法将DataGrid的单元格放入数组中,因此我可以检查重复的行。
如何在数组中获取DataGrid的单元格? 或者我怎么知道在数据库中进行更新之前是否重复了行的值?
答案 0 :(得分:0)
我同意@ bob-riemersma你的验证应该通过数据绑定和数据库约束完成,但如果你想手动完成(我认为这是一个坏主意),我会使用一个集合:
Private Function GridColHasDuplicates(col As Long) As Boolean
On Error GoTo DupeError
Dim noDupes As New Collection
myGrid.row = 0
myGrid.col = col
Do While myGrid.row <= myGrid.VisibleRows - 1
noDupes.Add myGrid.Columns(col).Value ' this will error off if dupe
If myGrid.row < myGrid.VisibleRows - 1 Then
myGrid.row = myGrid.row + 1
Else
Exit Do
End If
Loop
GridColHasDuplicates = False
Exit Function
DupeError:
GridColHasDuplicates = True
End Function