ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 18913|回复: 20

[求助]请问怎么在vba中建立一个odbc连接,使得可以在excel中直接查询出数据库中的表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-5-12 09:50 | 显示全部楼层 |阅读模式
关于odbc连接我比较陌生,想问一下可不可以实现如题的要求。 数据库环境是Oracle的,假设我接入其中的一个环境的口令是(用户名/密码@环境): unarthur/mypassword@gbs0 其中一个表的表名假设为emp 我想在当前工作本的sheet1从[a1]开始显示以下sql语句查询出来的内容 select * from emp where deptno=10; 请问以上所有描述相关的vba代码怎么写? 谢谢!
[此贴子已经被作者于2006-5-12 9:51:08编辑过]

TA的精华主题

TA的得分主题

发表于 2006-5-12 11:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在坛里搜索 ODBC 有不少帖子,有没能用的?我这儿没 Oracle ,没法儿试,但是对此类问题很感兴趣....

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-12 14:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
所有我都搜索过了,有是有,但大部分都没有下文。要不就是讲得太简单,没有实际的附件演示,看不明白。听说要建立odbc连接,但也没有人愿意说说怎么建。很多人就说一句话,这等于没有说。

TA的精华主题

TA的得分主题

发表于 2006-5-12 20:00 | 显示全部楼层
一. 配置数据源
http://blog.yesky.com/Blog/tiger12/archive/2005/01/19/66672.html
将ORACLE数据库的数据倒入到EXCEL中的方法  
  在当今信息化高速发展的时代,日常的工作中,用户经常遇到要将EXCEL文件中的数据和
ORACLE数据库中的数据互倒的问题,实现对实时数据的操作,而可查阅到这方面的资料并不多
。若需将ORACLE信息系统中的数据倒出来,并在此基础上利用EXCEL对其进行分析整理,笔者
在工作中利用ODBC将数据倒入到EXCEL文件中,对初学者来说,效果不错,在这里给大家作一
  所谓ODBC是Open Database Connectivity 的缩写,就是开放式数据库互连。利用ODBC实
现动态数据交换的前提条件很简单,只需先在本机安装微软OFFICE中的EXCEL,然后根据需要运
  下面就我工作中遇到的实际问题逐步介绍:
  1、首先配置ODBC数据源。在控制面板中,选ODBC数据源,添加选安装ODBC FOR ORACLE
。在给定数据源名称和描述时,用户可自定义,用户名称和服务器则需根据在ORACLE 数据库
  如:数据源名称:EXAMPLE
  描述:EXAMPLE
  用户名称:SCOTT
  服务器:TIGER
  2、打开EXCLE,在数据菜单下,选获取外部数据源,新建数据库查询。
  3、系统提示选择数据源,选择我们前面已设置好的数据源EXAMPLE,输入数据库密码。
如果是第一次执行该SQL程序,则选择取消,然后在MICROSOFT QUERY 中选择执行SQL。
  4、根据工作需要选择需倒出的数据,写SQL语句。如:
  SELECT A.ITEM_NO,A.ITEM_DESC,A.ITEM_UM,
  A.ITEM_CREATED_BY,A.CREATED_DATE
  FROM IC_ITEM_MST A
  5、执行该段查询,即可在EXCEL表中见到满足条件的记录已全部倒出来,第一行为记录
  6、要是重新执行该文件,只需在MICRSOFT QUERY窗口中选择打开该查询并执行,即可得
  7、然后可利用EXCEL强大的编辑功能,对这些数据进行分析修改,相当方便。
二、连接字符串(中文,不全)
http://www.2solo.net/blog/showlog.asp?cat_id=27&log_id=239

通过ADO连接各种数据库的字符串翠集  [2004-3-15]  在网络编程过程中,ADO(Activex Data Object)编程往往是不可少的工作,特别是开发电子商务网站。既然讲到ADO数据对象,那么就顺便简单地介绍一下ADO数据对象及其功能。ADO数据对象共有七种独立的对象,他们分别是连接对象(Connection)、记录集对象(RecordSet)、域对象(Field)、命令对象(Command)、参数对象(Parameter)、属性对象(Property)和错误对象(Error)。功能请参见附录1。

ADO数据对象用来连接数据库的方式有两种,分别是ODBC和OLE DB方式,下面就分别介绍用这两种方式连接数据库的例子。

第一种:ODBC DSN-Less Connections

ODBC Driver for Access

ODBC Driver for dBASE

ODBC Driver for Excel

ODBC Driver for MySQL

ODBC Driver for Oracle

ODBC Driver for Paradox

ODBC Driver for SQL Server

ODBC Driver for Sybase

ODBC Driver for Sybase SQL Anywhere

ODBC Driver for Text

ODBC Driver for Teradata

