ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 621|回复: 9

[求助] 希望大侠帮我弄一下个excel和access添加与查询的东西

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-9-3 13:13 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
先谢谢大侠的帮助了这个是查询和添加的问题
图一
QQ图片20140903131137.jpg

图二
QQ图片20140903131149.jpg

系统.rar

76.55 KB, 下载次数: 9

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-3 13:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
拜托帮帮忙好吗

TA的精华主题

TA的得分主题

发表于 2014-9-3 16:41 | 显示全部楼层
图一代码如下,图二代码下班后再说。
另外你图二中的大白框控件是什么啊,我的电脑打开时报丢失。
  1. Private Sub CommandButton1_Click()
  2.    
  3.     Dim myMDB As New ADOX.Catalog
  4.     Dim cnn As New ADODB.Command
  5.     Dim SQL As String
  6.     Dim ffp As String
  7.    
  8.     ffp = ThisWorkbook.path + "\数据库.accdb"
  9.    
  10.     If Dir(ffp) = "" Then
  11.         myMDB.Create "provider=microsoft.jet.oledb.4.0;data source=" & ffp
  12.         cnn.ActiveConnection = myMDB.ActiveConnection
  13.         SQL = "create table 数据(姓名 text(10),年龄 text(3),班级 text(10),语文 text(10),数学 text(10),英语 text(10))"
  14.         cnn.CommandText = SQL
  15.         cnn.Execute , , adCmdText
  16.         SQL = "insert into 数据 values('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox6.Text + "')"
  17.         cnn.CommandText = SQL
  18.         cnn.Execute , , adCmdText
  19.         Set myMDB = Nothing
  20.         Set cnn = Nothing
  21.     Else
  22.         cnn.ActiveConnection = "provider=microsoft.jet.oledb.4.0;data source=" & ffp
  23.         SQL = "insert into 数据 values('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox6.Text + "')"
  24.         cnn.CommandText = SQL
  25.         cnn.Execute , , adCmdText
  26.         Set myMDB = Nothing
  27.         Set cnn = Nothing
  28.     End If   
  29.    
  30. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-3 20:49 | 显示全部楼层
dqhtju 发表于 2014-9-3 16:41
图一代码如下,图二代码下班后再说。
另外你图二中的大白框控件是什么啊,我的电脑打开时报丢失。

你好 太感谢啦 虽然还没有试 但是感觉应该不错 呵呵 图二那个空白地方是listview控件

TA的精华主题

TA的得分主题

