我可以在访问项目中使用持久性(Oracle)记录集吗?

我可以在访问项目中使用持久性(Oracle)记录集吗?

问题描述:

显然,您不能将Access Project中的表格的recordset属性设置为Oracle-based recordse t,但有没有办法在Access form中显示或选择这些记录?我可以在访问项目中使用持久性(Oracle)记录集吗?

  1. 添加在ODBC控制面板上的Oracle数据库

  2. 在Access中,创建一个新的查询一个DSN条目,将其定义为直通,无论你在查询文本要否则类型你无法保存(SELECT *没问题)。这通槽查询将被用来从Oracle检索数据,并显示在你的状态,你将定义它的SQL在VBA代码

  3. 在你的表单代码上的飞,这样做:


' Add this local variable to your form 
Private OracleQD As QueryDef 

' Do the following in the Load event of your form : 
Set OracleQD = CurrentDb.QueryDefs("Your_Previously_Created_Query_name") 
OracleQD.Connect = "ODBC;DSN=your_ODBC_entry_name;UID=your_Oracle_User;Pwd=Your_Oracle_Password" 
OracleQD.ODBCTimeout = 600 ' Set to anything you want 

' Do this everytime you want to retrieve data from Oracle 
OracleQD.SQL = "SELECT * FROM whatever_table_you_want" 
Set Form_Your_form_name.Recordset = OracleQD.OpenRecordset(dbOpenSnapshot) 

+0

这将用于访问mdb数据库,但不适用于访问项目(.adp)。我试过这种方法,但设置表单的记录集只有在基于sql server表,视图或存储过程的情况下才有效。 – ixohoxi1

我在后端服务器上创建一个表,通过VBA基于Oracle的记录循环,然后在(SQL Server)的表创建新记录的问题解决了通过使用存储过程wh ich将基于oracle的记录集中的字段作为参数,并将这些值作为记录插入到sql服务器表中。