Exce表格网

vba不能更新excel工作表数据(vba如何更新数据源)

来源:www.0djx.com  时间:2023-02-25 07:50   点击:199  编辑:表格网  手机版

1. vba如何更新数据源

这个问题有两种,首先需要确定楼主所说的不同数据源是什么概念,是完全不同的库,还是不同的表?如果再一个数据库中的不同的表,那么可以通过聚合函数来进行字段数的统计。如果是来自于完全不同的数据库,那么流程如下:

1、配置ODBC数据源

通过建立远程链接表的方法,将ODBC数据源内的表格引入当前access数据库,之后便可以按照操作本地表的方式进行操作了。具体设置ODBC的方法比较简单,网上也有很多教程,在此不在赘述。

2、如果是本地access数据库则可以在access的vba中引入数据源,示例如下:

以上为一个简单的链接本地access数据库的连接方法,如果有特殊需求,请留言。

3、逐一统计要计算的表内的数据源字段个数

建立的数据连接后,通过

4、按照自己的需求显示到窗体中

如果有多个表,就多次执行就好。

2. vba打开excel不更新

1、VBA的数据源可以是自身的表格,也可是是数据库(例如access)

2、更新数据库可以通过VBA做增删改查的操作

3、对于表格自身可以读出数据更改。也可以直接写入excel

3. 用excel的vba更新access数据

用excel vba访问加密的access Set mydBase = wsMainWs..OpenDatabase(数据库名(含路径), True, False, "ms access;pwd=密码");

4. vba 更新

在access窗体里编写vba代码可以一次执行多条sql语句

例如:

privatesubcommand1_click()dimsql1asstring,sql2,asstring,sql3asstringsql1="insertintot1(id,name)values('001','zhangsan');"sql2="insertintot1(id,name)values('002','lisi');"sql3="insertintot1(id,name)values('003','wanghwu');"withcurrentproject.connection.executesql1.executesql2.executesql3endwithendsub前提是每条sql语句都是可以被正确执行的

5. vba更新工作簿数据

Sub 透视()

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Sheet1!R1C1:R1048576C1", Version:=xlPivotTableVersion15).CreatePivotTable TableDestination:="Sheet2!R1C14", TableName:="数据透视表1", DefaultVersion:=xlPivotTableVersion15

'建立一处缓存,保存要处理成数据透视表的数据信息,括号内输入获取数据的所需参数:SourceType:=数据源类型,一般是xlDatabase(基于xl的数据库类型),SourceData:=所要选取的数据区域,Version:=创建数据透视表的表类型,

'CreatePivotTable用这块缓存数据来建立数据透视表,括号内输入创建数据透视表所需参数:TableDestination:=输出表的位置,TableName:=创建数据透视表的名称(表名不能重复),DefaultVersion:=数据透视表版本号,必须与之前创建缓存时版本号相同

'在选择数据源的时候,由于数据行列数通常不确定(也会出现源数据字段的数量有变化的情况,可用变量strSourceData

Sheets("Sheet2").Activate '后台打开该输出表

Sheets("Sheet2").PivotTables("数据透视表1").AddDataField ActiveSheet.PivotTables("数据透视表1").PivotFields("用户编号"), "计数:用户编号", xlCount

'Sheets("输出表").PivotTables("数据透视表表名").AddDataField ActiveSheet.PivotTables("数据透视表表名").PivotFields("统计字段"), "求和:统计字段", xlSum

'Sheets("输出表").PivotTables("数据透视表表名").PivotFields是当前工作表中数据透视表"数据透视表表名"里面包含全部字段的集合,是一个数组,可用for each循环

With Sheets("Sheet2").PivotTables("数据透视表1").PivotFields("用户编号") 'With Sheets("输出表").PivotTables("数据透视表表名").PivotFields("行字段1")

.Orientation = xlRowField '表示该统计字段在数据透视表中的位置为行字段(列字段是xlColumnField)

.Position = 1 '表示该行字段1所在行字段的位置为第1个位置

End With

' Sheets("输出表").PivotTables("数据透视表表名").RowAxisLayout xlTabularRow '使行字段能在同一行显示

' With Sheets("输出表").PivotTables("数据透视表表名").PivotFields("列字段1")

' .Orientation = xlColumnField '表示该列字段在数据透视表中的位置为列字段(行字段是xlRowField)

' .Position = 1 '表示该列字段1所在列字段的位置为第1个位置

' End With

End Sub

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片