×

vba连接sqlserver数据库

vba连接sqlserver数据库(Excel 求助,如何使用VBA实现远程访问SQL数据库)

admin admin 发表于2024-01-21 11:36:16 浏览30 评论0

抢沙发发表评论

“vba连接sqlserver数据库”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看vba连接sqlserver数据库(Excel 求助,如何使用VBA实现远程访问SQL数据库)!

本文目录

Excel 求助,如何使用VBA实现远程访问SQL数据库

VBA连接SQLSERVER数据库实例:DimstrConnAsString,strSQLAsStringDimconnAsADODB.ConnectionDimdsAsADODB.RecordsetDimcolAsInteger’连接数据库的字符串strConn="Provider=SQLOLEDB.1;PersistSecurityInfo=True;UserID=;InitialCatalog=;DataSource=;ConnectTimeout=720;"’查询语句,如果sql语句很长可以用strSQL=strSQL+来连接分成多段的语句,如果语句很短可以只写在一行上。strSQL="select*fromHy_KPI_Shop_Dept_WeekRpt"strSQL=strSQL+"wheresdate=’2014-01-01’orderbysdate,shopid"Setconn=NewADODB.ConnectionSetds=NewADODB.Recordset’打开数据库连接conn.OpenstrConn’该句和数据库连接字符串处的ConnectTimeout=720,表示说如果语句运行时间很长,这两句可以延长vba的等待时间,没有这两句,vba往往会报查询超时。conn.CommandTimeout=720Withds’根据查询语句获得数据.OpenstrSQL,conn’自动控制加入所有列标题Forcol=0Tods.Fields.Count-1’请注意Offset(0,col)中的参数一定要正确,该句表示标题将会写在第一行,从A1单元格开始,如果不想写入标题行,可将下面这句注释掉。Worksheets("门店各课KPI周报").Range("A1").Offset(0,col).Value=ds.Fields(col).NameNext’加入所有行数据,该句表示查询结果将会写在第一行,从A1单元格开始,但是由于标题行写在第一行了,所以实际这一行从标题下的一行写入。Worksheets("sheet1").Range("A1").Offset(1,0).CopyFromRecordsetdsEndWith’关闭数据库连接和清空资源Setds=Nothingconn.CloseSetconn=Nothing

vba 用ADO连接不上sqlserver 错误提示:client unable to establish connection

试试看="DRIVER={SQL SERVER};SERVER=172.29.6.187;UID=xx;PWD=xxx"

Excel VBA 连接SQL数据库后的操作

呵呵,以前就帮人家解决过这个,请看下面的代码,有注释的!Private Sub CommandButton5_Click() Dim Conn As New ADODB.Connection ’定义ADODB连接对象 Dim ConnStr As String ’定义连接字符串 Dim xiao As String xiao = ComData.Text’对于SQL 2008,如果以IP方式访问服务器,必须要启动SQL Server Browser服务,如果是Express版本,要以“IP(计算机名)\实例名”方式访问 ConnStr = txtData.Text Dim Records As New ADODB.Recordset ’定义ADODB对象的记录集 Dim Sheet As Worksheet ’定义工作表 Set Sheet = ThisWorkbook.Worksheets("Sheet2") ’给变量Sheet赋值,注意:是工作簿中索引为1的那个表(通常一个新的工作簿Sheet1的索引为1) ’Sheet.Name = "Data" ’把Sheet名称改为Data Sheet.Cells.Clear ’清空表中原有的数据’连接状态是打开就不在进行Open操作 Conn.Open ConnStr Dim SQLStr As String ’要执行的SQL语句 SQLStr = "select * from Shift_Code where Club=’" + xiao + "’" ’可以执行更复杂的SQL语句Records.Open SQLStr, Conn, adOpenStatic, adLockBatchOptimistic ’读取SQL查询结果到Records记录集’Records.Open Dim i, j, TotalRows, TotalColumns As Integer j = 0TotalRows = Records.RecordCountTotalColumns = Records.Fields.Count’下面的循环把表头(即列名)写到Excel表的第一行For i = 0 To TotalColumns - 1 Sheet2.Cells(1, i + 1) = Records.Fields(i).NameNext ’下面的循环把查询结果写到Excel表中Do While Not Records.EOF For i = 0 To TotalColumns - 1 Sheet2.Cells(j + 2, i + 1) = Records.Fields(i).Value Next Records.MoveNext j = j + 1 LoopRecords.Close ’关闭记录集Conn.Close ’关闭连接Set Records = Nothing ’清空对象Set Conn = Nothing ’清空对象End Sub有什么不懂的话Hi我!

