VB数据库编程中MSHFlexGrid控件用法详解

上传人:小** 文档编号:27389679 上传时间:2021-08-18 格式:DOC 页数:7 大小:98KB
收藏 版权申诉 举报 下载
VB数据库编程中MSHFlexGrid控件用法详解_第1页
第1页 / 共7页
VB数据库编程中MSHFlexGrid控件用法详解_第2页
第2页 / 共7页
VB数据库编程中MSHFlexGrid控件用法详解_第3页
第3页 / 共7页
资源描述:

《VB数据库编程中MSHFlexGrid控件用法详解》由会员分享,可在线阅读,更多相关《VB数据库编程中MSHFlexGrid控件用法详解(7页珍藏版)》请在装配图网上搜索。

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 KeyCo

2、deCase 27ESC:隐藏焦点并将其返回 MSFIexGridEdt.Visible = FalseMSHFIexGrid.SetFocusCase 13ENTER 将焦点返回 MSFIexGrid 。MSHFIexGrid.SetFocusDoEventsIf MSHFIexGrid.CoI MSFIexGrid.FixedRows Then MSFIexGrid.Row = MSFIexGrid.Row - 1End IfEnd SeIect End SubSub view_DP()If fIex1.CoI = 4 Or fIex1.CoI = 5 Or fIex1.CoI = 6 T

