Tag: jet

带有长名称的工作表的ADO查询导致Jet错误

(跟我昨天的问题, “ADO参考Excel工作表结束在期间(”。“)结果在Jet错误” ) 我认为,一个ADO查询是针对一个以一个句点结束的表单名称,因为这个时间段而引发了一个错误,但我相信这是一个红色的鲱鱼。 我遇到类似的问题,与另一个名单很长,没有期限的表。 缩短名字似乎解决了这个问题。 我发现以下有关Microsoft Access的限制 ,这是我能find的最接近于ADO使用的查询Excel的Jet数据库引擎限制的参考。 在这个(非官方的)参考中,它提到一个表名最大长度为64个字符。 根据我的经验,ADO似乎没有成功查询长度超过30个字符的Excel工作表(请注意Excel最多允许31个字符作为工作表名称)。 是否有一个原因,ADO将无法查询31个字符的有效Excel表名称?

如何在查询中使用OLEDB.Jet for Excel文件使用分割string函数

我正在ASP.NET Web Forms 4.5中开发一个Web应用程序,它导入Access数据库中的Excel(.XLS,.XLSX)文件数据。 我需要实现一个查询将Excel工作表列分成两个不同的字段。 我的查询应该是这样的: string query = @"SELECT DISTINCT split(([MyExcelColumn], "" – "")(0) AS [CustomerID], split(([MyExcelColumn], "" – "")(1) AS [CustomerDescr] FROM [Sheet]"; // The separator string is " – ". // Executing the query DataTable dt = ExcelWorksheet.ListQuery(ExcelFileConnString, query); ExcelWorksheet.ListQuery是一个在Excel文件上执行列表查询的方法。 这是方法的实现: public static DataTable ListQuery(string connString, string query) { OleDbConnection conn = […]

使用jet.oledb.4.0导入Excel工作表,将第一行设置为列名

我正在尝试使用Jet.Oledb将excel文件导入到数据表中 。 这是我的代码: string sourceConstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + HttpContext.Current.Server.MapPath("~/" + fileName) + "';Extended Properties='Excel 8.0;HDR=No;IMEX=1'"; OleDbConnection con = new OleDbConnection(sourceConstr); OleDbCommand oleDbCmd = new OleDbCommand(); con.Open(); oleDbCmd.Connection = con; DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string firstExcelSheetName=dt.Rows[0][2].ToString(); string query = "select * from [" + firstExcelSheetName + "]"; OleDbDataAdapter data = new OleDbDataAdapter(query, con); data.TableMappings.Add("Table", […]

尝试在命令文本中包含多部分标识符时的语法

我正在尝试使用Asp.net将数据直接从Microsoft Excel文件复制到数据库中。 问题是电子表格有一个名为Product[°C]的列,当我将其包含在查询中时,无法将其parsing为有效的SQL。 我从示例中使用以下代码来了解如何通过OleDb和Ado.net连接并查询Excel文件 。 var conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0},HDR={1}"; conStr = String.Format(conStr, FilePath, isHDR); OleDbConnection connExcel = new OleDbConnection(conStr); OleDbCommand cmdExcel = new OleDbCommand(); connExcel.Open(); var SheetName = "Sheet1$"; // … cmdExcel.CommandText = "SELECT [Date/time] as [Date/time], [Product[°C]]] as [Product] From [" + SheetName + "] "; 这里的问题是[Product[°C]]] 。 debugging器给出一个错误说: 附加信息:查询expression式'[Product [°C]]]'中的语法错误'。 就像我想要在SQL中使用[Product [°C]]查询表一样,我可以通过使用: […]

如何SQL查询这个excel表的重复名称列中的标题?

简介:使用Jet.OLEDB提供程序和SQL查询,我无法从Excel表中提取某些列。 原因可能是标题文本包含一些重音字符。 技术上可以参考这些列吗? 就像列K或C12而不是使用标题的文本… 详细信息:其实,具体的Excel文档可以从http://www.sukl.cz/file/80129_1_1下载 – 文档名称是DistribuceLP_2015_01.xls (见后面的处方)。 它包含一些公开可用的统计数据,将被下载和提取。 下载并保存文件后,我确实提取了一些没有问题的列。 我有一个工具,它需要一个连接string,目标目录和一系列的SQL命令+目标表名。 它用提取的内容生成普通的旧DBF表。 具有变换描述的文本文件看起来像这样 – 所以你可以看到连接string和SELECT查询。 该表被重新命名为testingA : connection:Provider=Microsoft.Jet.OLEDB.4.0;Data source=d:\download\DistribuceLP_2015_01.xls;Extended Properties="Excel 8.0;HDR=Yes;" outputdir:. —————- test SELECT [Období] AS obdo, [Typ odběratele] AS typodb, ATC7, [Kód SÚKL] AS kodsukl, [Název přípravku] AS nazev, [Doplněk názvu] AS baleni, [Držitel registračního rozhodnutí] AS drr, [Země] AS zeme, [Typ pohybu] […]

