Tag: adodb

使用Excel VBA ADODB批量导入CSV到SQL Server

我试图从CSV文件导入大量的数据到SQL Sever数据库表。 我可以一行一行地写,但是这太耗时了。 在oComm.Execute期间,我在下面的“FROM [C:\ Temp \ tblOPTExportData.csv]”失败。 任何帮助,将不胜感激。 On Error GoTo err_me Dim locComm As New ADODB.Command Dim locConnection As New ADODB.Connection Dim locRst As New ADODB.Recordset Dim ee As Boolean Dim su As Boolean Dim strSQLQuery As String Dim shtDash As Worksheet Dim shtData As Worksheet Dim shtOP As Worksheet With Application ee […]

VBA多个SQL查询到Excel

我需要一些帮助。 我有以下工作的VBA将数据导入到Excel的存储过程。 挑战是如何修改代码以运行多个存储过程并将其粘贴到不同的页面上。 请帮忙。 Sub Macro1() ' Create a connection object. Dim cnPubs As ADODB.Connection Set cnPubs = New ADODB.Connection ' Provide the connection string. Dim strConn As String 'Use the SQL Server OLE DB Provider. strConn = "PROVIDER=SQLOLEDB;" 'Connect to the Pubs database on the local server. strConn = strConn & "DATA SOURCE=PC\SQL2014;INITIAL CATALOG=Option […]

VBA for Excel 2016中的ADODB连接超时 – 如何检查连接是否仍处于活动状态?

我已经开发了一个小的Excel插件使用VBA直接连接到数据库。 我通过DSNbuild立了连接。 这个插件在打开它的时候很好用。 但是,一段时间后,连接到数据库似乎超时。 更准确地说,一个完全有效的查询在试图打开logging集时返回一个错误。 我的代码是这样的: 'Check Connection If Not MakeConnectionToDB Then 'Connection failed [do something] Exit Function End If 'Active connection – run the query! If Rs Is Nothing Then Set Rs = New ADODB.Recordset 'make sure its an active object If Not Rs.State = adStateClosed Then Rs.Close 'make sure its not full (throws […]

ADODB – 为什么我的logging集是只读的?

在Excel中,我使用ADODB连接来构build一个logging集,从其工作簿中的工作表中获取数据,如下所示: Public Sub test() Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim strSQL As String Dim k As Variant cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & _ "Extended Properties=""Excel 12.0;HDR=No;IMEX=1;Readonly=False"";" strSQL = "SELECT F1 FROM [Workbench$];" rst.Open strSQL, cnn, adOpenStatic, adLockOptimistic rst.MoveFirst While Not […]

Excel 2003中的工作代码在Windows 7中引发运行时错误

我已经在Windows XP 32位机器上的Microsoft Excel 2003中创build了下面的macros,当我按下刷新button时,我的电子表格就像它应该填充一样。 但是,当我在Windows 7机器的用户机器上运行这个,32位和64位我得到以下错误信息 “运行时错误'-2147467259(80004005)':[Microsoft] [ODBC Driver Manager]未find数据源名称未指定默认驱动程序” Private Sub CommandButton1_Click() Dim cmd As New ADODB.Command Dim conn As ADODB.Connection Dim prm As ADODB.Parameter Dim strConn As String Dim strSQL As String Dim Rst As ADODB.Recordset Dim WSP As Worksheet Dim lastRow As Long Dim ranges As range strConn = "Data Source=;Initial […]

使用ADODB数据库连接在VBA中“存在”SQL查询

我需要将excel中的数据上传到数据库中,但是我需要首先检查每个上传的表中是否有数据,以便我更新或插入数据。 要区分更新或插入,我正在使用SQL IF EXIST命令,该命令在SQL中可以正常工作。 当我在Excel VBA中尝试这样做时,我收到一条错误消息:“命令文本未设置为命令对象。 看下面的代码 Dim strSQL As String Dim Value As String Dim Reference As String Set RCconn = New ADODB.Connection Set TuneCMD = New ADODB.Command ' Establish Recordset Set Results = New ADODB.Recordset 'Establish a Connection With RCconn .Provider = "SQLOLEDB" .ConnectionString = ConStr End With 'Open the connection RCconn.Open 'i […]

ExecuteExcel4Macro从封闭的工作簿中获取范围/图表

我使用这些行来从封闭的工作簿中获取值: Arg = "'" & Path & "[" & File & "]" & Sheet & "'!" & "R4C4" Arg = CStr(Arg) GetValue = ExecuteExcel4Macro(Arg) 除了循环以外,还有其他方法来获取范围内的值吗? 循环解决scheme正在工作,但如果我可以直接与ExecuteExcel4Macro获得范围将更清晰。 我试图在Arg中input一个范围,但它不起作用。 它返回一个错误。 我对图表有同样的问题,我怎么能得到它们? 我现在的解决scheme是获取价值和重新绘制图表。 它的工作原理,但我会更快乐的GetChart(Chartname)函数。 我已经看到,我可以使用ADODB连接从封闭的工作簿中获取值。 但是与ExecuteExcel4Macro相比,它有些复杂。 在范围/图表的情况下使用ADODB连接会更容易吗?

在Access中使用VBA创build多个链接表

所以我现在有这个代码 Public Sub DoTrans() Set cn = CreateObject("ADODB.Connection") dbPath = Application.ActiveWorkbook.Path & "\db1.accdb" dbWb = Application.ActiveWorkbook.FullName dbWs = Application.ActiveSheet.Name scn = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & dbPath dsh = "[" & Application.ActiveSheet.Name & "$]" & "namedrange1" cn.Open scn ssql = "INSERT INTO Table1 ([fdName], [fdOne], [fdTwo]) " ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" […]

Microsoft.ACE.OLEDB.12.0当前logging集不支持尝试更新访问时收到的更新错误

我有一个ASP页面,用户将上传一个Excel文件。 文件成功上传后,我想要在REGION选项卡中的行,并将它们插入MS Access 2007表。 下面是我使用的代码,我得到这个错误。 我可以使用Microsoft.ACE.OLEB.12.0提供程序的logging集更新吗? 有一个更好的方法吗? ADODB.Recordset错误“800a0cb3” 当前logging集不支持更新。 这可能是提供者或所选lockingtypes的限制。 Set cnnExcel = Server.CreateObject("ADODB.Connection") cnnExcel.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & strExcelFile & ";" & _ "Extended Properties=" & Chr(34) & "Excel 12.0 Xml;HDR=Yes;IMEX=1" & Chr(34) & ";" Response.Write "Excel connection opened<BR>" ' Load ADO Recordset with Excel Data Set rstExcel = Server.CreateObject("ADODB.Recordset") rstExcel.Open "Select […]

使用SQL查询Excel电子表格时,如何指定多个标题行?

我正在尝试使用SQL查询Excel电子表格。 我面临的问题是,我想查询的工作表之一有2个标题行。 这是我每周从外部收到的报告中的一张表格,并且有一个归档可以追溯到3年,因此只需删除多余的行就不是一个选项。 有什么办法可以告诉Excel(/ SQL)将这两行作为标题(或者完全忽略第一行 – 重要的标题信息在第二行)? 这是我的连接string,如果它有任何区别: "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & fileName & ";" & _ "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=0"";" 谢谢, 加里