Access数据库、Excel表格与VB编程完美结合实现Excel表格透视功能-vb数据库
原创

Access数据库、Excel表格与VB编程完美结合实现Excel表格透视功能-vb数据库

好文
试试语音读文章

现有9个班级的学生成绩表。包括三门课的成绩:

门槛在excel中画出每一个班级每科平均成绩柱状图。

如果单纯的用Excel整理资料很是麻烦。总共九个班级。每一个班级都门槛三门课的平均成绩。费时费力。

可以借助Access资料库将资料统计出去。之后跟着回到Excel进行成图。

第一步:将资料直接粘贴到Access资料库

复制Excel表格中的学生成绩资料→打开已一些Access资料库→创建表→粘贴保存

第二步:创建查询。统计资料

创建→查询设计→编辑语句→运行:

select 班级,avg(语文),avg(英文),avg(数学) from 表1 group by 班级

运行结果:

第三步:复制到Excel表格中。进行成图

点一下左边最上角→右键复制→打开Excel表格→粘贴→成图

粘贴到Excel表格中:

成图:

点一下插入→图表→柱状图

结果:

其实。在事实事情中有很多问题是可以通过Access资料库与Excel表格混合来解决的。这样很能够节节省时间间。即便在Excel表格当中也提供了很多函数能够分组求得我们想要的结果。但是步骤繁琐。

能通过这个混合的方法可以较好的解决不一样的难题。一个是使用了Access资料库处理资料的优势。一个是使用了Excel表格成图的优势。两个优势混合。必然效率更高。

VB程序全自动资料处理Access资料库与Excel表格资料VB程序设计比较容易学习。有的非电脑专业的人士也能够轻松学好VB程序设计。VB程序设计来应付你日常事情中的问题。是完整可以胜任的。有有的比较杂乱的资料需要进行处理运算。如果单纯的有表格或者资料库。整个操作是相当麻烦的。不仅浪费了时光。还容易出错。下面来讲解一下使用VB程序怎么样读取Access资料库中的资料与Excel表格中的资料。

VB程序读取Excel表格资料

首先打开VB6.0程序设计。打开后是这种窗口:

这是一个空的程序窗口。我们还没添加所有控件和代码。我们先不细讲解VB6.0的窗口。我们现在只用到它的按钮控件。就是上面圈起来的东东。它在里面叫做“commandbutton”。我们双击它。它就跳到我们的窗口窗口了:

再来继续双击。就可以编编辑代码啦:

其实和Access资料库与Excel表格的VBA宏是差不多的。只不过语法上略有差别。VB6.0可以很灵巧的去做一个小的应用程序。而VBA宏就只能作为插件使用。

编辑读取Excel表格资料的程序。其实读取的代码基础是特定的。只要各位把这种特定的程序代码直接复制进去就好。开始不用自己吻全自动手去敲代码的。

各位可以就这样看一下这些代码。都表示什么意思呢?

我们来就这样看定义的内容:

Dim xl软件 As Excel.软件licationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim xlSheet1 As Excel.Worksheet这几个定义都是特定的模式。我们使用VB程序对Excel表格资料进行读取时。都要对Excel进行定义。这样VB程序才能够查看出所要读取的文件。

Set xl软件 = CreateObject("Excel.软件lication")是建立Excel文件用的。它表示建立一个Excel对象。对象建立完了之后。我们就可以打开指定的文件了。就是下面这种:

Set xlBook = xl软件.Workbooks.Open("F:\报表运行表.xls")xl软件.Visible = True//表示让对象可见。就是在读取的时候。我们能观看到的文件的打开。Set xlSheet1 = xlBook.Worksheets("表1")//表示要读取文件中的哪个表。这里面是读取"表1"xlSheet1.Activate//表示激活要读取的表。只有激活了。才能保证操作在目前表进行以上都是特定的模式。各位可以复制就可以。不用敲代码。

紧接着。For i = 4 To 89....Next i就是我们读取资料和处理资料的过程了。详细要根据实现什么样的功能。来编编辑程序。

再往下还是特定的模式。就是读取完文件内容后。要把文件关闭掉。要不它会始终占据内存的:

xlBook.Closexl软件.QuitSet xl软件 = Nothing上面就是关闭文件。释放对象的过程。

MsgBox "good job"就是程序运行完之后会弹出小的对话聊天框。对话聊天框展现的文字就是“good job”。当然也完全可以展现“程序已经运行完毕”。比较灵巧。

代码编辑完之后。我们来运行驶路程序。就是点一下这种小三角号:

运行之后。会弹出:

可以观看到的。这窗体上面只有一个按钮。我们要想运行我们刚刚编辑的代码。只要点一下上面这种按钮就可以啦。就是点一下“Command1”。

VB程序读取Access资料库资料

下面再来观望VB怎么样操作Access资料库。其实VB操作Access资料库的代码理简单。观望下面这种就了解啦:

可以观看到的。前三行是定义:

Dim conn As New ADODB.ConnectionDim strConn As StringDim sql As String是特定的模式。直接复制进去就可以。