3、hen格式化 FIex1 表的第 7 列、第 8列、第 9 列、第 11列 fIex1.TextMatrix(fIex1.Row, 5) = Format(fIex1.TextMatrix(fIex1.Row, 5), 0.00) fIex1.TextMatrix(fIex1.Row, 6)= VaI(fIex1.TextMatrix(fIex1.Row, 4)*VaI(fIex1.TextMatrix(fIex1.Row, 5)fIex1.TextMatrix(fIex1.Row, 6) = Format(fIex1.TextMatrix(fIex1.Row, 6), 0.00) End I

4、fDim A, B As SingIe声明单精度浮点型变量On Error Resume NextFor i = 1 To flex1.Rows - 1If flex1.TextMatrix(i, 1) And flex1.TextMatrix(i, 4) And flex1.TextMatrix(i, 6) ThenA = Val(flex1.TextMatrix(i, 6) + A 求合计金额B = Val(flex1.TextMatrix(i, 4) + B 求合计数量End If Next i lblCount = B lblSum = Format(A, 0.00)格式化合计金额En

5、d SubSub SetButtons(bVal As Boolean) cmdRegister.Enabled = Not bVal cmdSave.Enabled = bVal cmdCancel.Enabled = bVal flex1.Enabled = bV al Frame1.Enabled = bValEnd SubPrivate Sub DataGrid2_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn ThenWith Adodc2.Recordset 赋值给 flex1 表格 If

6、.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 = FalseDataGrid2 不可见txtEdit.Text = txtEdit.SetFocusEnd IfIf 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 Sub

8、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$ = A|A商品名称|A规格|A单位广数量|A进货价|A金额|A备注”flex1.FormatString = s$End SubPrivate Sub flex1_KeyPress(KeyAscii As Integer)If flex1.Col = 4 Or flex1.Col = 1 Then MSHFlexGridEdit flex1, txtEdit, KeyAsciiEnd IfEnd Sub添加下列例程以初始化文本框,并将焦点从Hierarchical FlexGrid 传递到 TextBox 控件:Sub MSHFlexGridEdit(MSHFlexGrid As

10、Control, Edt As Control, KeyAscii As Integer) 使用已输入的字符。Select Case KeyAscii 空格表示编辑当前的文本。Case 0 To 32Edt = MSHFlexGridEdt.SelStart = 1000 其它所有字符表示取代当前的文本。Case ElseEdt = Chr(KeyAscii)Edt.SelStart = 1End Select 在合适的位置显示Edt 。Edt.Move MSHFlexGrid.Left + MSHFlexGrid.CellLeft - 15, _ MSHFlexGrid.Top + MSHF

11、lexGrid.CellTop - 15, _ MSHFlexGrid.CellWidth, _ MSHFlexGrid.CellHeight Edt.Visible = True Edt.SetFocusEnd SubPrivate Sub flex1_DblClick()模拟一个空格。If flex1.Col = 4 Or flex1.Col = 1 ThenMSHFlexGridEdit flex1, txtEdit, 32 End IfEnd SubPrivate Sub lblSum_Click()End SubPrivate Sub txt1_KeyDown(Index As In

12、teger, 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.RefreshIf Adodc1.Recordset.RecordCount 0 ThenDataGrid1.Visible = TrueDataGrid1.SetF

13、ocusElseAdodc1.RecordSource = 供应商信息表 Adodc1.RefreshIf Adodc1.Recordset.RecordCount 0 ThenDataGrid1.Visible = TrueDataGrid1.SetFocusElseMsgBox 无可选的供应商信息,请首先录入供应商数据!, , 提示窗口 End IfEnd IfEnd IfIf KeyCode = vbKeyReturn And Index = 1 Thenflex1.Col = 1flex1.Row = 1flex1.SetFocusEnd IfEnd SubPrivate Sub Da

14、taGrid1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Thentxt1(0) = Adodc1.Recordset.Fields( 供应商全称 )txt1(1).SetFocusDataGrid1.Visible = FalseEnd IfEnd SubPrivate Sub txtEdit_KeyPress(KeyAscii As Integer)删除回车符,以消除嘟嘟声。If KeyAscii = Asc(vbCr) Then KeyAscii = 0 End SubPrivate Sub

15、 txtEdit_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn And flex1.Col = 1 ThenAdodc2.RecordSource = 商品信息表 where 商品名称 like +%+ + txtEdit + +% Adodc2.RefreshIf Adodc2.Recordset.RecordCount 0 ThenDataGrid2.Visible = TrueDataGrid2.SetFocusElse Adodc2.RecordSource = 商品信息表 Adodc2.Re

16、freshIf Adodc2.Recordset.RecordCount 0 Then DataGrid2.Visible = True DataGrid2.SetFocusElseMsgBox 无可选的商品信息,请首先录入商品数据! , , 提示窗口 End IfEnd IfEnd If只有 TextBox 控件在“数量”单元格时,才使用以下过程If flex1.Col = 4 ThenEditKeyCode flex1, txtEdit, KeyCode, ShiftEnd If End Sub 当输入数据并按下 ENTER 键,或用鼠标单击 MSHFlexGrid 控件中的另一个单元时,

17、 焦点将返回此控件。这时 TextBox 中的文本被复制到活动单元中 Private Sub flex1_GotFocus()If txtEdit.Visible = False Then Exit Subflex1 = txtEdit txtEdit.Visible = False view_DPEnd SubPrivate Sub flex1_LeaveCell()If txtEdit.Visible = False Then Exit Subflex1 = txtEdit txtEdit.Visible = False End Sub Private Sub cmdCancel_Clic

18、k()For i = 1 To flex1.Rows - 1For j = 1 To flex1.Cols - 1 flex1.TextMatrix(i, j) = Next jNext iSetButtons FalsetxtEdit.Visible = False view_DPEnd SubPrivate Sub cmdRegister_Click()Dim lsph As Integer声明一个整型变量创建入库票号rs1.Open select * from 入库主表 order by 票号 , Cnn, adOpenStaticIf rs1.RecordCount 0 ThenIf

19、Not rs1.EOF Then rs1.MoveLastIf rs1.Fields( 票号 ) Thenlsph = Val(Right(Trim(rs1.Fields( 票号 ), 4) + 1 txtph.Text = Date & rk & Format(lsph, 0000)End IfElse txtph.Text = Date & rk & 0001End Ifrs1.ClosetxtDate.Text = Date 设置控件有效或无效 SetButtons True For i = 1 To flex1.Rows - 1 For j = 1 To flex1.Cols - 1

20、flex1.TextMatrix(i, j) = Next jNext itxt1(0) = txt1(1) = txt1(0).SetFocus view_DPEnd SubPrivate Sub cmdSave_Click()Dim js As IntegerFor i = 1 To flex1.Rows - 1If flex1.TextMatrix(i, 1) And flex1.TextMatrix(i, 2) And flex1.TextMatrix(i, 4) = ThenMsgBox 第 & i & 行录入错误! , , 提示窗口 Exit SubEnd IfIf flex1.T

21、extMatrix(i, 1) = Thenjs = js + 1End IfNext iIf js = flex1.Rows - 1 ThenMsgBox 没有要保存的数据! , , 提示窗口 Exit SubEnd Ifrs1.Open select * from 入库从表 , Cnn, adOpenKeyset, adLockOptimistic For i = 1 To flex1.Rows - 1If flex1.TextMatrix(i, 1) And flex1.TextMatrix(i, 2) And flex1.TextMatrix(i, 4) Then添加新记录到 入库从表

22、 中 rs1.AddNew商品名称 ) = flex1.TextMatrix(i, 1) 规格 ) = flex1.TextMatrix(i, 2) 单位 ) = flex1.TextMatrix(i, 3)If flex1.TextMatrix(i, 1) Then rs1.Fields(If flex1.TextMatrix(i, 2) Then rs1.Fields(If flex1.TextMatrix(i, 3) Then rs1.Fields( rsl.Fields(”入库数量 ”)=Val(flex1.TextMatrix(i, 4) rsl.Fields(”单价)=Val(fl

23、ex1.TextMatrix(i, 5)rsl.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) rs1.UpdateCnn.Execute (update 商 品 信 息 表 set 库 存 数 量 = 库 存 数 量 + & Val(flex1.TextMatrix(i, 4) & where 商品名称 = +

24、_flex1.TextMatrix(i, 1) + and 规格= + flex1.TextMatrix(i, 2) + )End IfNext irs1.Closers2.Open select * from 入库主表 , Cnn, adOpenKeyset, adLockOptimistic打开数据库rs2.AddNewIf 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 FalseEnd SubPrivate Sub cmdQuit_Click()EndEnd Sub

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!