我用的是Oracle 11g + Microsoft Office 2010 旗舰版
首先要添加引用类库:
Microsoft ActiveX Data Objects Recordset 6.0(或者2.8)Library
Microsoft Activex Data Objects 6.1(或者2.8) Library
链接Oracle的字符串有三种,而我试验了几次两种,一种是odbc,另一种是ado方式
这两种链接方式如下:
odbc:
"DSN=orcl;UID=scott;PWD=tiger;DBQ=ORCL;DBA=W;APA=T;EXC=F;
FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;
NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F;"
ado:
"Provider = OraOLEDB.Oracle;Persist Security Info=true;User ID = scott;Password = whg;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.178.168)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=Orcl)))"
其中odbc只能实现链接本机数据库,不能远程,而ado方式可以实现远程连接,只需把host后面的ip改成目标地址即可。
做了一个活动标题的excel vba例子,所谓活动标题,是位置比较随意,可以互换位置,但中间不能有空的单元格,如果表头中有“序列”的话,可以自动编号。下面就贴上代码
VBA代码
OptionExplicit
PublicConst DATA_START_ROWAsByte = 4 '数据起始位置
PublicfieldsCountAsInteger
PublicfieldsZH()AsString '中文名称 表头
PublicfieldsEN()AsString '英文名称,数据库字段
PublicfieldsType()AsString '字段类型
'初始化字段值
Sub