兄弟在线求救,一个数据库控件的使用

zheng518 2003-10-18 10:51:06
昨天我帮领导写了一个调查系统,使用中出现了一个不方便的地方,要求能够改进。就是数据批量的录入。我用的是DataGrid控件,我想使在这个控件里输入数据时能够想Access或Excel中一样,我每输入一个数据按回车键可以自动跳动到下一栏或一列添加,还有象Excel 一样有下拉框可以选择输入。不需要每次用鼠标来定位。等全部输入完成后在按保存按钮来保存数据,而不是输入一个按一次保存按钮,再按添加按钮来重新输入数据。我试了许多方法,均没有达到效果,请各位大侠指教,小弟感激不尽!
...全文
54 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
射天狼 2003-10-18
  • 打赏
  • 举报
回复
实现方法很多,只要肯动脑没有实现不了的~~
yoki 2003-10-18
  • 打赏
  • 举报
回复
用vsflexgrid
strongfisher 2003-10-18
  • 打赏
  • 举报
回复
换个控件
如tbgrid
Flex7.0
qinyonlhm 2003-10-18
  • 打赏
  • 举报
回复
这段代码处理输入的是否是你所设定的健值
Function TestText(KeyIn As Integer, ListString As String, EditBasp As Boolean) As Integer
Dim TestDATList As String '定义限制字符表变量
Dim KeyOut As Integer '返回值变量
If EditBasp = True Then '测试<BACKSPACE>是否有效
TestDATList = UCase(ListString) & Chr(8) '得到含<BACKSPACE>字符的大写表
Else
TestDATList = UCase(ListString) '得到无<BACKSPACE>字符的大写表
End If
If InStr(1, TestDATList, UCase(Chr(KeyIn)), 1) > 0 Then '键值是否在表中
KeyOut = KeyIn '是则附键值
Else
KeyOut = 0 '否则键值无效
Beep '响声警告
End If
TestText = KeyOut '返回结果
End Function
qinyonlhm 2003-10-18
  • 打赏
  • 举报
回复
使在这个控件里输入数据时能够想Access或Excel中一样
可以用Text控件来实现
Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, y As Single)
Dim i As Integer
If MSFlexGrid1.col < 2 Then Exit Sub
Text1.Visible = True
With MSFlexGrid1
Text1.Width = .ColWidth(.col)
Text1.Top = .CellTop + .Top
Text1.Left = .CellLeft + .Left
Text1.Text = Replace(.Text, "%", "")
i = Len(Text1.Text)
Text1.ZOrder 0
Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = i
tmpRow = .row
tmpCol = .col
End With

End Sub

处理Text控件的keyPress当按回车时的处理
Const ASC_ENTER = 13 '回车
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = ASC_ENTER Then
KeyAscii = 0
With MSFlexGrid1
.SetFocus
If Text1.Text <> "" Then
.Text = Text1.Text & "%"
Else
.Text = ""
End If
If tmpRow + 1 = .Rows Then
If tmpCol + 1 = .Cols Then Exit Sub
.row = 1
.col = tmpCol + 1
Else
.row = tmpRow + 1
.col = tmpCol
End If
If ChK_FL.Value = 1 Then
For tmpRow = 1 To .Rows - 1
.TextMatrix(tmpRow, tmpCol) = Text1.Text & "%"
Next
End If
End With
Call MSFlexGrid1_MouseDown(0, 0, 0, 0)
Else
KeyAscii = TestText(KeyAscii, "0123456789.", True)
If KeyAscii = 0 Then Text1.Text = ""
End If
zheng518 2003-10-18
  • 打赏
  • 举报
回复
愿楼上的老兄指点一二,谢谢!

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