ODBC Driver for Visual FoxPro

第二种:OLE DB Data Provider Connections

OLE DB Provider for Active Directory Service

OLE DB Provider for DB2

OLD DB Provider for Internet Publishing

OLE DB Provider for Index Server

OLE DB Provider for Microsoft Jet

OLE DB Provider for ODBC Databases

OLE DB Provider for Oracle (From Microsoft)

OLE DB Provider for Oracle (From Oracle)

OLE DB Provider for Simple Provider

OLE DB Provider for SQL Server

一、下面我就先讲利用ODBC DSN来访问数据库,要完成这项工作,必须先通过“控制面板”—“管理工具”—“ODBC数据源”来建立一个数据源名,例如叫做TestData_Resoure。

1) 通过系统数据源(System DSN)的连接



2) 通过文件数据源(File DSN)的连接



3) 通过连接池(DSN-Less)的连接(ODBC Driver for AS/400)



二、利用数据库驱动程序直接访问数据库的连接字符串。

1) ODBC Driver for Access

● 标准的也是比较常用的连接方法



● 假如是一个工作组的系统数据库,那么连接字符串如下



● 假如数据库(MDB)是网络上共享的,那么连接字符串如下



2) ODBC Driver for dBASE



说明:这里要注意的一点就是,在SQL查询语句中要特别指定数据库文件名,例如:

oRs.Open "Select * From Testdb.dbf", oConn, , ,adCmdText

3) ODBC Driver for Excel



4) ODBC Driver for MySQL (通过 MyODBC驱动程序)

● 连接到本地数据库(local database)



● 连接远程数据库(remote databas)



5) ODBC Driver for Oracle



6) ODBC Driver for Paradox



7) ODBC Driver for SQL Server



8) ODBC Driver for Sybase (通过Sybase System 11 ODBC Driver驱动程序)



9) ODBC Driver for Sybase SQL Anywhere



10) ODBC Driver for Teradata



11) ODBC Driver for Text



12) ODBC Driver for Visual FoxPro

●使用数据库容器(database container)连接方式



● 不使用数据库容器(database container)连接方式(即Free Table Directory方式)

Dim oConn,strConn

Set oConn=Server.CreateObject(“ADODB.Connection”)

StrConn= "Driver={Microsoft Visual FoxPro Driver};" & _

          "SourceType=DBF;" & _

          "SourceDB=c:\somepath\mySourceDbFolder;" & _

          "Exclusive=No;"

oConn.Open strConn
[此贴子已经被作者于2006-8-12 23:29:12编辑过]

TA的精华主题

TA的得分主题

