access中链接oracle的表,Access数据库多表连接查询

5268f80b9b1e01f982625ef6fac83ca1.png

第一次在Access中写多表查询,就按照MS数据库中的写法,结果报语法错,原来Access的多表连接查询是不一样的 表A、B、C,A关联B,B关联C,均用ID键关联 一般写法:select * from A inner join B on A.ID=B.ID inner join C on B.ID=C.ID 此写法在Access中报错

第一次在Access中写多表查询,就按照MS数据库中的写法,结果报语法错,原来Access的多表连接查询是不一样的

表A、B、C,A关联B,B关联C,均用ID键关联

一般写法:select * from A inner join B on A.ID=B.ID inner join C on B.ID=C.ID

此写法在Access中报错,Access对SQL语法理解方式不一样,它将两表连接后当作一个表然后再与第三个表连接,因此要改成

select * from (A inner join B on A.ID=B.ID ) inner join C on B.ID=C.ID

若出现第4张表D呢?

select * from ((A inner join B on A.ID=B.ID ) inner join C on B.ID=C.ID) inner join D on C.ID=D.ID

……

可以理解为始终是两表间的操作

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现这个需求,需要先了解一下 ACCESS 的 VBA 编程语言和 Oracle 数据库连接方式。 1. 连接 Oracle 数据库 在 VBA 连接 Oracle 数据库,需要使用 ADODB(ActiveX Data Objects)对象。代码如下: ``` Dim conn As New ADODB.Connection conn.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=myOracleDB;User ID=myUsername;Password=myPassword;" conn.Open ``` 其,`myOracleDB` 是 Oracle 数据库的名称,`myUsername` 和 `myPassword` 分别是连接数据库的用户名和密码。 2. 查询 ACCESS 数据库的数据 在 VBA 查询 ACCESS 数据库的数据,可以使用 ADO(ActiveX Data Objects)对象。代码如下: ``` Dim rs As New ADODB.Recordset rs.Open "SELECT * FROM myTable", conn ``` 其,`myTable` 是 ACCESS 数据库名。 3. 导入数据到 Oracle 数据库 在 VBA 查询出来的数据导入到 Oracle 数据库,可以使用 SQL 语句。代码如下: ``` Dim sql As String sql = "INSERT INTO myOracleTable VALUES (value1, value2, ...)" conn.Execute sql ``` 其,`myOracleTable` 是 Oracle 数据库名,`value1`、`value2` 等是要插入的数据值。 综合起来,可以编写如下的 VBA 代码实现按钮点击事件查询数据后导入到连接Oracle 数据库: ``` Private Sub btnImport_Click() ' 连接 Oracle 数据库 Dim conn As New ADODB.Connection conn.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=myOracleDB;User ID=myUsername;Password=myPassword;" conn.Open ' 查询 ACCESS 数据库的数据 Dim rs As New ADODB.Recordset rs.Open "SELECT * FROM myTable", conn ' 将数据导入到 Oracle 数据库 Do Until rs.EOF Dim sql As String sql = "INSERT INTO myOracleTable VALUES (" & rs.Fields("Field1").Value & ", " & rs.Fields("Field2").Value & ", ...)" conn.Execute sql rs.MoveNext Loop MsgBox "数据导入成功!" End Sub ``` 其,`Field1`、`Field2` 等是 ACCESS 数据库的字段名,`...` 示还有其他字段需要导入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值