我有一张由HR员工填写的Excel工作表,上面有成千上万的客户logging: 用户友好的Excel工作表示例截图 我的客户的SQL Server表模式看起来像这样 CREATE TABLE [dbo].[Clients] ( [ID] INT IDENTITY (1, 1) NOT NULL, [Name] NVARCHAR (100) NOT NULL, [Photo] VARCHAR (200) NOT NULL, [PolicyID] INT NOT NULL, [BirthDay] DATE NOT NULL, [Gender] BIT NOT NULL, [Title] NVARCHAR (100) NULL, [Nationality] NVARCHAR (100) NOT NULL, [Relationship] NVARCHAR (50) NOT NULL, [ClassID] INT NOT NULL, […]
我一直在试图导入到我的SQL数据库的Excel表。 我试过这个例子: void importdata(string excelfilepath) { //declare variables – edit these based on your particular situation string ssqltable = "tTableExcel"; // make sure your sheet name is correct, here sheet name is sheet1, so you can change your sheet name if have string myexceldataquery = "select student,rollno,course from [sheet1$]"; try { //create our connection strings […]
我无法使用Excel 2013 Power Query连接到SQL Server 2008 R2数据源。 我创build了一个新的Power Query查询,并创build了一个新的SQL Server数据源。 我已经指定了服务器名称和数据库,但没有指定任何具体的查询。 我正在使用SQL Server身份validationlogin到数据库,并且连接被encryption。 当我尝试在Excel Power Query中设置连接时,出现错误消息:DataSource.Error: 没有更多的错误细节提供。 我已经检查过SQL Server允许远程连接,而且我已经使用sqlcmd实用程序连接到数据库服务器和数据库并运行基本的SELECT查询来testingSQLlogin。 如果有人能够说明我做错了什么,我会非常感激。
我的同事有一个excel工作表,date,货币和百分比,格式化为“常规”之前,他们出口的工作表作为制表符分隔的文本文件。 这是为了捕获所有的原始数据,并消除格式化和舍入。 例如30%返回到0.29854的原始值。 导出文件被导入到SQL Server中。 我的问题是date设置为一个exell号码,我很难将其转换为date,一旦其导入到SQL Server中。 例子如下: Date Fmt General Fmt 9/3/2008 39694 7/1/2010 40360 5/4/2011 40667 有谁知道我可以如何将常规格式值导入SQL Server作为一个varchar,然后将其转换回date? 显而易见的答案是不格式化date作为一般,但我无法控制这个过程,不能改变它。 我曾尝试使用DATEADD()从1/1/1900转换date。 这是迄今为止最好的一个date。 有关详情,请参阅以下内容: http : //www.exceltactics.com/definitive-guide-using-dates-times-excel/#How-Excel-Stores-Dates 我发现这个解决scheme的问题是两天之后。 select dateadd(d,39694,'1/1/1900') = 9/5/2008 { should be 9/3/2008 } select dateadd(dd,40360,'1/1/1900') = 7/3/2010 { should be 7/1/2010 } select dateadd(dd,40677,'1/1/1900') = 5/6/2011 { should be 5/4/2011 } […]
我有大约30,000条logging,我需要分割Description字段,到目前为止,我似乎只能在Excel中实现这一点。 示例Description是: 1USBCP 2RJ45C6 1DVI 1DP 3MD 3MLP HANDS 以下是我的Excelfunction: =TRIM(MID(SUBSTITUTE($G309," ",REPT(" ",LEN($G309))),((COLUMNS($G309:G309)-1)*LEN($G309))+1,LEN($G309))) 然后拖动这十个Excel列,并在每个空间拆分description字段。 我看到很多关于在SQL中分割string的问题,但是它们似乎只覆盖了一个空格,而不是多空格。
我有一个(固定长度)平面文本文件,其中包含500列。 显然,我不打算坐在这里打字,我也有Excel的列名。 所以我试图保留列名,然后删除所有行 – 然后我将结果导出到一个CSV逗号分隔文件。 那么我得到正确的列名称: 看似问题解决了。 但后来我又回到更改inputtypes从分隔文件到固定长度的文件…并删除所有列… 有没有人有这个解决scheme? 我在Excel中有500个列名,但我不想逐个“添加列”并复制/粘贴每个字段。 这只是几个小时的工作。 非常感谢!
我一直在处理我的问题,现在我似乎没有find一个准确的工作答案,所以在这里,我是…我是一个新的VBA我不得不承认…… 。 我的问题是以下几点: 我正在与MS Office 2011的Mac OS X优胜美地工作,我试图将我的Excel工作簿连接到一个SQL数据库。 这必须通过vba来完成,以后我想从sql数据库读取数据以及将数据写入数据库。 我无法findbuild立到该数据库的连接的方法。 我甚至下载了actualtech的odbc驱动程序,并设置我的dsn(不知道如果我做对了,但无法find如何与一个SQL服务器上的主页….) 下面的代码是我能find的,但是我仍然在这里得到错误: strSRV = "mysql01.gutknecht-net.com" strDB = "gi_kunden" sqlLogin = "TEST" 'has to be changed sqlPW = "TEST_PW" 'has to be changed strConn = "ODBC;DSN=" & strSRV & ";UID=" & sqlLogin & ";PWD=" & sqlPW & ";Database=gi_kunden" With Sheets("Firma").ListObjects sqlCommand = "Select * From tbl_firma" […]
我想在SQL Server中创build一个表格,并在下面的行中定义列名称和types – 请在图片后面读取。 喜欢这个: 我已经研究并了解了如何在excel中定义COLUMNS,并在每个列的下面给出一些示例值,SQL Server会自动创build一个包含这些列的表,但列types是在对第一个,比方说100行(你可以调整采样大小)。 这不适合我。 我的表格有很多变化(VarChar1,2,3,5甚至CHAR)。 所以我想能够使用上面描述的描述来定义它。 任何人都有解决scheme? 提前谢谢你!
我试图在Excel中创build一个function,通过点击一个button将数据写入到我的远程SQL Server数据库。 但是,我不断得到一个错误告诉我,我的login失败用户“用户名”(错误80040e4d)。 起初我以为用户/login在数据库中肯定有问题,所以我去了远程桌面,打开SQL Server Management Studio,检查了我所有的权限,确认了Windows身份validation,选中了密码等等。仍然没有工作。 我的用户已经被授予读写权限,所以我尝试从SQL导入数据到Excel中,这确实有效。 所以我假设这必须是我的VBA代码,更具体地说,我的连接string的问题。 如果有人可以看一看,我会很感激,并告诉我我做错了什么? 或者如果别人有这个问题,并知道是什么原因造成的? 这是我有的代码: Sub Button3_Click() Dim conn As New ADODB.Connection Dim iRowNo As Integer Dim sArtistId, sForename, sSurname, sNationality, sBirthDate, sDeathDate As String With Sheets("NewArtist") 'Open a connection to SQL Server conn.Open "Provider=SQLOLEDB;Data Source=tcp:IPADDRESS,1433\SqlServer2008;" & _ "Initial Catalog=DatabaseName;User ID=UserName;Password=PassWord" & _ "Integrated Security=SSPI;" 'Skip the header […]
我有8,500行36列,我需要插入到SQL Server表,目前需要9分钟。 我想知道是否有更快的方法来做到这一点。 我已经阅读了批量插入,但我保存,作为最后的手段。 目前我如何做,是我使用每个循环,并有一个if语句来检查每个单元格格式是否正确(可能是其缓慢的原因,但我需要它)。 我把它们连接在一起,立即出口。 提前致谢。