VB数据库编程中MSHFlexGrid控件用法详解.doc
《VB数据库编程中MSHFlexGrid控件用法详解.doc》由会员分享,可在线阅读,更多相关《VB数据库编程中MSHFlexGrid控件用法详解.doc(26页珍藏版)》请在咨信网上搜索。
1、VB数据库编程中MSHFlexGrid控件用法详解添加MSHFlexGrid将Name改成flex1添加text 将name 改成txteditPublic rs1 As New ADODB.Recordset, rs2 As New ADODB.Recordset 定义数据集对象Dim i As Integer, j As IntegerSub EditKeyCode(MSHFlexGrid As Control, Edt As Control, KeyCode As Integer, Shift As Integer) 标准编辑控件处理。 Select Case KeyCode Case
2、27 ESC:隐藏焦点并将其返回 MSFlexGrid Edt.Visible = False MSHFlexGrid.SetFocus Case 13 ENTER 将焦点返回 MSFlexGrid。 MSHFlexGrid.SetFocus DoEvents If MSHFlexGrid.Col MSFlexGrid.FixedRows Then MSFlexGrid.Row = MSFlexGrid.Row - 1 End If End SelectEnd SubSub view_DP() If flex1.Col = 4 Or flex1.Col = 5 Or flex1.Col = 6
3、 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
4、 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) 格
5、式化合计金额End SubSub SetButtons(bVal As Boolean) cmdRegister.Enabled = Not bVal cmdSave.Enabled = bVal cmdCancel.Enabled = bVal flex1.Enabled = bVal Frame1.Enabled = bValEnd SubPrivate Sub DataGrid2_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then With Adodc2.Recordset 赋值给flex
6、1表格 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.Vis
7、ible = False DataGrid2不可见 txtEdit.Text = txtEdit.SetFocus End If If KeyCode = vbKeyEscape Then 按ESC键DataGrid2不可见 DataGrid2.Visible = False txtEdit.SetFocus txtEdit获得焦点 End IfEnd SubPrivate Sub delone_Click() For i = 1 To flex1.Cols - 1 flex1.TextMatrix(flex1.Row, i) = Next i view_DPEnd SubPrivate Su
8、b flex1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) 利用PopupMenu方法 If Button And vbRightButton Then PopupMenu edit 弹出菜单 End IfEnd SubPrivate Sub Form_Load() Dim i As Integer 使第一列较窄。 flex1.ColWidth(0) = flex1.ColWidth(0) / 2初始化编辑框 txtEdit = flex1.Rows = 101 flex1.Cols = 8
9、设置列标头。 s$ = |商品名称 |规格 |单位 |数量 |进货价 |金额 |备注 flex1.FormatString = s$End SubPrivate Sub flex1_KeyPress(KeyAscii As Integer) If flex1.Col = 4 Or flex1.Col = 1 Then MSHFlexGridEdit flex1, txtEdit, KeyAscii End IfEnd Sub添加下列例程以初始化文本框,并将焦点从 Hierarchical FlexGrid 传递到 TextBox 控件:Sub MSHFlexGridEdit(MSHFlexGr
10、id 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, _ MSHFlex
11、Grid.Top + MSHFlexGrid.CellTop - 15, _ MSHFlexGrid.CellWidth, _ MSHFlexGrid.CellHeight Edt.Visible = True Edt.SetFocusEnd SubPrivate Sub flex1_DblClick() If flex1.Col = 4 Or flex1.Col = 1 Then MSHFlexGridEdit flex1, txtEdit, 32 模拟一个空格。 End IfEnd SubPrivate Sub lblSum_Click()End SubPrivate Sub txt1_K
12、eyDown(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.Vis
13、ible = 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 fl
14、ex1.SetFocus End IfEnd SubPrivate 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 IfEnd SubPrivate Sub txtEdit_KeyPress(KeyAscii As Integer) 删除回车符,以消除嘟嘟声。 If KeyAscii = A
15、sc(vbCr) Then KeyAscii = 0End SubPrivate Sub txtEdit_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn And flex1.Col = 1 Then Adodc2.RecordSource = 商品信息表 where 商品名称 like +%+ + txtEdit + +% Adodc2.Refresh If Adodc2.Recordset.RecordCount 0 Then DataGrid2.Visible = True DataGrid2.S
16、etFocus Else Adodc2.RecordSource = 商品信息表 Adodc2.Refresh If Adodc2.Recordset.RecordCount 0 Then DataGrid2.Visible = True DataGrid2.SetFocus Else MsgBox 无可选的商品信息,请首先录入商品数据!, , 提示窗口 End If End If End If 只有TextBox控件在“数量”单元格时,才使用以下过程 If flex1.Col = 4 Then EditKeyCode flex1, txtEdit, KeyCode, Shift End If
17、End Sub当输入数据并按下 ENTER 键,或用鼠标单击MSHFlexGrid 控件中的另一个单元时,焦点将返回此控件。这时 TextBox 中的文本被复制到活动单元中Private Sub flex1_GotFocus() If txtEdit.Visible = False Then Exit Sub flex1 = txtEdit txtEdit.Visible = False view_DPEnd SubPrivate Sub flex1_LeaveCell() If txtEdit.Visible = False Then Exit Sub flex1 = txtEdit txt
18、Edit.Visible = FalseEnd SubPrivate Sub cmdCancel_Click() For i = 1 To flex1.Rows - 1 For j = 1 To flex1.Cols - 1 flex1.TextMatrix(i, j) = Next j Next i SetButtons False txtEdit.Visible = False view_DPEnd SubPrivate Sub cmdRegister_Click() Dim lsph As Integer 声明一个整型变量 创建入库票号 rs1.Open select * from 入库
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 数据库 编程 MSHFlexGrid 控件 用法 详解
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。