Tag: sql server

VBA Excel ADO sp_addextendedproperty存储过程执行

我试图在Excel中创build一个用户窗体,允许用户添加新的列和描述到现有的SQL服务器表。 我在VBA中使用ADO库。 要将描述添加到创build的列,我需要运行系统存储过程sp_addextendedproperty。 我无法将parameter passing给它,我总是收到错误错误-2147217900:为过程“sp_addextendedproperty”指定了无效的参数或选项。 Private Sub InsertField_bt_Click() Set con = New ADODB.Connection con.Provider = "sqloledb" sConnectionString = "Server=rumossql12;Database=PharmNet;UID=(login here);Pwd=(password here)" con.Open sConnectionString Set cmd = New ADODB.Command cmd.CommandType = adCmdStoredProc cmd.ActiveConnection = con cmd.CommandText = "sp_addextendedproperty" Dim name As ADODB.Parameter Dim value As ADODB.Parameter Dim level0type As ADODB.Parameter Dim level0name As ADODB.Parameter Dim level1type […]

在SQL Server中设置领先撇号在Excel中正常工作

我的问题很奇怪,至less我是这样想的。 如果你写在Excel单元格,例如'4,它不显示前面的撇号。 当你想显示一些文本,而不是数字或date时,这很有用。 在我的SQL Server代码中,我为['1],['2],['3]等设置了一些列名。在这些列中,我存储了要从中创build图表的数字,以便['1],[ 2],['3]等是图表系列的名称(我希望它们在图表图例中显示为1,2,3)。 但是,当我将这些列名从SQL Server复制到Excel时,它不会以标准Excel方式(即文本-1,2,3)显示它们。 它显示了它们,即'1,2,3)。 我可以解决这个问题,如果我把所有'与'(呃..)。 但是replace一切对我来说不是一个很好的解决scheme。 我更喜欢某种方式来设置SQL Server代码,以使Excel以通常的方式识别前导撇号。 你知道吗? 也许它与字符编码有关?

从VBA运行DTS包

我试图从vba运行一个dts包,我现在的代码如下,我已经删除了服务器和密码,但我知道密码是正确的。 我试图把“//”放在服务器的前面,看它是否工作,但没有(SQL数据库是在一个单独的服务器上,我试图运行VBA代码,如果这件事) Sub ExecutePackage() Dim oPKG As DTS.Package, oStep As DTS.Step Set oPKG = New DTS.Package Dim sServer As String, sUsername As String, sPassword As String Dim sPackageName As String, sMessage As String Dim lErr As Long, sSource As String, sDesc As String ' Set Parameter Values sServer = "xxxxxxx" sUsername = "xx" sPassword = […]

如果系统date时间格式发生更改,则在SQL Server中保存错误

我正在使用C#应用程序将数据从Excel文件导入到SQL Server中。 我的工作表包含一些date时间列。 无论什么格式我的系统date时间设置为( dd/mm/yyyy或mm/dd/yyyy或任何其他格式)以及我的date时间值是什么格式在Excel表中,我将能够正确地加载它在sql服务器没有任何错误。 目前如果我的系统date时间是mm/dd/yyyy ,则会保存数据,但如果将系统格式更改为dd/mm/yyyy ,保存操作将失败。 保存function: – public int InsertSetting(DataRow drow) { int Result = 0; try { OdbcParameter[] p = new OdbcParameter[9]; p[0] = new OdbcParameter("@ID", drow["ID"].ToString().Trim()); p[1] = new OdbcParameter("@ComID", drow["CompanyID"].ToString().DbNullIfNullOrEmpty()); p[2] = new OdbcParameter("@Mod", drow["ModuleID"].ToString().DbNullIfNullOrEmpty()); p[3] = new OdbcParameter("@Stat", drow["Status"].ToString()); p[4] = new OdbcParameter("@EnterBy", drow["EnterBy"].ToString().DbNullIfNullOrEmpty()); p[5] = new OdbcParameter("@EnterDate", […]

如何从Excel VBA用户窗体显示SQL语法错误

我想问一些帮助,这里是上下文:我正在使用连接到我的SQL Server的Excel工作簿,所以用户可以使用它来使用一些macros+button进行一些查询。 他问我是否可以在Excel和SQL Server之间创build一个接口,就像使用DBMS一样,显示一个用户表单来input查询,如果出现语法错误,它会显示给你)。 这是我的问题:我已经成功创build了界面,但是我不能显示语法错误。 它只显示消息:“运行时错误”1004“SQL语法错误”。 如果你正在使用DBMS,可以显示正确的消息吗? 为了更容易理解,这是我的代码: Function Query(SQL As String) On Error GoTo Err_handler With ActiveSheet.QueryTables.Add(Connection:= _ "ODBC;DSN=mydb;Description=test;UID=test;PWD=test;APP=Microsoft Office 2003;WSID=test123" _ , Destination:=Range("A1")) .CommandText = (SQL) .Name = "test" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False […]