错误:“不支持连接expression式”

我试图查询使用JET连接的Excel工作簿中的几个命名的范围,并收到错误(运行时错误“-2147217900(80040e14)”:不支持连接expression式)当我试图添加第二个条件其中一个连接: Dim strQuery As String strQuery = "SELECT mrx.Underlying " strQuery = strQuery & ",mrx.[exp] " strQuery = strQuery & ",sum(mrx.[codc]) " strQuery = strQuery & ",max(mapDt.[Str]) " strQuery = strQuery & "FROM ((([dataMRX] AS mrx " strQuery = strQuery & "LEFT OUTER JOIN [mapDt] AS mapDt on " strQuery = strQuery & "(mrx.[exp] = […]

无法读取数据库或只读对象

我正在尝试使用VBA和ADO选项从另一个文件查询Excel文件。 当我运行这个代码时,它抛出了错误“不能更新,数据库或对象只读”: Public Function fnExecuteXlQuery _ (ByVal strPath As String, _ ByVal strQuery As String) As ADODB.Recordset Dim rs As ADODB.Recordset Dim conStr As String On Error GoTo ErrorHandler conStr = "Provider=Microsoft.Jet.OLEDB.4.0; " _ & "Data Source=" & strPath & "; Extended Properties=Excel 8.0" Set rs = New ADODB.Recordset rs.Open strQuery, conStr, adOpenDynamic Set fnExecuteXlQuery […]

如何防止VB6中的Microsoft ACE和JET复制Excel电子表格中第一行的数据?

我正在处理一个用VB6编写的遗留应用程序,它读取Excel电子表格并将它们插入数据库。 它大部分工作,但如果电子表格中的数据没有在第一行开始,则第一个数据行将被复制。 例如,电子表格中的前3行是空白的,前四行数据如下所示: _| A | B | C | D | E | F | G | 1| | | | | | | | 2| | | | | | | | 3| | | | | | | | 4| 99 |Text1|Text2|Text3|Text4|Text5| 77 | 应用程序连接到Excel电子表格并使用以下代码读取它: Public Function obtainConnectionExcel(sql_conn, uid) As Variant Dim […]

如何在使用SQL查询Excel电子表格时修复JOIN语句中的语法错误?

我有一个Excel工作簿,其中包含几个电子表格。 我需要使用Jet SQL从桌面应用程序中获取数据。 我可以查询单个表没有问题,但是当我尝试使用需要联接的语句时,它给了我JOIN语句中的一般性的语法错误。 我遇到的问题是: SELECT [Subscribed Email IDs].PIN , [Subscribed Email IDs].[Email Id] , [SubscriptionList].[Dealer Account] , [SubscriptionList].[Dealer Name] FROM [Subscribed Email IDs$B4:C30000] INNER JOIN [SubscriptionList$B4:J30000] ON [Subscribed Email IDs].[PIN] = [SubscriptionList].[Pin Txt] WHERE [Subscribed Email IDs].[Email Id] = '<email address value here…>' 我必须使用范围,因为电子表格在顶部有额外的行,不包含标题或数据,'A'列不包含任何内容。 我已经尝试了没有范围,我得到了同样的错误,所以我认为这是我写的查询方式更基本。 我错过了什么?

当试图访问Delphi 7中的Excel表时提供者select

我正尝试使用TAdoConnection组件连接到Delphi 7的Excel表格。 问题是当我selectMicrosoft.Jet.OLEDB.4.0,Extended Properties =“Excel 8.0;”时,我有时会收到错误, 该外部表格不是预期的格式。 当我select:提供程序= Microsoft.ACE.OLEDB.12.0;扩展属性= Excel 12.0; 那么一些用户会收到以下错误: “找不到提供程序,可能安装不正确”。 有没有办法解决我的问题?