发表于 2006-5-12 20:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  三、连接字符串(英文、比较全) http://www.blueidea.com/bbs/archivecontent.asp?id=278961 This page contains sample ADO connection strings for ODBC DSN / DSN-Less, OLE DB Providers, Remote Data Services (RDS), MS Remote, MS DataShape. Also included are ADO.NET connection strings for each .NET Managed Provider (SQLClient, OLEDB, and ODBC). These sample connection strings are compiled by Carl Prothman, a Microsoft Visual Basic MVP Enjoy!   Table of Contents ODBC DSN Connections DSN File DSN ODBC DSN-Less Connections  ODBC Driver for AS/400 ODBC Driver for Access ODBC Driver for dBASE ODBC Driver for Excel ODBC Driver for MySQL ODBC Driver for Oracle ODBC Driver for Paradox ODBC Driver for SQL Server ODBC Driver for Sybase ODBC Driver for Sybase SQL Anywhere ODBC Driver for Text ODBC Driver for Teradata ODBC Driver for Visual FoxPro OLE DB Data Link Connections Data Link File (UDL) OLE DB Data Provider Connections  OLE DB Provider for AS/400 OLE DB Provider for Active Directory Service OLE DB Provider for DB2 OLD DB Provider for Internet Publishing OLE DB Provider for Index Server OLE DB Provider for Microsoft Jet OLE DB Provider for ODBC Databases OLE DB Provider for Oracle (From Microsoft) OLE DB Provider for Oracle (From Oracle) OLE DB Provider for Simple Provider OLE DB Provider for SQL Server Remote Data Service (RDS) Connections RDS Data Control - Connect Property RDS Data Control - URL Property ADO URL Connections ADO Recordset MS Remote Provider Connections MS Remote - Access (Jet) MS Remote - SQL Server Data Shape Provider Connections  MS DataShape - SQL Server .NET Managed Provider Connections SQL Client .NET Managed Provider (System.Data.SqlClient) OLE DB .NET Managed Provider (System.Data.OleDb) ODBC .NET Managed Provider (System.Data.ODBC)   ============================================ ODBC DSN Connections Using an ODBC DSN (Data Source Name) is a two step process. 1) You must first create the DSN via the "ODBC Data Source Administrator" program found in your computer's Control Panel (or Administrative Tools menu in Windows 2000). Make sure to create a SYSTEM DSN (not a USER DSN) when using ASP. Note: You can also create the DSN via VB code. 2) Then use the following connection string - with your own DSN name of course.  -) -------------------------------------------------------------------------------- ODBC - DSN   oConn.Open "DSN=AdvWorks;" & _           "Uid=Admin;" & _           "Pwd=; --------------------------------------------------------------------------- You can also create and use a File DSN. Then use the following ADO Connection string: ODBC - File DSN   oConn.Open "FILEDSN=c:\somepath\mydb.dsn;" & _           "Uid=Admin;" & _           "Pwd=;" For more information, see: About ODBC data sources and How to Use File DSNs and DSN-less Connections Note: The problem with DSN is that Users can (and will) modify them (or delete by mistake), then your program won't work so well... So it's better to use a DSN-Less or OLE DB Provider connection string with a Trusted Connection if possible! ====================================== ODBC DSN-Less Connections ODBC Driver for AS/400   oConn.Open "Driver={Client Access ODBC Driver (32-bit)};" & _           "System=myAS400;" & _           "Uid=myUsername;" & _           "Pwd=myPassword;" For more information, see:  A Fast Path to AS/400 Client/Server ----------------------------------------------------------------------------------- ODBC Driver for Access   For Standard Security: oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _           "Dbq=c:\somepath\mydb.mdb;" & _           "Uid=Admin;" & _           "Pwd=;" If you are using a Workgroup (System database): oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _           "Dbq=c:\somepath\mydb.mdb;" & _           "SystemDB=c:\somepath\mydb.mdw;", _           "admin", "" If MDB is located on a network share: oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _           "Dbq=\\myServer\myShare\myPath\myDb.mdb;" For more information, see: Microsoft Access Driver Programming Considerations --------------------------------------------------------------------------- ODBC Driver for dBASE   oConn.Open "Driver={Microsoft dBASE Driver (*.dbf)};" & _          "DriverID=277;" & _          "Dbq=c:\somepath;" Note: Specify the filename in the SQL statement. For example:      oRs.Open "Select * From user.dbf", oConn, , ,adCmdText Note: MDAC 2.1 (or greater) requires the Borland Database Engine (BDE) to update dBase DBF files. (Q238431). For more information, see: dBASE Driver Programming Considerations ----------------------------------------------------------------------------------------------- ODBC Driver for Excel   oConn.Open "Driver={Microsoft Excel Driver (*.xls)};" & _           "DriverId=790;" & _           "Dbq=c:\somepath\mySpreadsheet.xls;" & _           "DefaultDir=c:\somepath;" For more information, see: Microsoft Excel Driver Programming Considerations ---------------------------------------------------------------------------------------------- ODBC Driver for MySQL (via MyODBC)   To connect to a local database oConn.Open "Driver={mySQL};" & _           "Server=MyServerName;" & _           "Option=16834;" & _           "Database=mydb;" To connect to a remote database oConn.Open "Driver={mySQL};" & _           "Server=db1.database.com;" & _           "Port=3306;" & _           "Option=131072;" & _           "Stmt=;" & _           "Database=mydb;" & _           "Uid=myUsername;" & _           "Pwd=myPassword;" For more information, see: Programs Known to Work with MyODBC ------------------------------------------------------------------------------------------------ ODBC Driver for Oracle   For the current Oracle ODBC Driver from Microsoft: oConn.Open "Driver={Microsoft ODBC for Oracle};" & _           "Server=OracleServer.world;" & _           "Uid=myUsername;" & _           "Pwd=myPassword;" For the older Oracle ODBC Driver from Microsoft: oConn.Open "Driver={Microsoft ODBC Driver for Oracle};" & _           "ConnectString=OracleServer.world;" & _           "Uid=myUsername;" & _           "Pwd=myPassword;" For more information, see: Connection String Format and Attributes --------------------------------------------------------------------------------------------------- ODBC Driver for Paradox   oConn.Open "Driver={Microsoft Paradox Driver (*.db)};" & _           "DriverID=538;" & _           "Fil=Paradox 5.X;" & _           "DefaultDir=c:\dbpath\;" & _           "Dbq=c:\dbpath\;" & _           "CollatingSequence=ASCII;" Note: MDAC 2.1 (or greater) requires the Borland Database Engine (BDE) to update Paradox ISAM fDBF files. (Q230126). For more information, see: Paradox Driver Programming Considerations -------------------------------------------------------------------------------------------------------- ODBC Driver for SQL Server   For Standard Security: oConn.Open "Driver={SQL Server};" & _           "Server=MyServerName;" & _          "Database=myDatabaseName;" & _          "Uid=myUsername;" & _           "Pwd=myPassword;" For Trusted Connection security: oConn.Open "Driver={SQL Server};" & _           "Server=MyServerName;" & _           "Database=myDatabaseName;" & _           "Uid=;" & _           "Pwd=;" ' or oConn.Open "Driver={SQL Server};" & _           "Server=MyServerName;" & _           "Database=myDatabaseName;" & _           "Trusted_Connection=yes;" To Prompt user for username and password oConn.Properties("Prompt" = adPromptAlways oConn.Open "Driver={SQL Server};" & _           "Server=MyServerName;" & _           "DataBase=myDatabaseName;"    For more information, see: SQLDriverConnect (ODBC) ------------------------------------------------------------------------------------------------ ODBC Driver for Sybase   If using the Sybase System 11 ODBC Driver: oConn.Open "Driver={SYBASE SYSTEM 11};" & _           "Srvr=myServerName;" & _          "Uid=myUsername;" & _           "Pwd=myPassword;" If using the Intersolv 3.10 Sybase ODBC Driver: oConn.Open "Driver={INTERSOLV 3.10 32-BIT Sybase};" & _           "Srvr=myServerName;" & _          "Uid=myUsername;" & _           "Pwd=myPassword;" For more information, see: Sybase System 10 ODBC Driver Reference Guide ------------------------------------------------------------------------------------------------------- ODBC Driver for Sybase SQL Anywhere   oConn.Open "ODBC; Driver=Sybase SQL Anywhere 5.0;" & _           "DefaultDir=c:\dbpath\;" & _           "Dbf=c:\sqlany50\mydb.db;" & _          "Uid=myUsername;" & _           "Pwd=myPassword;"           "Dsn="""";" Note: Including the DSN tag with a null string is absolutely critical or else you get the dreaded -7778 error. For more information, see: Sybase SQL Anywhere User Guide -------------------------------------------------------------------------------------------------- ODBC Driver for Teradata   oConn.Open "Provider=Teradata;" & _           "DBCName=MyDbcName;" & _           "Database=MyDatabaseName;" & _           "Uid=myUsername;" & _           "Pwd=myPassword;" For more information, see Teradata ODBC Driver --------------------------------------------------------------------------------- ODBC Driver for Text   oConn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _           "Dbq=c:\somepath\;" & _           "Extensions=asc,csv,tab,txt;" & _           "Persist Security Info=False" Note: Specify the filename in the SQL statement. For example: oRs.Open "Select * From customer.csv", _         oConn, adOpenStatic, adLockReadOnly, adCmdText For more information, see: Text File Driver Programming Considerations ------------------------------------------------------------------------------ ODBC Driver for Visual FoxPro   With a database container: oConn.Open "Driver={Microsoft Visual FoxPro Driver};" & _           "SourceType=DBC;" & _           "SourceDB=c:\somepath\mySourceDb.dbc;" & _           "Exclusive=No;" Without a database container (Free Table Directory): oConn.Open "Driver={Microsoft Visual FoxPro Driver};" & _           "SourceType=DBF;" & _           "SourceDB=c:\somepath\mySourceDbFolder;" & _           "Exclusive=No;" For more information, see: Visual FoxPro ODBC Driver and Q165492 ================================================= ================================================= OLE DB Data Link Connections Data Link File (UDL)   For Absolute Path: oConn.Open "File Name=c:\somepath\myDatabaseName.udl;" For Relative Path: oConn.Open "File Name=myDatabaseName.udl;"   For more information, see: HOWTO: Use Data Link Files with ADO Note: Windows 2000 no longer contains the "New | Microsoft Data Link" menu  anymore. You can add the Data Link menu back in the menu list by running the "C:\Program Files\Common Files\System\Ole DB\newudl.reg" reg file, then right-click on the desktop and select "New | Microsoft Data Link" menu.  Or you can also create a Data Link file by creating a text file and change it's file extension to ".udl", then double-click the file. OLE DB Provider Connections --------------------------------------------------------------------------------- OLE DB Provider for AS/400   oConn.Open "Provider=IBMDA400;" & _           "Data source=myAS400;"           "User Id=myUsername;" & _           "Password=myPassword;" For more information, see:  A Fast Path to AS/400 Client/Server ------------------------------------------------------------------------------------------- OLE DB Provider for Active Directory Service   oConn.Open "Provider=ADSDSOObject;" & _           "User Id=myUsername;" & _           "Password=myPassword;"   For more information, see: Microsoft OLE DB Provider for Microsoft Active Directory Service --------------------------------------------------------------------------------