发表于 2014-9-3 23:08 | 显示全部楼层
图二代码
  1. Private Sub CommandButton2_Click()
  2.    
  3.     On Error Resume Next
  4.    
  5.     Dim cnn As New ADODB.Connection
  6.     Dim rs As New ADODB.Recordset
  7.     Dim ffp, SQL As String

  8.     ListBox1.Clear
  9.     ffp = ThisWorkbook.path + "\数据库.accdb"
  10.     If Dir(ffp) <> "" Then
  11.         cnn.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & ffp
  12.         SQL = "select * from 数据 where 班级='" + ComboBox1.Value + "'"
  13.         rs.Open SQL, cnn, adOpenStatic
  14.       
  15.         ListBox1.addItem "姓名"
  16.         ListBox1.List(0, 1) = "年龄"
  17.         ListBox1.List(0, 2) = "班级"
  18.         ListBox1.List(0, 3) = "语文"
  19.         ListBox1.List(0, 4) = "数学"
  20.         ListBox1.List(0, 5) = "外语"
  21.         For i = 1 To rs.RecordCount
  22.             ListBox1.addItem rs.Fields("姓名")
  23.             ListBox1.List(i, 1) = rs.Fields("年龄")
  24.             ListBox1.List(i, 2) = rs.Fields("班级")
  25.             ListBox1.List(i, 3) = rs.Fields("语文")
  26.             ListBox1.List(i, 4) = rs.Fields("数学")
  27.             ListBox1.List(i, 5) = rs.Fields("英语")
  28.             rs.MoveNext
  29.         Next
  30.         rs.Close
  31.         
  32.         SQL = "select sum(语文) as Chinese,sum(数学) as Math,sum(英语) as English from 数据 where 班级='" + ComboBox1.Value + "'"
  33.         rs.Open SQL, cnn, adOpenStatic
  34.         ListBox1.addItem "合计"
  35.         ListBox1.List(i, 3) = rs.Fields("Chinese")
  36.         ListBox1.List(i, 4) = rs.Fields("Math")
  37.         ListBox1.List(i, 5) = rs.Fields("English")
  38.         rs.Close
  39.         cnn.Close
  40.         Set rs = Nothing
  41.         Set cnn = Nothing
  42.     Else
  43.         MsgBox "数据文档不存在!"
  44.     End If
  45.    

  46. End Sub


  47. Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  48.     UserForm1.Show
  49.     'Unload Me
  50. End Sub

  51. Private Sub UserForm_Initialize()
  52.    
  53.    
  54.     addItem "班级"
  55.    
  56. End Sub
  57. Sub addItem(str As String)
  58.    
  59.     On Error Resume Next
  60.    
  61.     Dim i As Integer
  62.     Dim cnn As New ADODB.Connection
  63.     Dim rs As New ADODB.Recordset
  64.     Dim ffp As String
  65.    
  66.     ComboBox1.Clear
  67.     ComboBox1.TextColumn = 1
  68.     ffp = ThisWorkbook.path + "\数据库.accdb"
  69.     cnn.Open "provider=microsoft.jet.oledb.4.0;data source=" & ffp
  70.     SQL = "select distinct " + str + " from 数据"
  71.     rs.Open SQL, cnn, adOpenStatic
  72.     rs.MoveLast
  73.     rs.MoveFirst
  74.     For i = 1 To rs.RecordCount
  75.         ComboBox1.addItem rs.Fields(str)
  76.         rs.MoveNext
  77.     Next i
  78.     rs.Close
  79.     cnn.Close
  80.     Set rs = Nothing
  81.     Set cnn = Nothing
  82.    
  83. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-4 09:17 | 显示全部楼层
dqhtju 发表于 2014-9-3 23:08
图二代码

大侠,好像不行哦,我想要一个listview列表的呢。希望能帮我在解决一下!万分感谢!

TA的精华主题

TA的得分主题

发表于 2014-9-4 10:06 | 显示全部楼层
我没注意,以为是listbox呢
我看看这两个有什么区别,然后再更新

TA的精华主题

TA的得分主题

发表于 2014-9-4 10:35 | 显示全部楼层
zhy12346 发表于 2014-9-4 09:17
大侠,好像不行哦,我想要一个listview列表的呢。希望能帮我在解决一下!万分感谢!

