没有合适的资源?快使用搜索试试~ 我知道了~
VB数据库编程中MSHFlexGrid控件用法详解.doc
0 下载量 87 浏览量
2022-12-01
10:19:38
上传
评论
收藏 112KB DOC 举报
温馨提示
试读
26页
VB数据库编程中MSHFlexGrid控件用法详解.doc
资源推荐
资源详情
资源评论
VB 数据库编程中 MSHFlexGrid 控件用法详解
添加 MSHFlexGrid 将 Name 改成 flex1
添加 text 将 name 改成 txtedit
Public rs1 As New ADODB.Recordset, rs2 As New ADODB.Recordset '定义数据集对象
Dim i As Integer, j As Integer
Sub EditKeyCode(MSHFlexGrid As Control, Edt As Control, KeyCode As Integer, Shift As
Integer)
'标准编辑控件处理。
Select Case KeyCode
Case 27 'ESC:隐藏焦点并将其返回 MSFlexGrid
Edt.Visible = False
MSHFlexGrid.SetFocus
Case 13 'ENTER 将焦点返回 MSFlexGrid。
MSHFlexGrid.SetFocus
DoEvents
If MSHFlexGrid.Col < MSHFlexGrid.Cols - 1 Then
MSHFlexGrid.Col = MSHFlexGrid.Col + 1
Else
If MSHFlexGrid.Col = MSHFlexGrid.Cols - 1 Then
MSHFlexGrid.Row = MSHFlexGrid.Row + 1
MSHFlexGrid.Col = 1
End If
End If
Case 38 '向上
MSHFlexGrid.SetFocus
DoEvents
If MSFlexGrid.Row > MSFlexGrid.FixedRows Then
MSFlexGrid.Row = MSFlexGrid.Row - 1
End If
End Select
End Sub
Sub view_DP()
If flex1.Col = 4 Or flex1.Col = 5 Or flex1.Col = 6 Then
'格式化 Flex1 表的第 7 列、第 8 列、第 9 列、第 11 列
flex1.TextMatrix(flex1.Row, 5) = Format(flex1.TextMatrix(flex1.Row, 5), "0.00")
flex1.TextMatrix(flex1.Row, 6) = Val(flex1.TextMatrix(flex1.Row, 4)) *
Val(flex1.TextMatrix(flex1.Row, 5))
flex1.TextMatrix(flex1.Row, 6) = Format(flex1.TextMatrix(flex1.Row, 6), "0.00")
End If
Dim A, B As Single '声明单精度浮点型变量
On Error Resume Next
For i = 1 To flex1.Rows - 1
If flex1.TextMatrix(i, 1) <> "" And flex1.TextMatrix(i, 4) <> "" And flex1.TextMatrix(i,
6) <> "" Then
A = Val(flex1.TextMatrix(i, 6)) + A '求合计金额
B = Val(flex1.TextMatrix(i, 4)) + B '求合计数量
End If
Next i
lblCount = B
lblSum = Format(A, "0.00") '格式化合计金额
End Sub
Sub SetButtons(bVal As Boolean)
cmdRegister.Enabled = Not bVal
cmdSave.Enabled = bVal
cmdCancel.Enabled = bVal
flex1.Enabled = bVal
Frame1.Enabled = bVal
End Sub
Private Sub DataGrid2_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
With Adodc2.Recordset
'赋值给 flex1 表格
If .Fields("商品名称") <> "" Then flex1.TextMatrix(flex1.Row, 1) = Trim(.Fields("商
品名称"))
If .Fields("规格") <> "" Then flex1.TextMatrix(flex1.Row, 2) = Trim(.Fields("规格"))
If .Fields("单位") <> "" Then flex1.TextMatrix(flex1.Row, 3) = Trim(.Fields("单位"))
flex1.TextMatrix(flex1.Row, 5) = .Fields("成本价")
End With
flex1.Col = 4
DataGrid2.Visible = False 'DataGrid2 不可见
txtEdit.Text = ""
txtEdit.SetFocus
End If
If KeyCode = vbKeyEscape Then '按 ESC 键 DataGrid2 不可见
DataGrid2.Visible = False
' txtEdit.SetFocus 'txtEdit 获得焦点
End If
End Sub
Private Sub delone_Click()
For i = 1 To flex1.Cols - 1
flex1.TextMatrix(flex1.Row, i) = ""
Next i
view_DP
End Sub
Private Sub flex1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
'利用 PopupMenu 方法
If Button And vbRightButton Then
PopupMenu edit '弹出菜单
End If
End Sub
Private Sub Form_Load()
Dim i As Integer
'使第一列较窄。
flex1.ColWidth(0) = flex1.ColWidth(0) / 2
'初始化编辑框
txtEdit = ""
flex1.Rows = 101
flex1.Cols = 8
'设置列标头。
s$ = "^|^商品名称 |^规格 |^单位 |^
数量 |^进货价 |^金额 |^备注 "
flex1.FormatString = s$
End Sub
Private Sub flex1_KeyPress(KeyAscii As Integer)
If flex1.Col >= 4 Or flex1.Col = 1 Then
MSHFlexGridEdit flex1, txtEdit, KeyAscii
End If
End Sub
'添加下列例程以初始化文本框,并将焦点从 Hierarchical FlexGrid 传递到 TextBox 控件:
Sub MSHFlexGridEdit(MSHFlexGrid As Control, Edt As Control, KeyAscii As Integer)
'使用已输入的字符。
Select Case KeyAscii
'空格表示编辑当前的文本。
Case 0 To 32
Edt = MSHFlexGrid
Edt.SelStart = 1000
'其它所有字符表示取代当前的文本。
Case Else
Edt = Chr(KeyAscii)
Edt.SelStart = 1
End Select
'在合适的位置显示 Edt。
Edt.Move MSHFlexGrid.Left + MSHFlexGrid.CellLeft - 15, _
MSHFlexGrid.Top + MSHFlexGrid.CellTop - 15, _
MSHFlexGrid.CellWidth, _
MSHFlexGrid.CellHeight
Edt.Visible = True
Edt.SetFocus
End Sub
Private Sub flex1_DblClick()
If flex1.Col >= 4 Or flex1.Col = 1 Then
MSHFlexGridEdit flex1, txtEdit, 32 '模拟一个空格。
End If
End Sub
Private Sub lblSum_Click()
End Sub
Private Sub txt1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn And Index = 0 Then
Adodc1.RecordSource = "供应商信息表 where 供应商编号 like +'%'+'" + txt1(0) + "'+'%'or
供应商全称 like +'%'+'" + txt1(0) + "'+'%'or 简称 like +'%'+'" + txt1(0) + "'+'%'"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
DataGrid1.Visible = True
DataGrid1.SetFocus
Else
Adodc1.RecordSource = "供应商信息表"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
DataGrid1.Visible = True
DataGrid1.SetFocus
Else
MsgBox "无可选的供应商信息,请首先录入供应商数据!", , "提示窗口"
End If
End If
End If
If KeyCode = vbKeyReturn And Index = 1 Then
flex1.Col = 1
flex1.Row = 1
flex1.SetFocus
End If
End Sub
Private Sub DataGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
txt1(0) = Adodc1.Recordset.Fields("供应商全称")
txt1(1).SetFocus
DataGrid1.Visible = False
End If
End Sub
Private Sub txtEdit_KeyPress(KeyAscii As Integer)
'删除回车符,以消除嘟嘟声。
剩余25页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3614
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 青岛大学人工智能实验二 利用α-β搜索的博弈树算法编写一字棋游戏
- ### 1、项目介绍 本项目Scrapy进行数据爬取,并使用Django框架+PyEcharts实现可视化大屏 效果如下:
- # 微信小程序-健康菜谱 基于微信小程序的一个查找检索菜谱的应用 ### 效果 !动态图(./res/gif/demo
- zabbix-get命令包资源
- 289ssm-mysql-jsp 计算机课程实验管理系统.zip(可运行源码+数据库文件+文档)
- 毕业设计,基于PyQt5实现的可视化界面的Python车牌自动识别系统源码
- 20-天天果园项目.rar
- 26-朴素贝叶斯分类.rar
- 没有安Matlab 也可以 生成FIR抽头系数工具.py
- 自助购药小程序源代码含文档
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功