Access和VBA

最近很忙,忙得基本没时间整理博客,好不容易到了周末,还是把最近工作中学到的东西好好整理下,也算对工作的一种回顾。

1 第一个问题:

利用程序将CSV导入数据库:

第一步:建立Improt/Export Specification

具体步骤:选择“File”-->"Get External Data"-->"Import",选择需要导入的文件,然后在出现的界面中选择“Advanced”并进行设置。


设置的项包括: File Format,如选择Delimited,设置各个域分开的格式,如“|”,设置Date Order。 同时设置Field Imformation,这些字段和需要导入的数据库中表格的字段名称一样,即使在导入之前表格被删除了,也会按照此种格式建立对应的表格。设置完成后保存。


2 写VBA导入数据的宏,选择tools-->Micro-->"Virtual Basic Eidtor"

实现代码如下:代码进行了一些处理,但最主要的函数还留着



其中Docmd.TransferText有两个重要的参数,SpecificationName 这个为第一步建立的spectiation的名字,FileName则为导入的文件的名称,包括全路径,TableName为建立的表格的名称。

expression.TransferText(TransferType, SpecificationName, TableName, FileName, HasFieldNames, HTMLTableName, CodePage)


3 第三步: 建立access的宏:

在access中选择宏,并选择新建,在出现的表格中,Action中选择Return Code,并在下面的function中设置为你刚才所写的函数的名称。


第四步: 利用bat自动运行宏导入数据

"C:\Program Files\Microsoft offie\OFFICE11\msaccess.exe" "you_dirctory"\youDB /excl /x your_mirco_name便可以自动导入数据了。



2 第二个问题:

访问access数据库获取数据:

打开数据库:

DIM DBS as DAO.database

DIM RST as DAO.RocrdSet

Dim str as String

set DBS =CurrentDb()

str ="select * from Table1"

set RST= DBS.OpenRecordset(str,dbOpenDynaset)

RST.MoveLast

RST.MoveFirst

插入数据:

str2 =“insert table ******”//insert语句不再仔细写了

DBS.execute(str2) 这样就可以插入数据了

关闭数据库:DBS.Close()


获取某一列的数据如RST(“filedName”)

获取access数据库中某个表格中记录的总数:RST.RecordCount,这个数要保证正确,需要RST先MoveLast再MoveFirst一下


3 第三个问题:

插入数据库遇到的问题: 各个字段的值需要用‘’ 括起来,否则有可能插入不成功;

Update的时候需要保证字段名和对应的数据库表格建立的顺序一样,并且有的时候对于一些特殊的类型,如时间,如果写成Update table set filed1='d',filed3='3' where Dateu= Date有可能更新不成功。

4 第四个问题:利用VBA将数据库中的数据导入excel,并生成html





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惹不起的程咬金

来都来了,不赏点银子么

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值