试试看
  1. Private Sub CommandButton2_Click()
  2.     Call listItems_ListView
  3. End Sub

  4. Private Sub ListView1_DblClick()
  5.     UserForm1.Show
  6. End Sub

  7. Private Sub UserForm_Initialize()
  8.    
  9.     Dim wd As Single
  10.     Call addItem("班级")
  11.     wd = ListView1.Width / 6
  12.     ListView1.listItems.Clear
  13.     ListView1.ColumnHeaders.Clear
  14.     ListView1.ColumnHeaders.Add , , "年龄", wd
  15.     ListView1.ColumnHeaders.Add , , "姓名", wd
  16.     ListView1.ColumnHeaders.Add , , "班级", wd
  17.     ListView1.ColumnHeaders.Add , , "语文", wd
  18.     ListView1.ColumnHeaders.Add , , "数学", wd
  19.     ListView1.ColumnHeaders.Add , , "英语", wd
  20.     ListView1.View = lvwReport
  21.     ListView1.FullRowSelect = True
  22.     ListView1.Gridlines = True
  23.    
  24. End Sub

  25. Sub addItem(str As String)
  26.    
  27.     On Error Resume Next
  28.    
  29.     Dim i As Integer
  30.     Dim cnn As New ADODB.Connection
  31.     Dim rs As New ADODB.Recordset
  32.     Dim ffp As String
  33.    
  34.     ComboBox1.Clear
  35.     ComboBox1.TextColumn = 1
  36.     ffp = ThisWorkbook.path + "\数据库.accdb"
  37.     cnn.Open "provider=microsoft.jet.oledb.4.0;data source=" & ffp
  38.     SQL = "select distinct " + str + " from 数据"
  39.     rs.Open SQL, cnn, adOpenStatic
  40.     rs.MoveLast
  41.     rs.MoveFirst
  42.     For i = 1 To rs.RecordCount
  43.         ComboBox1.addItem rs.Fields(str)
  44.         rs.MoveNext
  45.     Next i
  46.     rs.Close
  47.     cnn.Close
  48.     Set rs = Nothing
  49.     Set cnn = Nothing
  50.    
  51. End Sub

  52. Sub listItems_ListView()

  53.     On Error Resume Next
  54.    
  55.     Dim cnn As New ADODB.Connection
  56.     Dim rs As New ADODB.Recordset
  57.     Dim ffp, SQL As String
  58.    
  59.     ListView1.listItems.Clear
  60.     ffp = ThisWorkbook.path + "\数据库.accdb"
  61.     If Dir(ffp) <> "" Then
  62.         cnn.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & ffp
  63.         SQL = "select * from 数据 where 班级='" + ComboBox1.Value + "'"
  64.         rs.Open SQL, cnn, adOpenStatic
  65.         
  66.         For i = 1 To rs.RecordCount
  67.             Set addItm = ListView1.listItems.Add()
  68.             addItm.Text = rs.Fields("姓名")
  69.             addItm.SubItems(1) = rs.Fields("年龄")
  70.             addItm.SubItems(2) = rs.Fields("班级")
  71.             addItm.SubItems(3) = rs.Fields("语文")
  72.             addItm.SubItems(4) = rs.Fields("数学")
  73.             addItm.SubItems(5) = rs.Fields("英语")
  74.             rs.MoveNext
  75.         Next
  76.         rs.Close
  77.         
  78.         SQL = "select sum(语文) as Chinese,sum(数学) as Math,sum(英语) as Eng from 数据 where 班级='" + ComboBox1.Value + "'"
  79.         rs.Open SQL, cnn, adOpenStatic
  80.         Set addItm = ListView1.listItems.Add()
  81.         addItm.Text = "合计"
  82.         addItm.SubItems(3) = rs.Fields("Chinese")
  83.         addItm.SubItems(4) = rs.Fields("Math")
  84.         addItm.SubItems(5) = rs.Fields("Eng")
  85.         rs.Close
  86.         cnn.Close
  87.         Set rs = Nothing
  88.         Set cnn = Nothing
  89.     Else
  90.         MsgBox "数据文档不存在!"
  91.     End If

  92. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-4 13:23 | 显示全部楼层
dqhtju 发表于 2014-9-4 10:35
试试看

大侠不好意思啊,我还得打扰你一下,这个有点报错了。
ListView1.FullRowSelect = True这条数据好像有点问题 QQ图片20140904132312.jpg
QQ图片20140904132307.png

TA的精华主题

TA的得分主题

发表于 2014-9-4 13:34 | 显示全部楼层
本帖最后由 dqhtju 于 2014-9-4 13:38 编辑
zhy12346 发表于 2014-9-4 13:23
大侠不好意思啊,我还得打扰你一下,这个有点报错了。
ListView1.FullRowSelect = True这条数据好像有点 ...

那你把它屏蔽就可以了。
引起这个问题的原因是我用的控件跟你的不一样,我用的是6.0。如图如果没有其他的问题,你可以把这个求助关闭了。


捕获.PNG
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-26 17:56 , Processed in 0.052216 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表