ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:17.35KB ,
资源ID:6142624      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6142624.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇总VB数据库编程中MSHFlexGrid控件用法详解.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

汇总VB数据库编程中MSHFlexGrid控件用法详解.docx

1、汇总VB数据库编程中MSHFlexGrid控件用法详解汇总VB数据库编程中MSHFlexGrid控件用法详解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 Integ

2、er, Shift As Integer) 标准编辑控件处理。 Select Case KeyCode Case 27 ESC:隐藏焦点并将其返回 MSFlexGridEdt.Visible = False MSHFlexGrid.SetFocus Case 13 ENTER 将焦点返回 MSFlexGrid。MSHFlexGrid.SetFocus DoEvents If MSHFlexGrid.Col MSFlexGrid.FixedRows ThenMSFlexGrid.Row = MSFlexGrid.Row - 1End If End Select End Sub Sub view_

3、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) =

4、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

5、 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

6、 = 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) =

7、.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(

8、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) /

9、2 初始化编辑框 txtEdit = flex1.Rows = 101 flex1.Cols = 8 设置列标头。 s$ = |商品名称 |规格 |单位 |数量 |进货价 |金额 |备注 flex1.FormatString = s$ End SubPrivate Sub flex1_KeyPress(KeyAscii As Integer) If flex1.Col = 4 Or flex1.Col = 1 Then MSHFlexGridEdit flex1, txtEdit, KeyAsciiEnd If End Sub 添加下列例程以初始化文本框,并将焦点从 Hierarchical

10、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 MSH

11、FlexGrid.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 Su

12、b 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 ThenAdodc1.RecordSource = 供应商信息表 where 供应商编号 like +%+ + txt1(0) + +%or 供应商全称 like +%+ + txt1(0) + +%or 简称 like +%+ + txt1(0) + +%Adodc1.Refresh

13、If Adodc1.Recordset.RecordCount 0 ThenDataGrid1.Visible = True DataGrid1.SetFocus Else Adodc1.RecordSource = 供应商信息表Adodc1.Refresh If Adodc1.Recordset.RecordCount 0 ThenDataGrid1.Visible = True DataGrid1.SetFocus Else MsgBox 无可选的供应商信息,请首先录入供应商数据, , 提示窗口End If End If End If If KeyCode = vbKeyReturn An

14、d Index = 1 Thenflex1.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(Ke

15、yAscii As Integer) 删除回车符,以消除嘟嘟声。 If KeyAscii = Asc(vbCr) Then KeyAscii = 0 End Sub Private Sub txtEdit_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn And flex1.Col = 1 ThenAdodc2.RecordSource = 商品信息表 where 商品名称 like +%+ + txtEdit + +%Adodc2.Refresh If Adodc2.Recordset.RecordCo

16、unt 0 ThenDataGrid2.Visible = True DataGrid2.SetFocus Else Adodc2.RecordSource = 商品信息表Adodc2.Refresh If Adodc2.Recordset.RecordCount 0 ThenDataGrid2.Visible = True DataGrid2.SetFocus Else MsgBox 无可选的商品信息,请首先录入商品数据, , 提示窗口End If End If End If 只有TextBox控件在“数量”单元格时,才使用以下过程If flex1.Col = 4 Then EditKeyC

17、ode flex1, txtEdit, KeyCode, ShiftEnd If End Sub 当输入数据并按下 ENTER 键,或用鼠标单击MSHFlexGrid 控件中的另一个单元时,焦点将返回此控件。这时 TextBox 中的文本被复制到活动单元中Private Sub flex1_GotFocus() If txtEdit.Visible = False Then Exit Sub flex1 = txtEdit txtEdit.Visible = False view_DP End Sub Private Sub flex1_LeaveCell() If txtEdit.Visib

18、le = False Then Exit Sub flex1 = txtEdittxtEdit.Visible = False End Sub Private 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_DP End Sub Private Sub cmdRegister_Click() Dim lsph As In

19、teger 声明一个整型变量创建入库票号 rs1.Open select * from 入库主表 order by 票号, Cnn, adOpenStaticIf rs1.RecordCount 0 Then If Not rs1.EOF Then rs1.MoveLast If rs1.Fields(票号) Then lsph = Val(Right(Trim(rs1.Fields(票号), 4) + 1txtph.Text = Date & rk & Format(lsph, 0000)End If Else txtph.Text = Date & rk & 0001 End If rs1

20、.Close txtDate.Text = Date 设置控件有效或无效 SetButtons True For i = 1 To flex1.Rows - 1 For j = 1 To flex1.Cols - 1 flex1.TextMatrix(i, j) = Next j Next i txt1(0) = txt1(1) = txt1(0).SetFocus view_DP End Sub Private Sub cmdSave_Click()Dim js As Integer For i = 1 To flex1.Rows - 1 If flex1.TextMatrix(i, 1)

21、And flex1.TextMatrix(i, 2) And flex1.TextMatrix(i, 4) = Then MsgBox 第 & i & 行录入错误, , 提示窗口Exit Sub End If If flex1.TextMatrix(i, 1) = Then js = js + 1 End If Next i If js = flex1.Rows - 1 Then MsgBox 没有要保存的数据, , 提示窗口Exit Sub End If rs1.Open select * from 入库从表, Cnn, adOpenKeyset, adLockOptimisticFor i

22、 = 1 To flex1.Rows - 1 If flex1.TextMatrix(i, 1) And flex1.TextMatrix(i, 2) And flex1.TextMatrix(i, 4) Then 添加新记录到入库从表中 rs1.AddNew If flex1.TextMatrix(i, 1) Then rs1.Fields(商品名称) = flex1.TextMatrix(i, 1)If flex1.TextMatrix(i, 2) Then rs1.Fields(规格) = flex1.TextMatrix(i, 2)If flex1.TextMatrix(i, 3) T

23、hen rs1.Fields(单位) = flex1.TextMatrix(i, 3)rs1.Fields(入库数量) = Val(flex1.TextMatrix(i, 4)rs1.Fields(单价) = Val(flex1.TextMatrix(i, 5)rs1.Fields(金额) = Val(flex1.TextMatrix(i, 6)If flex1.TextMatrix(i, 7) Then rs1.Fields(备注) = flex1.TextMatrix(i, 7)If txtph.Text Then rs1.Fields(入库票号) = Trim(txtph.Text)rs

24、1.Update Cnn.Execute (update 商品信息表 set 库存数量=库存数量+ & Val(flex1.TextMatrix(i, 4) & where 商品名称 = + _flex1.TextMatrix(i, 1) + and 规格= + flex1.TextMatrix(i, 2) + )End If Next i rs1.Close rs2.Open select * from 入库主表, Cnn, adOpenKeyset, adLockOptimistic 打开数据库 rs2.AddNew If txtph.Text Then rs2.Fields(票号) = Trim(txtph.Text)If txtDate.Text Then rs2.Fields(入库日期) = Trim(txtDate.Text)If txt1(0) Then rs2.Fields(供应商全称) = txt1(0)If txt1(1) Then rs2.Fields(经手人) = txt1(1)rs2.Fields(入库金额) = lblSum rs2.Update rs2.Close 设置控件有效或无效 SetButtons False End Sub Private Sub cmdQuit_Click() End

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2