发布网友 发布时间:2022-04-23 05:37
共4个回答
懂视网 时间:2022-04-08 08:28
Sub getdata() Dim cnn As New ADODB.Connection, sh As Worksheet Dim rs As New ADODB.Recordset Dim cnnStr As String, SQL As String cnnStr = "Provider=SQLOLEDB;Initial Catalog=BI" & ";User ID=sa" & ";Password=Aa123456" & ";Data Source=172.16.0.73" cnn.ConnectionString = cnnStr cnn.Open SQL = "SELECT * from dbo.tt" MsgBox "执行查询数据开始: " & SQL Set rs = cnn.Execute(SQL) For col = 0 To rs.Fields.Count - 1 Sheets("Sheet2").Range("A1").Offset(0, col).Value = rs.Fields(col).Name Next Sheets("Sheet2").Range("A1").Offset(1, 0).CopyFromRecordset rs rs.Close MsgBox "执行查询结束!" Set rs = Nothing cnn.Close Set cnn = Nothing End Sub对代码的说明:
Data Source:数据库IP
Catalog:数据库名
User ID:用户名
Password:数据库密码
SQL :SQL语句,通常是直接读取某个表
执行过程会有两个弹出窗口,点击确认即可。
最后数据会写入当前Excel文件的Sheet2中
要执行上面的代码还需要给Excel设置一下:
大概是Library的,记不清了,后面想起来再更新此文。
版权声明:本文为博主原创文章,未经博主允许不得转载。
Excel读取数据库表
标签:excel
热心网友 时间:2022-04-08 05:36
1、打开源数据文件,把首行中的对应的数据,复制行到空白位置。
2、选中J2单元格,单击编辑栏中的"插入函数“,如图示。
3、弹出”插入函数“对话框,设置其类别为”逻辑“,并选择列表框中的IF选项。然后确定。
4、在弹出的”函数参数“对话框中,设置Logical_test参数为”I2=“”,将Value_if_true设置为“”,即空白内容。
将Value_if_false参数框中输入“VLOOKUP(I2,A2:B2846,2),然后确定。
5、选中J2单元格,注意是J2,不是I2哦.(I2是输入证券代码的地方),鼠标移动到单元格右下角,出现十字光标时,按住鼠标左键向右拖动到O2单元格。如图
6、这个时候会发现原来源数据中的C2-G2单元格中的内容就会自动填充到K2-O2单元格中。这个时候,如需要的数据是按源数据中的数据从上 到下排列的,就可以不用修改了。直接重复第5步中的方法,把J2-O2每个单元格下拉填充就完成了。如图示,先把需要的数据列复制到I列中,然后依次下拉 填充。
7、但有时候,需要的不是按照源数据中的排序,比如说,现用的这个例子,如果在I3中,输入000002就会出错。如图示。
8,这是j3中的函数为VLOOKUP(I3,A3:B2847,2)),也就是搜索从A3到B2487区域中 的内容。没有包含A2,所以我们输入000002在源数据中找不到。所以使用这个方法前,要先对需要的数据按源数据进行排序。不然,是不准确的。
热心网友 时间:2022-04-08 06:54
假设马12在z1,a2=index(accdb!b:b,kactch(z1,accdb!c:c,0))其他参照做
热心网友 时间:2022-04-08 08:29
可以使用ADO读取数据库,然后填入excel表格中,需要vba参照中勾选Microsoft ActiveX Data Objects 2.X/6.1 Library,回答中写代码会被百度删除,所以发不出来,你可以自行搜索一下,格式比较简单