VBA通过ADO连接SQL数据库,但是提示“无法链接到SQL数据库 错误编码 [67]”,问题在哪里呢

67表示主机地址错误,你下面语句中的【服务器名】要修改服务器的机器名、域名或者IP地址。

constr = "provider=sqlncli10.1;persist security info=false;initial catalog=yearsallshow;user id=sa;pwd=psw;data source=服务器名"

所有错误代码的含义见连接网页:网页链接

VBA连接SQL的问题

不知道 VarietyFirs是个啥对象,能否直接这么用,你试试Set VarietyFirs.List = rs

excel利用vba连接sql server上的数据库

不同一网段当然连接不上了。要在2个网段之间加个路由器,2个网段能直接通信之后才能连SQL

EXCEL VBA怎么读写SQLSERVER 数据库

Sub 按钮1_Click() Dim i As Integer, j As Integer, sht As Worksheet ’i,j为整数变量;sht 为excel工作表对象变量,指向某一工作表 ’Dim cn As New ADODB.Connection ’定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用 ’Dim rs As New ADODB.Recordset ’定义记录集对象,保存数据表 ‘工具 ---〉引用 ---〉Microsoft ActiveX data objects .... ’下面两句就不需要增加引用ADO Set cn = CreateObject("Adodb.Connection") Set rs = CreateObject("Adodb.Recordset") Dim strCn As String, strSQL As String ’字符串变量 Dim strCond As String strCn = "Provider=sqloledb;Server=R9HDET7;Database=dbname;Uid=username;Pwd=password" ’定义数据库链接字符串 ’下面的语句将读取数据表数据,并将它保存到excel工作表中:工作表为一张两维表,记录集也是一张两维表 strSQL = "select CUSTOMER_NAME from VSC_BI_CUSTOMER " ’定义SQL查询命令字符串 cn.Open strCn ’与数据库建立连接,如果成功,返回连接对象cn rs.Open strSQL, cn ’执行strSQL所含的SQL命令,结果保存在rs记录集对象中 i = 2 Set sht = ThisWorkbook.Worksheets("Test") ’把sht指向当前工作簿的Test工作表 Do While Not rs.EOF ’当数据指针未移到记录集末尾时,循环下列操作 sht.Cells(i, 1) = rs("CUSTOMER_NAME") ’把当前记录的字段1的值保存到sheet1工作表的第i行第1列 rs.MoveNext ’把指针移向下一条记录 i = i + 1 ’i加1,准备把下一记录相关字段的值保存到工作表的下一行 Loop ’循环 rs.Close ’关闭记录集,至此,程序将把某数据表的字段1保存在excel工作表sheet1的第1列,行数等于数据表的记录数 cn.Close ’关闭数据库链接,释放资源End Sub

vba连接sqlserver数据库问题

while( @beginMonth《=@endMonth) begin select Execute End With Set rs.ActiveConnection = conn rs.Open cmd If rs.RecordCount 》 0 Then conn.ConnectionString = "Driver={SQL Server};server=HKTNSSK-SQ003;database=Microsoft CSS;Trusted_Connection=yes;" conn.Open

VBA连接数据库,数据库配置不正确,导致连接失败,要求给出提示,并且退出程序

给你个链接算起来2005的,测试通过只说链接部分Set cnn = CreateObject("adodb.connection")strcn = "Provider=SQLOLEDB.1;User ID=sa;Password=sa1234;Initial Catalog=paracheck;DataSource=ZN" ’ZN为数据库名称cnn.Open strcn ’链接数据库,这里已经成功连接数据库了st = "SELECT * INTO .Range("a" & i))去掉.xls才可以导入,sheet1为表的取名名称,不是表的编码名称cnn.Execute stcnn.CloseSet cnn = Nothing

关于vba连接sqlserver数据库,Excel 求助,如何使用VBA实现远程访问SQL数据库的介绍到此结束,希望对大家有所帮助。