刚开始用VBA连接SQL数据库调用数据,很多东西不明白。参照以前程序的代码,如下写出,可用,屡试不爽。但是其实细节还是不了解,需要求教以及解释。Setconn=CreateObject("ADODB.conn...
刚开始用VBA连接SQL数据库调用数据,很多东西不明白。参照以前程序的代码,如下写出,可用,屡试不爽。但是其实细节还是不了解,需要求教以及解释。
Set conn = CreateObject("ADODB.connection")
conn.Open "Provider=MSDAORA.1;Password=password;User ID=username;Data Source=DB;Persist Security Info=True"
参照以前代码,知道以上两句是打开数据库的代码,但是从来没有修改过,因为不知如何修改。
个人理解:
Provider应该是指代数据库——MSDAORA.1是Oracle的数据库;SQLOLEDB.1是SQL Server。不知道还有没有其他的写法?
Password是密码;
User ID是用户名;
Data Source是数据库名称或地址;
Persist Security Info不知道是什么……
Sql = "SELECT * FROM db.name"
这是SQL语句,明白。
Sheets("Sheet1").Cells(1, 1).CopyFromRecordset conn.Execute(Sql)
执行SQL语句,结果放在Sheet1的A1中。
Set conn1 = CreateObject("ADODB.connection")
conn1.Open "dsn=excel files;IMEX=1;dbq=Book1.xlsx"
个人理解以上这两句是将Book1.xlsx作为一个数据库?
Set rs = CreateObject("ADODB.Recordset")
百度后得知以上这句是创建数据集。
个人问题如下:
1、Provider除了我已知的MSDAORA.1、SQLOLEDB.1还能写什么?
2、conn.open后面除了上面的那些还能写什么?都有什么作用?
3、将Book1.xlsx作为一个数据库有什么具体的作用?
4、数据集有什么用?和我直接conn.Execute(Sql)有什么大的区别?
展开