strConn = "Provider=microsoft.ace.oledb.12.0;Data Source=D:\0基本资料\data.accdb"这条语句是读取路径。寻找文件的地点。也是特定的模式。只要把文件名改了就可以。

再往下是一条查询语句:

sql2 = "select b.* into yj1 from (select jh,min(rqx) as rqx1 from yjs07 group by jh) a left join yjs07 b on (a.jh=b.jh and a.rqx1=b.rqx)"这条查询语句就是我们要实现的杂乱操作。当然我们在程序里面可以上百条的查询语句。只要碰到一样的事情。我们可以直接运行驶路程序就可以。

再往下:

conn.Open strConnconn.Execute (sql1)这两条语句就是执行我们前面编辑的的查询语句啦。也是特定的。只要把查询语句的名称改了就好。

Set conn = Nothing//这是释放文件。用完了要关掉。再往下就是MsgBox "good job"。就是和上面操作Excel表格一样。程序运行完了之后会弹出一个对话聊天框:

其实非电脑专业的人士也能够较好的学会编程。只要把握技术是非常的容易把握的。小编身边有不少非电脑专业的人都在学习编程。只要把握了编程。手头的事情会变的如此轻松。

VB程序存取Excel资料实例教学先来就这样看一个VB程序存取Excel表格资料的举例。我们要把“sheet1”表中一班的学生语文成绩用VB程序存取到“sheet2”表里面去。

首先打开安装好的VB6.0程序。之后跟着保存到一个指定的文件夹下面。这样我们就有了一个空的VB程序。我们双击按钮控件。按钮控件就会全自动跳到窗体上面:

在进入代码窗口以前我们简单把这种控件设计成漂亮的样式。点一下属性窗口图标。就会弹出一个属性窗口。在这种窗口下。就能对我们的按钮进行设计啦:

之后跟着点一下按钮控件。在右边的属性窗口寻找“Caption”字样。它其实就是控件要展现的名字。我们可以任意改写。改完后的效果是这样的:

再来改一下它的色彩吧。这样就这样看起来漂亮些。就改成下面这样吧:

可以观看到的按钮变颜色。如果选上色彩后。没有变色。那一定有一个选项没选。就是下面这种要点Style选项的第二个类别。就允许我们对控件的色彩进行变化:

好了。继续双击这种设计完的按钮吧。这样就进入到编编辑代码的窗口了。就是下面这种样子:

先把昨天的特定代码复制过来。就是读取Excel表格资料特定引用的代码。在代码窗口的开始部分:

Dim xl软件 As Excel.软件licationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim xlSheet1 As Excel.WorksheetDim xlSheet2 As Excel.WorksheetSet xl软件 = CreateObject("Excel.软件lication")Set xlBook = xl软件.Workbooks.Open("F:\成绩表.xlsx")xl软件.Visible = TrueSet xlSheet1 = xlBook.Worksheets("Sheet1")xlSheet1.Activate上面的"F:\成绩表.xlsx"和"Sheet1"是我们要读取资料的目标文件和目标表。一定要和我们的资料一致。

在代码窗口的结尾部分是这些特定的代码:

xlBook.Closexl软件.QuitSet xl软件 = NothingMsgBox "主子。黑猫警长向您报告。程序已运行完毕"

MsgBox后面的内容是可以随便改写的。

准备的代码都已经完工。就等着在上面中间的空白部分去实现我们要实现的事情。我们的目标是要把“sheet1”表中一班的学生语文成绩全自动存取到“sheet2”表里面去。

我们先来把“sheet1”表中一班的资料读到变量里面去:

m = 1For i = 2 To 121【总共有121条学生资料】If Trim(xlSheet.Cells(i, "a")) = "一班" Then【条件判定】gs = gs + 1【记录一班学生数量】a1(m) = xlSheet1.Cells(i, "a")【读班级】b1(m) = xlSheet1.Cells(i, "b")【读姓名】c1(m) = xlSheet1.Cells(i, "c")【读语文成绩】m = m + 1End IfNext i我们已经读完资料啦。下面我们来把从“sheet1”表中读取的一班资料编辑到“sheet2”表中去:

m = 1For i = 2 To gs【gs表示一班的学生人数】xlSheet2.Cells(i, "a")= a1(m) 【编辑班级】xlSheet2.Cells(i, "b")= b1(m) 【编辑姓名】xlSheet2.Cells(i, "c")= c1(m) 【编辑语文成绩】m = m + 1Next i这样。我们的程序就差不多啦。不过还得改写几处。就是前面要加上变量的定义。不然程序就会报错。定义加在前面就可以:

Dim a1(1 To 50), b1(1 To 50), c1(1 To 50)//【定义数组。装资料用的】Dim gs, i, m//【定义变量】末尾。编完的程序是这样的:

来点一下上面的小三角运行吧。运行之后是这样的:

点一下按钮。观望有什么反应:

直接弹出这种文件啦。程序立马完成了我们的事情。问是否保存呢。我们点一下取消就行。文件就会打开着。之后我们再保存。

点完取消会弹出这种消息框:

就是我们在程序里面做的提示消息。跟你说我们事情已经完成。

