access数据库vba语句,vba access数据库

http://www.itjxue.com  2023-01-08 18:36  来源:未知  点击次数: 

如何用vba代码将access数据库连接求代码?

Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。用vba代码将access数据库连接求代码,代码如下:

Sub FYMXDL()

Dim XQID As Integer

Dim JZID As Integer

Dim FYID As Integer

Dim FBXZ As String '分包性质

Dim DW As String

Dim SARR(1 To 31) As Double

Dim rst As New ADODB.Recordset

mYpath = ThisWorkbook.Path "\jzfydata.accdb"

Set cONn = CreateObject("ADODB.Connection")

cONn.ConnectionString = "Provider=Microsoft.Ace.OleDB.12.0;Data Source=" mYpath

cONn.ConnectionString = cONn.ConnectionString ";Jet OLEDB:Database "

cONn.Open

XQID = Cells(3, 2).Value

JZID = Cells(3, 5).Value

'清空改小区-建筑的费用明细

Sql = "delete ?from fymxb where 小区ID=" XQID " AND 建筑ID = " JZID

cONn.Execute Sql

Const kshh = 7

hh = kshh

Do While Cells(hh, 3).Value 0

FYID = Cells(hh, 3).Value

FBXZ = Cells(hh, 11).Text

For i = 1 To 31

SARR(i) = Round(Cells(hh, 13 + i - 1).Value, 2)

Next i

Sql = Sql "," SARR(i)

Next i

Sql = Sql " )"

cONn.Execute Sql

hh = hh + 1

Loop

End Sub

如何用vba代码将access数据库连接求代码

.用vba连接ACESS:

Set Conn= Server.CreateObject("ADODB.Connection")

Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Server.MapPath("sample.mdb")

Conn.Open

.用vba连接EXCEL,打开EXCEL记录集:

Set connExcel = Server.CreateObject("ADODB.Connection")

connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Server.MapPath( "InputExcel\sample.xls") ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';"

connExcel.Open connStr

Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open "Select * From [sheet1$]", connExcel, 0, 1

.vba数据处理[转载]:

===============================================

用Excel+VBA+SQL Server进行数据处理

使用Excel+VBA+SQL Server进行数据处理是一种简单有效方法,掌握以下基础知识实现快速入门(掌握excel/vba/sqlserver各1%内容,你就能成为数据处理高手的:)):

一、Excel基础知识

了解工作簿(Workbook)、工作表(Worksheet)、单元格(Cell)等的基本概念,熟悉一些基本操作。

二、SQL Server基础知识

参见

1、数据库有关概念:数据库、表、记录、字段

A)数据库(Database)

B)表(Table)、记录(行,Row,Record)、字段(列,Column,Field)...

2、常见数据操作的SQL命令:select, insert , update ,delete

三、VBA基础知识:

1、基本概念。

2、基本控制结构:

·顺序结构:程序按顺序执行;

·分支结构命令:

if 条件 then

如果条件成立执行本语句块

end if

或:

if ... then

...

else

...

end if

或:

if ... then

...

elseif ...

...

else

...

end if

等。。

·循环结构命令:

for i=? to ??

...

next

do while ...

...

loop

3、在VBA中操纵对象,先理解操纵EXCEL工作表和数据库对象:

将值写入EXCEL单元格,如:thisworkbook.worksheets("sheet1").cells(1,2)=1234444

从EXCEL单元格取得数值,如:x=thisworkbook.worksheets("sheet1").cells(1,2)

数据库操作:

cn.open ...(建立数据连接对象)

rs.open ... (建立数据集对象)

x=rs("...") (读取数值)

rs.close (关闭rs)

cn.close (关闭cn)

cn.execute (执行sql语句)

...

四、例子

sub test() '定义过程名称

Dim i As Integer, j As Integer, sht As Worksheet 'i,j为整数变量;sht 为excel工作表对象变量,指向某一工作表

Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用

Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表

Dim strCn As String ,strSQL as String '字符串变量

strCn = "Provider=sqloledb;Server=服务器名称或IP地址;Database=数据库名称;Uid=用户登录名;Pwd=密码;" '定义数据库链接字符串

'下面的语句将读取数据表数据,并将它保存到excel工作表中:画两张表想像一下,工作表为一张两维表,记录集也是一张两维表

strSQL = "select 字段1,字段2 from 表名称" '定义SQL查询命令字符串

cn.Open strCn '与数据库建立连接,如果成功,返回连接对象cn

