失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 如何将excel里的数据批量导入ACCESS 要用vb代码?

如何将excel里的数据批量导入ACCESS 要用vb代码?

时间:2019-07-07 08:44:57

相关推荐

如何将excel里的数据批量导入ACCESS 要用vb代码?

下面是对EXECL的基础操作说明:

Set xlApp = CreateObject("Excel.Application")

‘激活EXCEL应用程序

xlApp.Visible = False ‘隐藏EXCEL应用程序窗口

Set xlBook = xlApp.Workbooks.Open(strDestination)

‘打开工作簿,strDestination为一个EXCEL报表文件

Set xlSheet = xlBook.Worksheets(1)

‘设定工作表

1、定义EXCEL对象变量

dim x as excel.application

2、VB中,启动EXCEL

set x=createobject("excel.application")

3、新建一个EXCEL工作簿

x.workbooks.add

4、选定工作表1

set xsheet=xbook.worksheets(1)

5、指定单元格,并赋值

xsheet.cell(1,1)=ret.fields(0)

6、指定EXCEL列宽

xsheet.column(1).columnwidth=10

7、RANGE()函数,选定单元格区域

range(cells(1,1),cells(10,20))

8、设置EXCEL字体

xsheet.range(cells(1,1),cells(10,20)).font.name="黑体"

9、设置EXCEL为粗体

xsheet.range(cells(1,1),cells(10,20)).fontbold=true

10、设置EXCEL表格边框

xsheet.range(cells(1,1),cells(10,20)).borders.linestyle=xlcontinuous

11、运行时,显示EXCEL或隐藏EXCEL

x.visible=true

12、保存工作簿

xbook save

13、退出EXCEL

x.quit

14、交还控制权给EXCEL

set x=nothing

15、打印EXCEL表

x.active.window.selectedsheets.printout copies=numcopies

16、退出EXCEL时,不出现保存提示。

x.displayalerts=false

17、怎样运用EXCEL公式?

x.range("A3").formula= "=max(A1,A2)"

18、EXCEL代码获取技巧

打开EXCEL中的工具----宏----录制新宏,然后进行手工操作,结束后把所录的宏代码贴进你的VB程序就行。

19、合并单元格代码

x.range("A2:A5").inergecells=true

20、自动调整列宽代码

x.column("A:I").autofit ' a到 I列自动调整列宽

21、文本自动换行代码

x.rows(3).wraptext=true

22、设置字体颜色

x.rows(1).font.colorindex=4

23、打印预览代码

x.worksheets.printpreview

24、打开EXCEL文件

x.workbooks.open filename:="c:\my documents\my vb \lgx \dy.xls"

下面是如何从EXECL文件中读写数据:

使用Excel Sheet对象的技术可以处理可变数量的数据,并将结果最后送到你的Visual Basic 应用程序中。例子如下:

新建一个工程并在新建的窗体上放置两个TextBox控件和一个CommandButton控件及六个Label控件。建设中的窗体如图2所示。

程序代码如下:

Option Explicit

Private Sub Command1_Click()

Dim xObject As Object

Set xObject = CreateObject("Excel.Sheet")

Set xObject = xObject.Application.ActiveWorkbook.ActiveSheet

xObject.Range("A1").Value = Text1.Text '将数值送入Excel的A1单元格

xObject.Range("A2").Value = Text2.Text '将数值送入Excel的A2单元格

xObject.Range("A3").Formula = "=MAX(A1,A2)" '将最大值送入A3单元格

xObject.Range("A4").Formula = "=ATAN(A1/A2)*180/PI()" '将反正切值送入A4单元格

′显示计算的结果

Label1.Caption = xObject.Range("A3").Value '从EXECL读出数值

Label2.Caption = xObject.Range("A4").Value

Set xObject = Nothing

End Sub

Private Sub Form_Load()

Text1.Text = ""

Text2.Text = ""

Label1.Caption = ""

Label2.Caption = ""

End Sub

该程序的作用是:首先在两个文本框(Text1和Text2)输入数值并分别将输入的数值送入Excel的"A1"和"A2"单元格中,然后用Excel中的"Max()"函数将计算的结果送入"A3" 单元格中;用反正切函数"ATAN()"进行计算并将结果送入"A4" 单元格中,最后输出。

有了以上说明,再加上你已经学会的ACCESS数据库操作技术,就可以实现EXECL里的数据批量导入ACCESS了。

用VB代码插入的时候,excel表中有一列前几行数据是空的,结果整个一列都导不进access,还有一列是日期格式,但有些却是常规格式,结果这一列中常规格式的也导不进去,代码如下,望高手能协助解决,谢谢。

Sub ImportToAccess()

On Error Resume Next

Dim db1 As Database, db2 As Database

'打开excel表

Set db1 = opendatabase("d:\111.xls", True, False, "Excel 5.0")

'删除acces表中数据

db1.execute "delete * from [;database='d:\222.mdb'].ssc"

'读取excel表中字段,共3个字段,其中第2个字段是日期格式,问题就在这里,有些非日期型的数据就算用了cdate函数也导不进去

fields1 = ""

For a = 0 To 2

If a = 1 Then

fields1=fields1 + "cdate(["_ _+db1.tabledefs("sheet1$").fields(a).name + "]), "

Else

fields1=fields1 + "trim(["_ _+db1.tabledefs("sheet1$").fields(a).name + "]), "

End If

Next

fields1 = Left$(fields1, Len(fields1) - 2)

'读取acces表中字段

Set db2 = opendatabase("d:\222.mdb")

table2 = db2.tabledefs("ssc")

fields2 = ""

For b = 0 To 2

fields2 = fields2 + "[" + table2(b).Name + "], "

Next

fields2 = Left$(fields2, Len(fields2) - 2)

db2.Close

'用SQL语言插入数据

sql = "insert into [;database='d:\222.mdb'].ssc ("

sql = sql + fields2 + ") select " + fields1

sql = sql + " from [sheet1$];"

db1.execute (sql)

End Sub

[网络整理]

如果觉得《如何将excel里的数据批量导入ACCESS 要用vb代码?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。