Private Sub dgAsset_AfterColEdit(ByVal ColIndex As Integer) sAssetSpecDataGrid = dgAssetSpec.Columns(dgAsset.Col).Caption Select Case sAssetSpecDataGrid Case "参数" If len(dgAsset.Columns(0).Text) > 20Then msgbox "========" end if End SelectEnd Sub
private sub datagrid1_keypress(keyascii As Integer) if datagrid1.col = 1 then '假定是列1 select case keyascii case 8, 9, 13 '放行tab, backspace, enter键 case else if lenb(strconv(datagrid1.text & chr(keyascii), vbFromUnicode)) > 20 then keyascii = 0 endif end select endif
1、同意 qingming81(晴明) 2、在数据库里限制,提交数据时会自动弹出错误
用Text是可以没错,但控制比较麻烦,我有用过 多谢各位指点,of123() 您的我修正如下:请指教If DataGrid1.Col = 1 Then Select Case keyascii Case 8, 9, 13 'tab, backspace, enter¼ü Case Else if LenB(StrConv(DataGrid1.Text & Chr(keyascii), vbFromUnicode)) - LenB(StrConv(DataGrid1.SelText & Chr(keyascii), vbFromUnicode)) > Rs(DataGrid1.Columns(index).DataField).DefinedSize Then keyascii = 0 End If End Select End If'Rs为绑定Datagrid1的记录集
稍作修正LenB(StrConv(DataGrid1.SelText, vbFromUnicode))应去掉 & Chr(keyascii)If DataGrid1.Col = 1 Then Select Case keyascii Case 8, 9, 13 'tab, backspace, enter¼ü Case Else if LenB(StrConv(DataGrid1.Text & Chr(keyascii), vbFromUnicode)) - LenB(StrConv(DataGrid1.SelText, vbFromUnicode)) > Rs(DataGrid1.Columns(index).DataField).DefinedSize Then keyascii = 0 End If End Select End If'Rs为绑定Datagrid1的记录集
Case "参数"
If len(dgAsset.Columns(0).Text) > 20Then
msgbox "========"
end if
End SelectEnd Sub
if datagrid1.col = 1 then '假定是列1
select case keyascii
case 8, 9, 13 '放行tab, backspace, enter键
case else
if lenb(strconv(datagrid1.text & chr(keyascii), vbFromUnicode)) > 20 then
keyascii = 0
endif
end select
endif
2、在数据库里限制,提交数据时会自动弹出错误
多谢各位指点,of123() 您的我修正如下:请指教If DataGrid1.Col = 1 Then
Select Case keyascii
Case 8, 9, 13 'tab, backspace, enter¼ü
Case Else
if LenB(StrConv(DataGrid1.Text & Chr(keyascii), vbFromUnicode)) - LenB(StrConv(DataGrid1.SelText & Chr(keyascii), vbFromUnicode)) > Rs(DataGrid1.Columns(index).DataField).DefinedSize Then
keyascii = 0
End If
End Select
End If'Rs为绑定Datagrid1的记录集
Select Case keyascii
Case 8, 9, 13 'tab, backspace, enter¼ü
Case Else
if LenB(StrConv(DataGrid1.Text & Chr(keyascii), vbFromUnicode)) - LenB(StrConv(DataGrid1.SelText, vbFromUnicode)) >
Rs(DataGrid1.Columns(index).DataField).DefinedSize Then
keyascii = 0
End If
End Select
End If'Rs为绑定Datagrid1的记录集