ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 运用VBA制作一个综合的台账系统,支持查询删除等功能

运用VBA制作一个综合的台账系统,支持查询删除等功能

作者:绿色风 分类: 时间:2022-08-18 浏览:190
楼主
xmyjk
Q:
1.如何把图示的内容经筛选后显示到窗体中去,可按具体的”采购订单“或”物料编号“或”下单日期“或”厂商代号“来点“Query”按钮就会在窗体中出现以下第2点的内容
2. 要在窗体中显示13个字段的内容(“订单号码”、“订单项次”、“物料编号”、“订单数量”、“单位”、“订单单价”、“币别”、“参考单号”、“要求交期”、“下单日期”、“在外量”、“采购金额”、“厂商代号”)
3.
点“Delete"按钮就可以删除所选中的内容(当然也要包括也删除对应工作表中的那一行)

A:查询运用了SQL,窗体使用了TREEVIEW,使用方法如下:

 
  1. Private Sub cmdClose_Click()
  2.    Unload Me
  3. End Sub

  4. Private Sub cmdDelete_Click()
  5. Dim i&
  6. Application.ScreenUpdating = False
  7. line1:
  8. For i = 1 To ListView1.ListItems.Count
  9.    If ListView1.ListItems(i).Checked = True Then
  10.        Sheets("采购订单状况").Range([Y2], [Y65536].End(3)).Find(ListView1.ListItems(i).ListSubItems(13).Text, , xlValues, xlWhole).EntireRow.Delete
  11.        ListView1.ListItems.Remove i
  12.        GoTo line1
  13.    End If
  14. Next
  15. Application.ScreenUpdating = True
  16. End Sub

  17. Private Sub cmdQuery_Click()
  18. Dim cnn, rcd, arr, sql As String, i&, j&, tmp, cxh
  19. ListView1.ListItems.Clear

  20. With Sheets("采购订单状况")
  21.    Set cnn = CreateObject("ADODB.Connection")
  22.    Set rcd = CreateObject("ADODB.recordset")
  23.    cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;imex=1';data source=" & ThisWorkbook.FullName
  24.    Select Case cboxCondition.Text
  25.       Case "订单号码": cxh = """" & UCase(txtCondition.Text) & """"
  26.       Case "物料编号": cxh = """" & UCase(txtCondition.Text) & """"
  27.       Case "下单日期": cxh = "#" & Format(txtCondition.Text, "yyyy-mm-dd") & "#"
  28.       Case "厂商代号": cxh = """" & UCase(txtCondition.Text) & """"
  29.    End Select
  30.    If txtCondition.Text = "" Then
  31.       sql = "Select 订单号码,订单项次,物料编号,订单数量,单位,订单单价,币别,参考单号,要求交期,下单日期,在外量,采购金额,厂商代号,序号 From [采购订单状况$]"
  32.    Else
  33.       sql = "Select 订单号码,订单项次,物料编号,订单数量,单位,订单单价,币别,参考单号,要求交期,下单日期,在外量,采购金额,厂商代号,序号 From [采购订单状况$] WHERE " & cboxCondition.Text & "=" & cxh
  34.    End If
  35.    rcd.Open sql, cnn
  36.    On Error Resume Next
  37.    arr = rcd.getrows()
  38.    rcd.Close: Set rcd = Nothing
  39.    cnn.Close: Set cnn = Nothing
  40.    
  41.    If IsArray(arr) Then
  42.    For i = 0 To UBound(arr, 2)
  43.       Set Itm = ListView1.ListItems.Add()
  44.       Itm.Text = arr(0, i)
  45.       For j = 1 To UBound(arr, 1)
  46.          If IsNull(arr(j, i)) Then
  47.             Itm.SubItems(j) = ""
  48.          Else
  49.             Itm.SubItems(j) = arr(j, i)
  50.          End If
  51.       Next
  52.    Next
  53.    Else
  54.       MsgBox "无相关记录!"
  55.    End If
  56.    Erase arr
  57. End With
  58. End Sub

  59. Private Sub UserForm_Initialize()
  60. Dim Itm As ListItem
  61. ListView1.ColumnHeaders.Clear
  62. ListView1.ListItems.Clear
  63.     With ListView1
  64.         .ColumnHeaders.Add 1, , "订单号码", .Width / 14
  65.         .ColumnHeaders.Add 2, , "订单项次", .Width / 14, lvwColumnCenter
  66.         .ColumnHeaders.Add 3, , "物料编号", .Width / 14, lvwColumnCenter
  67.         .ColumnHeaders.Add 4, , "订单数量", .Width / 14, lvwColumnCenter
  68.         .ColumnHeaders.Add 5, , "单位", .Width / 14, lvwColumnCenter
  69.         .ColumnHeaders.Add 6, , "订单单价", .Width / 14, lvwColumnCenter
  70.         .ColumnHeaders.Add 7, , "币别", .Width / 14, lvwColumnCenter
  71.         .ColumnHeaders.Add 8, , "参考单号", .Width / 14, lvwColumnCenter
  72.         .ColumnHeaders.Add 9, , "要求交期", .Width / 14, lvwColumnCenter
  73.         .ColumnHeaders.Add 10, , "下单日期", .Width / 14, lvwColumnCenter
  74.         .ColumnHeaders.Add 11, , "在外量", .Width / 14, lvwColumnCenter
  75.         .ColumnHeaders.Add 12, , "采购金额", .Width / 14, lvwColumnCenter
  76.         .ColumnHeaders.Add 13, , "厂商代号", .Width / 14, lvwColumnCenter
  77.         .ColumnHeaders.Add 14, , "序号", .Width / 14, lvwColumnCenter
  78.                
  79.         .View = lvwReport
  80.         .Gridlines = True
  81.         .FullRowSelect = True
  82.         .CheckBoxes = True
  83.     End With
  84.    
  85. cboxCondition.AddItem "订单号码"
  86. cboxCondition.AddItem "物料编号"
  87. cboxCondition.AddItem "下单日期"
  88. cboxCondition.AddItem "厂商代号"
  89.    
  90. txtCondition.SetFocus
  91. End Sub

  92. Private Sub CommandButton1_Click()

  93. [y1] = "序号": [Y2] = 1
  94. [Y2].AutoFill Destination:=Range([Y2], [X65536].End(3).Offset(0, 1)), Type:=xlFillSeries
  95. OrderQueryDelete.Show

  96. End Sub

VBA中查询与删除代码.rar
2楼
tangjunsxhz
下来学习,多谢分享
3楼
JOYARK1958
謝謝提供學習下載中
4楼
christ95
學習~~

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap