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