VB程序操纵Access资料库先来创建一个空的VB程序。当然也完全可以用昨天做好现成的。只不过我们在旁边再加一个“按钮控件”而已。我们根据昨天的设置。对今天新加的这种按钮展现的内容“Caption”改成“逆天操纵Access”。和背景色“BackColor”改成“粉色”。以及字体改成“楷体”和字体大小改成“小四”号。完成了相对应的设置之后。就是下面这种样子:

可以观看到的这种窗体多了一个按钮。双击它进入到编编辑代码窗口:

可以观看到的。上面的代码就是我们昨天编编辑的存取Excel文件资料用的代码。下面这种模块是空的:

Private Sub Command2_Click()End Sub我们需要编编辑程序代码。前半部分是特定模式的代码:

Dim conn As New ADODB.Connection//【定义一个资料库连接】Dim strConn As String//【定义一个字符串变量存放资料库所在路径】前半部分一切搞定。再来就这样看后半部分:

Set conn = Nothing//【事情完成后释放资料库连接】MsgBox "您的程序运行完毕"//【弹出信息框示意事情已经完成】

中间开始编辑我们要实现详细事情的代码。

现在就对下面这种学生成绩表。求三门成绩的总分放在新的字段中:

编辑代码:

Dim sql1, sql2 As String//【定义两个字符串。用来装查询语句】strConn = "Provider=microsoft.ace.oledb.12.0;Data Source=F:\1文章\个体资料库.accdb"//【读取资料库所在路径】sql1 = "alter table xscj add column 总分数 float"//【增加一个“总分数”字段的语句】sql2 = "update xscj set 总分数=yy+yw+sx"//【算三门总分的语句】conn.Open strConn//【打开资料库】conn.Execute (sql1)//【执行语句1】conn.Execute (sql2)//【执行语句2】conn.Close//【关闭资料库】好了。编辑完了。放在程序里面就是这样的:

运行之后。就是这样了:

点一下下面新增加的这种按钮。就是刚刚我们编编辑代码的控件。程序就开始运行:

可以观看到的。我们刚刚编编辑的程序立马运行完成。点一下确认。来观望我们的资料库里面有什么变化吧:

总分算出去了。并且还在我们的资料库里面增加了一个字段。就是我们在程序里面已经添加的。其实。这是最简单的。只有更杂乱的事情才会动用我们去编程序。所以先把简单的学会。杂乱的大自然而然长久以来就学会。

Access资料库对字段进行分类查询有时。我们想要对资料库中的某类资料进行分类整理。使得结果清晰可见。下面这种学生成绩表的总分。我们已经算出去了。我们想要很直观的表示哪个学生三门的平均成绩及格啦。哪些没有及格:

那么有什么途径可以实现呢?下面我们来观望这两种途径:

一是使用update语句对字段进行更新改写

第一步。进入设计视图。新建一个字段。字段名是成绩分类

回到资料表视图吧。

第二步。创建一个查询。编辑查询语句:

update xscj set 成绩分类='及格' where 总分数>=180

运行结果:

第三步。再创建一个查询。查询语句为:

update xscj set 成绩分类='及格' where 总分数<180

运行结果:

再来观望第二种途径

二是使用iif函数直接对表进行查询

创建一个查询。查询语句为:

select 姓名,iif(总分数<180,'不及格','及格') as 平均成绩 from xscj

运行结果:

第一种途径曾经碰触过。就是对已一些学生成绩表进行更新查询。也就是对原表进行了增加字段的改变。这里面我们使用的是update语句。这种语句有特定的语法格式:

update 表名 set 字段名 where 条件第二种途径中的iif函数。我们并不总是碰触到。但是这种函数对我们平时是非常有用的。它能够在不改写表的状态下。查询出我们想要的结果。它事实并没有对原来存在的学生成绩表进行改变。

所以。两种途径。当需要改变时。我们用第一种途径。当不需要对原表进行改变时。我们选择第二种途径。你记住这种iff函数的语法格式:

【iif(条件,结果1,结果2)】。当条件满足时。即为真时。那么就返回结果1。不然返回结果2。上面的查询表示当总分数满足小于180分的时候。我们就返回“不及格”的结果。不然返回“及格”的结果。

您还感兴趣的文章推荐

以上就是由互联网推广工程师 网创网 整理编辑的,如果觉得有帮助欢迎收藏转发~

分享到 :
相关推荐

发表评论

您的电子邮箱地址不会被公开。

评论(2)

  • 少年狂 永久VIP 2022年12月14日 01:15:02

    Access数据库、Excel表格与VB编程完美结合实现Excel表格透视功能-vb数据库 这篇解答确实也是太好了

  • 明天的阳光美吗 永久VIP 2022年12月14日 01:15:02

    程序,资料,资料库,代码,语句,编辑,表格,按钮,窗口,成绩

  • 意中人 永久VIP 2022年12月14日 01:15:02

    现有9个班级的学生成绩表。包括三门课的成绩:门槛在excel中画出每一个班级每科平均成绩柱状图。如果单纯的用Excel整