使用多个输出在VBA中执行SQL Server存储过程

我在SQL Server中有一个存储过程,我试图通过一些VBA代码从Excel执行。 但是,存储过程有两个输出(见下文)。 我的logging集只拉第一个表(添加0错误消息…),而我想拉第二个表。 图片在这里: http : //i.stack.imgur.com/LxyLi.png 这里是我的代码,从我在这里find的其他来源编译: Sub RefreshBarcodes() Dim Database As String Dim con As ADODB.Connection Dim strconn As String Dim SQLServer As String Dim Session As String Dim strSQLCommandOne As String Application.ScreenUpdating = False Worksheets("Master").Activate Database = Worksheets("Master").Cells(5, "H").Value SQLServer = Worksheets("Master").Cells(4, "H").Value Session = Worksheets("Master").Cells(6, "H").Value 'Connect to Database Set […]

将源Excellogging匹配到SSMSlogging

在某些情况下,我在非营利社区医院担任项目经理。 我们拥有非常有限的经验丰富的数据库资源,所以我很乐意独自一个一个的去理解,而不必等待。 请原谅我的天真。 这也是我的第一个堆栈溢出post,所以提前感谢您的耐心。 在每月的基础上,我提供了一个来自业务伙伴的Excel文件,这是一个成员列表。 每行是一个人,列是MemberID,LastName,FirstName和DateOfBirth。 在我们用SSMS查询的医疗logging数据库中,患者的主要标识符是PatientID(来自Person表)。 幸运的是(我认为),在Person表中还有LastName,FirstName和DateOfBirth字段。 是否可以使用Excel文件中的LastName,FirstName和DateOfBirth字段以某种方式与我们的病历数据库中的Person表中的PatientID“匹配”? 如果我能弄清楚 – 从源头上提供的LastName,FirstName和DateOfBirth列表的本质翻译成我们数据库中的PatientIDs列表 – 我将能够编写一个SELECT语句,为我提供所需的数据。 提前再次感谢!

将日,周和年转换为date

我已经给出了一个excel文档,其中logging了工作时间信息,这个文档包含了一些在Visual Studio中使用SSIS读取的列,然后将这些信息写入数据库。 星期和年份列包含星期数和年份,星期一至星期五的列包含有关在一周中的某一天的某个任务上花费了多less工作小时的信息。 我想要做的是采取WeekNr,年和date,并将其转换为date。 我一直试图通过使用一个脚本组件来转换date编号,星期编号和年份到一个date,但到目前为止我还没有能够从列中获取天数。 在我看来,如果在开始和结束date中使用该date的第一个和最后一个date,这将是最好的。 所以我的问题是,如果有人知道如何做到这一点,或者如果我应该尝试一种不同的方法。 脚本组件: public override void Input0_ProcessInputRow(Input0Buffer Row, CultureInfo cultureInfo, int day ) { DateTime firstDayOfYear = new DateTime(Int32.Parse(Row.Jaar), 1, 1); int firstWeek = cultureInfo.Calendar.GetWeekOfYear(firstDayOfYear, cultureInfo.DateTimeFormat.CalendarWeekRule, cultureInfo.DateTimeFormat.FirstDayOfWeek); int dayOffSet = day – (int)cultureInfo.DateTimeFormat.FirstDayOfWeek + 1; Row.TaskDates = firstDayOfYear.AddDays((Int32.Parse(Row.Week) – (firstWeek + 1)) * 7 + dayOffSet + 1); }

无法在Excel中连接分析服务

我试图连接到分析服务通过点击数据>从其他来源>从分析服务,然后错误显示。 这是告诉我,我input了错误的服务器名称。 但连接到数据库引擎是好的,我该怎么做呢? 请帮忙,这将是非常有帮助的。 PS。 我正在使用SQL Server 2012的工具。 我使用与数据库引擎相同的服务器名称。

将参数从Excel传递到SQL

ALTER PROCEDURE [dbo].[SP_Hello] @portfolio nvarchar(5), @discount numeric(18,2), @lowerlimit numeric(18,2), @midlimit numeric(18,2) AS BEGIN SET NOCOUNT ON; SELECT distinct EntityDescription, d.AmountDueInCurr * @discount as [1st part], d.AmountDueInCurr * (1 – @discount) as [2nd Part], CASE WHEN d.AmountDueInCurr <= 0 THEN 'Solution 1' WHEN d.AmountDueInCurr between 0 and @lowerlimit THEN 'Solution 2' WHEN d.AmountDueInCurr between (@lowerlimit + […]