TA的精华主题

TA的得分主题

发表于 2006-5-12 20:06 | 显示全部楼层
OLE DB Provider for DB2   oConn.Open = "Provider=DB2OLEDB;" &            "Network Transport Library=TCPIP;" &            "Network Address=MyServer;" & _            "Package Collection=MyPackage;" &            "Host CCSID=1142"            "Initial Catalog=MyDB;" &            "User ID=MyUsername;" & _            "Password=MyPassword;" For more information, see: OLE DB Provider for DB2 and INF: Configuring Data Sources for the Microsoft OLE DB Provider for DB2 ------------------------------------------------------------------------------------ OLE DB Provider for Index Server   oConn.Open "Provider=msidxs;" & _           "Data source=MyCatalog;"   For more information, see: Microsoft OLE DB Provider for Microsoft Indexing Service ---------------------------------------------------------------------------------------------------- OLE DB Provider for Internet Publishing   oConn.Open "Provider=MSDAIPP.DSO;" & _       "Data Source=http://mywebsite/myDir;" & _       "User Id=myUsername;" & _       "Password=myPassword;"   For more information, see: Microsoft OLE DB Provider for Internet Publishing and Q245359 -------------------------------------------------------------------------------------------------- OLE DB Provider for Microsoft Jet   For standard security: oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=c:\somepath\myDb.mdb;" & _           "User Id=admin;" & _           "Password=;" If using a Workgroup (System Database): oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=c:\somepath\mydb.mdb;" & _           "Jet OLEDB:System Database=MySystem.mdw;", _           "admin", "" Note, remember to convert both the MDB and the MDW to the 4.0 database format when using the 4.0 OLE DB Provider. If MDB has a database password: oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=c:\somepath\mydb.mdb;" & _           "Jet OLEDBatabase Password=MyDbPassword;", _           "admin", "" If MDB is located on a network share: oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=\\myServer\myShare\myPath\myDb.mdb; If want to open up the Access database exclusively: oConn.Mode = adModeShareExclusive oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=c:\somepath\myDb.mdb;" & _           "User Id=admin;" & _           "Password=;" For more information, see: OLE DB Provider for Microsoft Jet, Q191754, Q225048, Q239114, and Q271908 You can also open an Excel Spreadsheet using the "OLE DB Provider for Microsoft Jet" oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=c:\somepath\myExcelSpreadsheet.xls;" & _           "Extended Properties=""Excel 8.0;HDR=Yes;"";" Where "HDR=Yes" means that there is a header row in the cell range (or named range), so the provider will not include the first row of the selection into the recordset. If "HDR=No", then the provider will include the first row of the cell range (or named ranged) into the recordset. For more information, see: Q278973 You can also open a Text File using the "OLE DB Provider for Microsoft Jet" oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=c:\somepath\;" & _           "Extended Properties=""text;HDR=Yes;FMT=Delimited;"";" ' Then open a recordset based on a select on the actual file oRs.Open "Select * From MyTextFile.txt", oConn, adOpenStatic, adLockReadOnly, adCmdText For more information, see: Q262537 ---------------------------------------------------------------------------------------------------------- OLE DB Provider for ODBC Databases   For Access (Jet): oConn.Open "Provider=MSDASQL;" & _           "Driver={Microsoft Access Driver (*.mdb)};" & _           "Dbq=c:\somepath\mydb.mdb;" & _           "Uid=myUsername;" & _           "Pwd=myPassword;" For SQL Server: oConn.Open "Provider=MSDASQL;" & _           "Driver={SQL Server};" & _           "Server=myServerName;" & _           "Database=myDatabaseName;" & _           "Uid=myUsername;" & _           "Pwd=myPassword;" For more information, see: Microsoft OLE DB Provider for ODBC ------------------------------------------------------------------------------------------------------------ OLE DB Provider for Oracle (from Microsoft)   oConn.Open "Provider=msdaora;" & _           "Data Source=MyOracleDB;" & _           "User Id=myUsername;" & _           "Password=myPassword;" For more information, see: Microsoft OLE DB Provider for Oracle ---------------------------------------------------------------------------------------------- OLE DB Provider for Oracle (from Oracle)   For Standard Security: oConn.Open "Provider=OraOLEDB.Oracle;" & _           "Data Source=MyOracleDB;" & _           "User Id=myUsername;" & _           "Password=myPassword;" For a Trusted Connection: oConn.Open "Provider=OraOLEDB.Oracle;" & _           "Data Source=MyOracleDB;" & _           "User Id=/;" & _           "Password=;" ' Or oConn.Open "Provider=OraOLEDB.Oracle;" & _           "Data Source=MyOracleDB;" & _           "OSAuthent=1;"   Note: "Data Source=" must be set to the appropriate Net8 name which is known to the naming method in use. For example, for Local Naming, it is the alias in the tnsnames.ora file; for Oracle Names, it is the Net8 Service Name. For more information, see: Connecting to an Oracle Database (Note, if you get a Logon dialog, then click Cancel, then perform a one-time free signup with Oracle's TechNet system) -------------------------------------------------------------------------- OLE DB Provider for Simple Provider   The Microsoft OLE DB Simple Provider (OSP) allows ADO to access any data for which a provider has been written using the OLE DB Simple Provider Toolkit. Simple providers are intended to access data sources that require only fundamental OLE DB support, such as in-memory arrays or XML document.. OSP in MDAC 2.6 has been enhanced to support opening hierarchical ADO Recordsets over arbitrary XML files. These XML files may contain the ADO XML persistence schema, but it is not required. This has been implemented by connecting the OSP to the MSXML2.DLL, therefore MSXML2.DLL or newer is required. oConn.Open "Provider=MSDAOSP;" & _           "Data Source=MSXML2.DSOControl.2.6;" oRS.Open "http://WebServer/VirtualRoot/MyXMLFile.xml";, oConn For more information, see: Microsoft OLE DB Simple Provider ---------------------------------------------------------------------------------------- OLE DB Provider for SQL Server   For Standard Security: oConn.Open "Provider=sqloledb;" & _           "Data Source=myServerName;" & _           "Initial Catalog=myDatabaseName;" & _           "User Id=myUsername;" & _           "Password=myPassword;" For a Trusted Connection: oConn.Open "Provider=sqloledb;" & _           "Data Source=myServerName;" & _           "Initial Catalog=myDatabaseName;" & _           "Integrated Security=SSPI;" To connect to a "Named Instance" (SQL Server 2000) oConn.Open "Provider=sqloledb;" & _           "Data Source=myServerName\Inst2;" & _           "Initial Catalog=myDatabaseName;" & _           "User Id=myUsername;" & _           "Password=myPassword;" To Prompt user for username and password: oConn.Provider = "sqloledb" oConn.Properties("Prompt" = adPromptAlways oConn.Open "Data Source=myServerName;" & _           "Initial Catalog=myDatabaseName;" To connect via an IP address: oConn.Open "Provider=sqloledb;" & _           "Data Source=xxx.xxx.xxx.xxx,1433;" & _           "Network Library=DBMSSOCN;" & _           "Initial Catalog=myDatabaseName;" & _           "User ID=myUsername;" & _           "Password=myPassword;" Note: - xxx.xxx.xxx.xxx is an IP address - "Network Library=DBMSSOCN" tells OLE DB to use TCP/IP rather than Named Pipes (Q238949) - 1433 is the default port number for SQL Server - You can also add "Encrypt=yes" for encryption For more information, see: Microsoft OLE DB Provider for SQL Server ================================================== Remote Data Service (RDS) Connections The following examples show how to connect to a remote database using the RDS Data Control. When using the RDS DataControl's Server/SQL/Connect properties, the RDS DataControl uses the RDS DataFactory on the remote server. If you use the RDS DataControl's URL property, then the RDS DataFactory is not used at all. WARNING: The RDS DataFactory can be a major security hole if not setup and configured correctly! For more information, see RDS FAQ #24 RDS DataControl - Connect Property   With the RDS default handler disabled (not recommend due to security risks): With oRdc   .Server = "http://carl2";   .Sql = "Select * From Authors Where State = 'CA'"   .Connect = "Provider=sqloledb;" & _            "Data Source=(local);" & _            "Initial Catalog=pubs;" & _            "User Id=sa;" & _            "Password=;"   .Refresh End With With the RDS default handler enabled (recommend): With oRdc   .Server = "http://carl2";   .Handler = "MSDFMAP.Handler"   .Connect = "Data Source=MyConnectTag;"   .Sql = "MySQLTag(""CA"""   .Refresh End With The corresponding CONNECT and SQL sections in the default handler \WINNT\MSDFMAP.INI file would be: [connect MyConnectTag] Access = ReadWrite Connect = "Provider=sqloledb;Data Source=(local);Initial Catalog=pubs;User Id=sa;Password=;" [sql MySQLTag] Sql = "Select * From Authors Where State = '?'" For more information about the RDS Default Handler, see: Q243245, Q230680, and RDS Customization Handler Microsoft articles RDS DataControl - URL Property   To get records from a remote database: With oRdc   .URL = "http://carlp0/Authors_GetByState.asp?state=CA";   .Refresh End With To save, set the URL property to an ASP web page: With oRdc   .URL = "http://carlp0/rdsdatacontrol/Authors_Save.asp";   .SubmitChanges End With For more information, see: RDS URL Property

TA的精华主题

TA的得分主题

发表于 2006-5-12 20:07 | 显示全部楼层
ADO URL Connections ADO 2.5+ allows you to open up a Recordset based on XML returned from an ASP file over HTTP.  This feature doesn't use RDS at all. ADO Recordset   To get records from a remote database: oRs.Open "http://carlp0/Authors_GetByState.asp?state=CA";, , _                       adOpenStatic, adLockBatchOptimistic To save changes, you must use the MSXML's XMLHTTP object to POST back the updated XML.  The Recordset's Update and UpdateBatch methods will not work in this case. ' Save Recordset into Stream Set oStm = New ADODB.Stream oRs.Save oStm, adPersistXML ' Use MSXML's XMLHTTP object to open ASP and post a XML stream Set oXMLHTTP = New MSXML2.XMLHTTP30 oXMLHTTP.Open "POST", "http://carlp0/Authors_Save.asp";, False oXMLHTTP.Send oStm.ReadText ' If an error occurred If oXMLHTTP.Status = 500 Then   Debug.Print oXMLHTTP.statusText End If For more information, see: ADO Recordset's Open Method ========================================= MS Remote Provider Connections The following connections strings use Microsoft's remote provider (MS Remote). The MS Remote provider tells ADO to communicate with the remote server (via the RDS DataFactory) and to use the remote provider that is installed on the remote server. WARNING: The RDS DataFactory can be a major security hole if not setup and configured correctly!  For more information, see RDS FAQ #24    -------------------------------------------------------------------------- MS Remote - Access (Jet)   If you want to use an ODBC DSN on the remote machine: oConn.Open "Provider=MS Remote;" & _           "Remote Server=http://myServerName;" & _           "Remote Provider=MSDASQL;" & _           "DSN=AdvWorks;" & _           "Uid=myUsername;" & _           "Pwd=myPassword;" If you want to use an OLE DB Provider on the remote machine: oConn.Open "Provider=MS Remote;" & _           "Remote Server=http://myServerName;" & _           "Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=c:\somepath\mydb.mdb;", _           "admin", "" If you want to use an OLE DB Provider on the remote machine (via RDS DataFactory Default Handler): oConn.Open "Provider=MS Remote;" & _           "Remote Server=http://myServerName;" & _           "Handler=MSDFMAP.Handler;" & _           "Data Source=MyAdvworksConn;" The corresponding entry in the \winnt\Msdfmap.ini file would be: [connect MyAdvworksConn] Access = ReadWrite Connect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _         "Data Source=mydb.mdb;" & _         "User Id=admin;" & _         "Password=;"   ------------------------------------------------------------------------------------- MS Remote - SQL Server   If you want to use an ODBC DSN on the remote machine: oConn.Open "Provider=MS Remote;" & _           "Remote Server=http://myServerName;" & _           "Remote Provider=MSDASQL;" & _           "DSN=myDatabaseName;" & _           "Uid=myUsername;" & _           "Pwd=myPassword;" If you want to use an OLE DB Provider on the remote machine: oConn.Open "Provider=MS Remote;" & _           "Remote Server=http://myServerName;" & _           "Remote Provider=SQLOLEDB;" & _          "Data Source=myServerName;" & _          "Initial Catalog=myDatabaseName;" & _          "User ID=myUsername;" & _           "Password=myPassword;" If you want to use an OLE DB Provider on the remote machine (via RDS DataFactory Default Handler): oConn.Open "Provider=MS Remote;" & _           "Remote Server=http://myServerName;" & _           "Handler=MSDFMAP.Handler;" & _           "Data Source=MyPubsConn;" The corresponding entry in the \winnt\Msdfmap.ini file would be: [connect MyPubsConn] Access = ReadWrite Connect = "Provider=SQLOLEDB;" & _         "Data Source=myServerName;" & _         "Initial Catalog=myDatabaseName;" & _         "User ID=myUsername;" & _         "Password=myPassword;" For more information, see: Microsoft OLE DB Remoting Provider  and Q240838 ====================================== Data Shape Provider Connections MS DataShape - SQL Server   oConn.Open "Provider=MSDataShape;" & _           "Data Provider=SQLOLEDB;" & _           "Data Source=mySQLServerName;" & _           "Initial Catalog=myDatabase;" & _           "User ID=myUsername;" & _           "Password=myPassword;" Then use a Shape command with SQL strings: sSQL = "SHAPE {select * from authors} " & _       "APPEND ({select * from titleauthor} AS chapter " & _       "RELATE au_id TO au_id)" Or use a Shape command that calls Stored Procedures: sSQL = "SHAPE {exec spAuthors_LoadAll} " & _       "APPEND ({exec spTitleAuthor_LoadAll} AS chapter " & _       "RELATE au_id TO au_id)" For more information, see: Microsoft Data Shaping Service for OLE DB and Q288409 ================================== .NET Managed Provider Connections SQL Client .NET Managed Provider (System.Data.SqlClient)   The SQL Client .NET Managed Provide allows you to connect to a Microsoft SQL Server 7.0 or 2000 database. For Microsoft SQL Server 6.0 or earlier, use the OLE DB .NET Data Provider with the "SQL Server OLE DB Provider" (SQLOLEDB). Dim oSQLConnection As SqlClient.SqlConnection Dim sConnString As String sConnString = "Data Source=(local);" & _            "Initial Catalog=NorthWind;" & _            "Integrated Security=SSPI;" & _            "Pooling=True;" & _            "Min Pool Size=10;" & _            "Max Pool Size=50;" & _            "Connection Lifetime=30;" & _            "Connection Reset=True;" & _            "Enlist=True;" oSQLConnection = New SqlClient.SqlConnection(sConnString) oSQLConnection.Open() For more information, see: System.Data.SQL Namespace and .NET Data Providers Note: 'SQL' namespace got renamed to 'SQLClient' ---------------------------------------------------------------------------- OLE DB .NET Managed Provider (System.Data.OleDb)   The OLE DB .NET Data Provider uses native OLE DB through COM interop to enable data access.  To use the OLE DB .NET Data Provider, you must also use an OLE DB provider (e.g. SQLOLEDB, MSDAORA, or Microsoft.JET.OLEDB.4.0). For SQL Server OLE DB Provider (for SQL Server 6.0 or earlier) Dim oOleDbConnection As OleDb.OleDbConnection Dim sConnString As String sConnString = "Provider=sqloledb;" & _            "Data Source=myServerName;" & _            "Initial Catalog=myDatabaseName;" & _            "User Id=myUsername;" & _           "Password=myPassword;" oOleDbConnection = New OleDb.OleDbConnection(sConnString) oOleDbConnection.Open() For JET OLE DB Provider: Dim oOleDbConnection As OleDb.OleDbConnection Dim sConnString As String sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _            "Data Source=C:\Work\nwind.mdb;" & _            "User ID=Admin;" & _            "Password="";" oOleDbConnection = New OleDb.OleDbConnection(sConnString) oOleDbConnection.Open() For more information, see: System.Data.OleDb Namespace and .NET Data Providers Note: 'ADO' namespace got renamed to 'OleDb' ODBC .NET Managed Provider (System.Data.ODBC)   The ODBC .NET Data Provider is an add-on component to the .NET Framework SDK Beta 2. It provides access to native ODBC drivers the same way the OLE DB .NET Data Provider provides access to native OLE DB providers. For SQL Server ODBC Driver: Dim oODBCConnection As Odbc.OdbcConnection Dim sConnString As String ' Create and open a new ODBC Connection sConnString = "Driver={SQL Server};" & _            "Server=MySQLServerName;" & _            "Database=MyDatabaseName;" & _            "Uid=MyUsername;" & _            "Pwd=MyPassword;" oODBCConnection = New Odbc.OdbcConnection(sConnString) oODBCConnection.Open() For Oracle ODBC Driver: Dim oODBCConnection As Odbc.OdbcConnection Dim sConnString As String ' Create and open a new ODBC Connection sConnString = "Driver={Microsoft ODBC for Oracle};" & _           "Server=OracleServer.world;" & _           "Uid=myUsername;" & _           "Pwd=myPassword;" oODBCConnection = New Odbc.OdbcConnection(sConnString) oODBCConnection.Open() For Access (JET) ODBC Driver: Dim oODBCConnection As Odbc.OdbcConnection Dim sConnString As String ' Create and open a new ODBC Connection sConnString = "Driver={Microsoft Access Driver (*.mdb)};" & _           "Dbq=c:\somepath\mydb.mdb;" & _           "Uid=Admin;" & _           "Pwd=;" oODBCConnection = New Odbc.OdbcConnection(sConnString) oODBCConnection.Open() For all other ODBC Drivers: Dim oODBCConnection As Odbc.OdbcConnection Dim sConnString As String ' Create and open a new ODBC Connection sConnString = "Dsn=myDsn;" & _            "Uid=myUsername;" & _            "Pwd=myPassword;" oODBCConnection = New Odbc.OdbcConnection(sConnString) oODBCConnection.Open()

TA的精华主题

TA的得分主题

发表于 2006-5-12 20:51 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-5-15 15:47 | 显示全部楼层

写得好多哦,可是我看不懂,怎么用阿。

lz的问题用VBA怎么完成呢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-15 16:16 | 显示全部楼层

是啊,写了这么多但还是不清楚怎么解决我提出的实际问题,

关键是具体的步骤不知道。

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 02:39 , Processed in 0.041161 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表