作者:绿色风
分类:
时间:2022-08-17
浏览:109
楼主 xmyjk |
Q: 1、在“查询表”的C1单元格输入单位名称,应能自动将该单位相关业务记录的“内容”“单价”“数量”“金额”“经办人”“备注”项依次提取出来,填入此表相应位置。 例如:在C1录入“县职教中心”,应能自动将县职教中心相关业务记录的“内容”“单价”“数量”“金额”“经办人”“备注”项依次提取出来,填入此表相应位置。 2、若需同时查看多个单位的记录,可将第一行中的复选按钮选中后依次添加多个单位的业务记录。 3、单元格C1中应会出现下拉列表框,将“业务记录表”中各单位名称提取到列表中,以便选择(也可直接中C1中输入)需查询的单位。 4、“业务记录表”中记录的数据量很大时也应能完成。 注:“业务记录表”中记录了各单位在本部门所办业务的相关信息。
A:- Dim vl As String
- Private Sub CheckBox1_Click()
- [c1:g1].ClearContents
- vl = ""
- [a1].CurrentRegion.Offset(2).Clear
- End Sub
- Private Sub Worksheet_Activate()
- Dim cnn As Object, sql As String, arr
- Range("C1:G1").Validation.Delete
- Set cnn = CreateObject("ADODB.Connection")
- cnn.Open "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
- sql = "Select distinct 单位 From[业务记录表$] where 单位 is not null"
- arr = cnn.Execute(sql).getrows
- cnn.Close: Set cnn = Nothing
- With Range("C1:G1").Validation
- .Delete
- .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(Application.Transpose(Application.Transpose(arr)), ",")
- .IgnoreBlank = True
- .InCellDropdown = True
- .IMEMode = xlIMEModeNoControl
- .ShowInput = True
- .ShowError = True
- End With
- End Sub
- Private Sub Worksheet_Change(ByVal Target As Range)
- Application.EnableEvents = False
- If Target.Address(0, 0) = "C1" Or Target.Address(0, 0) = "C1:G1" Then
- Dim cnn As Object, sql As String
- [a1].CurrentRegion.Offset(2).Clear
- If [c1] <> "" Then
- Set cnn = CreateObject("ADODB.Connection")
- cnn.Open "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
- sql = "Select 序号,内容,单价,数量,金额,经办人,备注 From[业务记录表$] where 单位 = '" & Range("c1").Value & "'"
- If Sheet1.CheckBox1.Value = True Then
- If vl <> [c1] Then
- If vl <> "" Then
- [c1] = vl & "," & "'" & [c1] & "'"
- sql = "Select 序号,内容,单价,数量,金额,经办人,备注 From[业务记录表$] where 单位 in ('" & Range("c1").Value & ")"
- Else
- [c1] = "'" & [c1] & "'"
- End If
- vl = [c1]
- Else
- Exit Sub
- End If
- End If
- [a65536].End(3).Offset(1).CopyFromRecordset cnn.Execute(sql)
- cnn.Close: Set cnn = Nothing
- Else
- vl = ""
- End If
- End If
- Application.EnableEvents = True
- End Sub
业务记录效果表.zip |
2楼 eliane_lei |
进来学习!
|
3楼 老糊涂 |
进来学习 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一