VB读取ACCESS数据库

VB读取ACCESS数据库,第1张

Set

dbs

=

OpenDatabase(App.Path

+

"\APP\TL.mdb")

参数不对:workspace.OpenDatabase(数据名,打开模式,是否只读,连接字符串)

Set

dbs=Workspaces(0).OpenDatabase(App.Path+"\APP\TL.mdb",False,False,"MS

AccessPWD=***")

'下面引用ADO2.1

Private

Sub

Command1_Click()

On

Error

GoTo

aa:

Dim

dbs

As

New

Connection

'定义为数据库类型

Dim

rst

As

Recordset

'定义为记录类型

Dim

theday

As

Date

'定义为日期类型

Dim

connstr

As

String

Dim

i

As

Integer

Dim

Bcell,

Ecell,

SQLString

As

String

Set

ExcelReport

=

New

Excel.Application

ExcelReport.Workbooks.Open

FileName:=App.Path

+

"\APP\脱硫系统运行日志.xls"

ExcelReport.DisplayAlerts

=

False

Set

Sheet1

=

ExcelReport.Sheets("Sheet1")

Set

Sheet2

=

ExcelReport.Sheets("Sheet2")

Set

Sheet3

=

ExcelReport.Sheets("Sheet3")

Set

Sheet4

=

ExcelReport.Sheets("Sheet4")

Sheet1.Activate

theday

=

Day(CDate(DTPicker1.Value))

connstr

=

"DBQ="

+

App.Path

+

"\APP\TL.mdb"

+

"DefaultDir=DRIVER={Microsoft

Access

Driver

(*.mdb)}"

Set

dbs

=

New

Connection

dbs.Open

connstr

'dbs.Execute

"delete

from

day1

"

SQLString

=

"select

*

from

TL1

where

DT='"

&

CStr(DTPicker1.Value)

&

"'"

dbs.Execute

SQLString

Set

rst

=

dbs.Execute("select

*

from

TL1")

If

rst.EOF

=

False

Then

rst.MoveFirst

End

If

ExcelReport.Visible

=

True

i

=

0

While

rst.EOF

=

False

i

=

i

+

1

Sheet1.Cells(i

+

7,

2)

=

rst!GLFH

Sheet1.Cells(i

+

7,

3)

=

rst!PH

Sheet1.Cells(i

+

7,

4)

=

rst!TFTW

Sheet1.Cells(i

+

7,

5)

=

rst!TFMD

Sheet1.Cells(i

+

7,

6)

=

rst!JT1

Sheet1.Cells(i

+

7,

7)

=

rst!CT1

Sheet1.Cells(i

+

7,

8)

=

rst!JP1

Sheet1.Cells(i

+

7,

9)

=

rst!CP1

Sheet1.Cells(i

+

7,

10)

=

rst!CWSP

Sheet1.Cells(i

+

7,

11)

=

rst!CWXP

Sheet1.Cells(i

+

7,

12)

=

rst!XAI

Sheet1.Cells(i

+

7,

13)

=

rst!XBI

Sheet1.Cells(i

+

7,

14)

=

rst!XCI

Sheet1.Cells(i

+

7,

15)

=

rst!MAI

Sheet1.Cells(i

+

7,

16)

=

rst!MBI

Sheet1.Cells(i

+

7,

17)

=

rst!YAI

Sheet1.Cells(i

+

7,

18)

=

rst!YAP

Sheet1.Cells(i

+

7,

19)

=

rst!YBI

Sheet1.Cells(i

+

7,

20)

=

rst!YBP

Sheet1.Cells(i

+

7,

21)

=

rst!SHAP

Sheet1.Cells(i

+

7,

22)

=

rst!SHBP

Sheet1.Cells(i

+

7,

23)

=

rst!SH_4MIDU

Sheet1.Cells(i

+

7,

24)

=

rst!SGAI

Sheet1.Cells(i

+

7,

25)

=

rst!SGBI

Sheet1.Cells(i

+

7,

26)

=

rst!MFT

Sheet1.Cells(i

+

7,

27)

=

rst!MFP

rst.MoveNext

Wend

ExcelReport.Visible

=

True

GoTo

cc

aa:

ExcelReport.DisplayAlerts

=

False

dbs.Close

Set

dbs

=

Nothing

Unload

Me

cc:

End

Sub

数据库使用二维表存储数据,它不像电子表格那样,具有固定的行号和列号。相对于电子表格来讲,它的列号相当于各个字段名,但是它没有固定的列号,垂直方向的坐标需要由各个记录行的字段值来确定。

获取数据表某些单元的数据,一般可以用SQL选择查询,选定输出字段加上筛选条件选字段来确定,例如

select 课程 from 课程表 where 课程id='001'

如果数据表具有唯一约束的列,例如主键或带唯一索引的字段,那么我们就可以用该列名或者说是字段名(横向坐标)加列值(纵向坐标)来精确定位某个记录单元。但是如果不存在唯一标识列的情况下,我们就无法精确定位到某个记录单元了 因为它会返回多个记录行。其实用电子表格单元格的概念去理解数据库表,并不是一个好主意,电子表格和数据库的用途不同,各有各的强项。但就数据处理的能力来讲,数据库要远较电子表格强大,前者关注于数据的储存、管理,和检索,后者关注于数据的展示。请注意现实中数据库中的数据的使用是要通过应用程序来体现的,例如从数据库检索出数据导入到excel做进一步处理并某种外观予以展示。

access系统表和普通表一样可以直接查询

如果想在左侧直接查询看到系统表,需要用access工具设置

单机工具的

文件-》选项-》当前数据库-》导航-》导航选项将系统表勾上即可

之后具体系统表介绍可以百度

介绍一个查询所有表的系统表msysobjects,筛选出type=1和flags=0

详细可以查看网页链接


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6920214.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存