rs.Open strSQL, cn '执行strSQL所含的SQL命令,结果保存在rs记录集对象中

i = 1

Set sht = ThisWorkbook.Worksheets("sheet1") '把sht指向当前工作簿的sheet1工作表

Do While Not rs.EOF '当数据指针未移到记录集末尾时,循环下列操作

sht.Cells(i, 1) = rs("字段1") '把当前记录的字段1的值保存到sheet1工作表的第i行第1列

sht.Cells(i, 2) = rs("字段2") '把当前字段2的值保存到sheet1工作表的第i行第2列

rs.MoveNext '把指针移向下一条记录

i = i + 1 'i加1,准备把下一记录相关字段的值保存到工作表的下一行

Loop '循环

rs.Close '关闭记录集,至此,程序将把某数据表的字段1和字段2保存在excel工作表sheet1的第1、2列,行数等于数据表的记录数

'下面的语句将读取excel工作表数据,并将之简单计算后存入数据库,这里使用上面程序中的一些变量

'假设分别读取工作表sheet1第5行至第500行的第8列和第9列已存在的数据,然后将它们相乘,并将积存入数据库的某个表

strSQL="" '清空上面定义的变量

for i=5 to 500 '循环开始,i从5到500

strSQL=strSQL "insert into 表名(字段) values(" sht.cells(i,8)*sht.cells(i,9) ") ;" '构造SQL命令串

next

'至此生成一串SQL命令串,保存的内容大概为:insert into 表名(字段) values(数值1);insert into 表名(字段) values(数值2);...

cn.execute strSQL '执行该SQL命令串,如果SQL命令没有错误,将在数据库中添加501个记录;也可以用rs.open strSQL,cn 执行

cn.close '关闭数据库链接,释放资源

end sub

=====================================

.听说可以用一条语句实现记录集导入excel表,而且不是用循环的,不知道是真是假,等待高手的回答。

access中vba的ado访问数据库时ado中如何表示sql语句?

常用符号大体如下:

(连接号):为连接符,将控件内容和字符串连接起来。

''(单引号):文本标示符,被包含在一对单引号之内的字符串即为文本型数据。

##(井号):日期标示符,类似于文本标示符,被包含在井号内的即为日期型数据。

!(叹号):表示隶属关系,前者为父级,后则为子级,一般出现在记录集或者窗体控件中。

.(点号):同样为隶属关系,大多用于查询或者表中。

[](中括号):一般用于控件,中括号内即为窗体控件名称。

()(小括号):小括号内一般为对象集合的元素,小括号内可以是集合元素的索引值,也可以是元素的名称。

数值型数据则不需要任何标示符。

其实这样解释算不上严谨的,不过大体可以解决了楼主的一些疑惑了。下面以一些例子来说明一下:

a、假定窗体中这两个控件的值:User_Name为whoami13,User_Password=ABC,那么:

temp

=

"select

*

From

用户

where

名称='

"

Me![User_Name]

"

'and

密码=

'

"

Me![User_Password]

"

'

"

相当于:

temp

=

"select

*

From

用户

where

名称='

whomai13

'and

密码=

'

ABC

'

"

b、假定窗体中这两个控件的值:Date为2012-7-5,Money=15,那么:

temp

=

"select

*

From

用户

where

名称=#

"

Me![Date]

"

#

and

密码=

"

Me![Money]

相当于:

temp

=

"select

*

From

用户

where

名称=#2012-7-5#

and

密码=

15"

需要注意的是,数据类型必须是相同的,否则无法执行ADO代码。

access中vba语句运用

Private Sub Command1_Click()

'求10!

Dim I As Integer, JC As Long

JC = 1

For I = 2 To 10

JC = JC * I

Next

Text0.Value = JC

'2.求s的值,s=1+(1/2)+(1/3)+....+(1/10)

Dim S As Double

S = 0

For I = 1 To 10

S = S + 1 / I

Next

Text2.Value = S

'3.按从小到大的顺序任意输出10个数

Dim T(10) As Integer

For I = 1 To 10

T(I) = Int(Rnd() * 100)

Next

Dim J As Integer, O As Integer

For I = 1 To 9

For J = I To 10

If T(I) T(J) Then

O = T(I)

T(I) = T(J)

T(J) = O

End If

Next J

Next I

Text3.Value = T(1)

For I = 2 To 10

Text3.Value = Text3.Value "," T(I)

Next I

End Sub

(责任编辑:IT教学网)

更多

推荐浏览下载文章