使用VBA调用存储过程

2024-03-24

我正在使用 Access 2010 用户前端和 Microsoft SQL Server 2008 后端工作。

Access 中的表都链接到 SQL Server 数据库。

我有一个存储过程,它将新值(由参数提供)插入到表中。

我之前问过类似的问题并得到了很好的答案在 VBA 中从访问模块传递参数时调用存储过程 https://stackoverflow.com/questions/24248870/calling-stored-procedure-while-passing-parameters-from-access-module-in-vba

我不知道如何查找创建连接字符串所需的信息(例如:我不知道提供商/服务器名称/服务器地址)。

我在这里发现了一个问题,指出“如果您已经有一个指向 SQL Server 数据库的 Access 链接表,那么您可以简单地使用它的.Connect带有 DAO.QueryDef 对象的字符串来执行存储过程”-Access 调用 SQL Server 存储过程的连接字符串 https://stackoverflow.com/questions/18664139/connection-string-for-access-to-call-sql-server-stored-procedure

我尝试实现这段代码。为了传递参数,我尝试使用前面的示例。

我收到错误

呼叫失败

在线上Set rst = qdf.OpenRecordset(dbOpenSnapshot)(更不用说我的传递参数代码可能还很遥远)。

Set qdf = CurrentDb.CreateQueryDef("")
qdf.Connect = CurrentDb.TableDefs("tblInstrumentInterfaceLog").Connect
qdf.sql = "EXEC dbo.upInsertToInstrumentInterfaceLog"
qdf.ReturnsRecords = True
Set rst = qdf.OpenRecordset(dbOpenSnapshot)

qdf.Parameters.Append qdf.CreateParameter("@BatchID", adVarChar, adParamInput, 60, BatchID)
qdf.Parameters.Append qdf.CreateParameter("@InstrumentName", adVarChar, adParamInput, 60, InstrumentName)
qdf.Parameters.Append qdf.CreateParameter("@FileName", adVarChar, adParamInput, 60, FileName)
qdf.Parameters.Append qdf.CreateParameter("@QueueId", adVarChar, adParamInput, 60, QuenueId)

rst.Close
Set rst = Nothing
Set qdf = Nothing

谁能告诉我我的代码可能有什么问题以及为什么我会收到此错误?


维多利亚,

您可以使用 ADO 运行存储过程,如下所示...

Set mobjConn = New ADODB.Connection
mobjConn.Open "your connection string"
Set mobjCmd = New ADODB.Command
With mobjCmd
    .ActiveConnection = mobjConn 
    .CommandText = "your stored procedure"
    .CommandType = adCmdStoredProc
    .CommandTimeout = 0
    .Parameters.Append .CreateParameter("your parameter name", adInteger, adParamInput, , your parameter value)
    ' repeat as many times as you have parameters

    .Execute
End With

要获取连接字符串,您可以使用该行

Debug.Print CurrentDb.TableDefs("tblInstrumentInterfaceLog").Connect

在立即窗口中,应该会显示一个可以使用的连接字符串。

您可以尝试一下吗?如果有任何问题请告诉我。

Ash

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用VBA调用存储过程 的相关文章

  • BCP 语法问题

    总之 我正在尝试编写一个可以每天从 SQL Server 2008 实例上的批处理文件运行的查询 我以前从未使用过 BCP 但在查看了一些在线示例后 我尝试创建一个真正的基本查询来测试计算机上的进程和权限 然后再将选择查询扩展到所需的数据集
  • 需要帮助在 MS Access 中实施完全外部联接

    我无法让查询在 Access 中正常工作 我需要 dbo cardpurchases 和 dbo vendors 上的完整外部联接 以便所有所有供应商都将出现在查询中 无论是否在该供应商处进行购买 但 Access 不支持完全外部联接 我还
  • 防止从 SSMS 导出的文件中受影响的行条目

    我怎样才能防止这样的条目 123456 rows affected 在文件末尾导出的文本文件中 似乎没有找到选项 谢谢 你可以使用 SET NOCOUNT ON 不设置计数 https learn microsoft com en us s
  • SQL 删除自动命名约束

    我使用脚本在表上创建了一些约束 但未指定约束名称 结果 我最终受到了像这样的限制FK DOC OBGS kntr 54E63309例如 是否可以在不指定确切的约束名称的情况下删除该约束 例如 类似这样的东西 不起作用 ALTER TABLE
  • SQL查询多行变成单行

    有什么方法可以将通常返回具有相同值的多行的 SQL 查询更改为单行吗 例如 如果我现有的查询返回以下内容 ColA ColB 1 AA 1 BB 1 CC 2 AA 3 AA 我可以将查询更改为仅返回 3 行 并将 1 的第二个和第三个结果
  • 更改索引设置访问 VBA

    我正在尝试自动化 Access 中的流程 我希望自动化的步骤之一是更改表中某些字段的索引设置 我需要这样做来提高后续查询的速度 使用索引查询速度大约快 100 倍 无论如何 假设我的表名为 Cars 如下所示 ID Name Charact
  • OVER ORDER BY 中的多个列

    有没有办法在 OVER ORDER BY 子句中指定多个列 SELECT ROW NUMBER OVER ORDER BY A Col1 AS ID FROM MyTable A 上面的方法工作正常 但尝试添加第二列不起作用 SELECT
  • MS-Access 查询中的语法错误(缺少运算符)

    以下查询给了我 missing operator 语法错误 所需的输出是表中数据的组合 dbo tbl 和意见 vw 我用过的所有钥匙都存在 有任何想法吗 SELECT dbo tbl BOD fpartno AS PartNumber d
  • 用于将 MS Word 表导出到 Excel 工作表的宏

    我有一个包含许多表格的word文档 有谁知道如何编写宏将此类表导出到不同的 Excel 工作表 答案摘自 http www mrexcel com forum showthread php t 36875 http www mrexcel
  • 如何从 Oracle 中的 select 语句调用带有 Rowtype 参数的函数

    我有一个 oracle 函数 它有一个 in 参数 它是表的行类型 我需要从 select 语句将当前行传递给这个函数 以便它进行一些处理并返回一个值 是否有一个伪变量可以在 select 语句的上下文中使用 相当于触发器中的旧的和新的 我
  • BULK INSERT 中格式附近的语法不正确?

    我试图找出为什么我使用的 BULK INSERT 命令无法识别命令中使用的 FORMAT 和 FIELDQUOTE 选项 BULK INSERT dbo tblM2016 RAW Current Import File FROM x tms
  • SQL Server、ISABOUT、加权项

    我试图弄清楚加权项在 SQL SERVER 的 ISABOUT 查询中是如何工作的 这是我目前所在的位置 每个查询返回以下行 查询 1 权重 1 初始排名 SELECT FROM CONTAINSTABLE documentParts ti
  • SQL分组和总结

    我的表如下所示 income date productid invoiceid customerid 300 2015 01 01 A 1234551 1 300 2016 01 02 A 1234552 1 300 2016 01 03
  • 如何从 SQL Server 中的存储过程检索参数列表

    使用 C 和 System Data SqlClient 有没有办法在实际执行 SQL Server 上的存储过程之前检索属于该存储过程的参数列表 我有一个 多环境 场景 其中同一数据库模式有多个版本 环境的示例可能是 开发 暂存 和 生产
  • 导致聚集索引扫描的日期参数

    我有以下查询 DECLARE StartDate DATE 2017 09 22 DECLARE EndDate DATE 2017 09 23 SELECT a col1 a col2 b col1 b col2 b col3 a col
  • MS Access VBA:通过 Outlook 发送电子邮件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何使用 MS Access VBA 通过帐户发送电子邮件 我知道这个问题很模糊 但是很难在网上找到在某种程度上还没有过时的相关信息 编辑
  • 如何粘贴到Excel B列的最后一行?

    我需要将单元格从 H2 L2 一直向下剪切并将其粘贴到 B 列的最后一行 数据每次都会不同 所以我无法对任何范围进行硬编码 VBA 代码会很好 从 H2 L2 向下剪切并粘贴 插入到 B 列的最后一行 到目前为止我得到了 Range H2
  • 如何重命名 SQL Server 中名称中带有方括号的内容?

    我的一张桌子上有一列 周围有方括号 Book Category 我想重命名为Book Category 我尝试了以下查询 sp rename BookPublisher Book Category Book Category COLUMN
  • VBA仅清除数据透视表缓存,但保留数据透视表结构

    如何使用VBA清除数据透视表缓存 但不破坏数据透视表结构 我的数据透视表已连接到外部数据源 SQL 源决定哪个用户应该查看数据的哪一部分 当表刷新时 源会填充该表 我想保存 Excel 文件并使用干净的数据透视表 内部没有数据 分发它 结果
  • Sql Server 字符串到日期的转换

    我想像这样转换一个字符串 10 15 2008 10 06 32 PM 转换为 Sql Server 中的等效 DATETIME 值 在 Oracle 中 我会这样说 TO DATE 10 15 2008 10 06 32 PM MM DD

随机推荐

  • CMake 和 pybind11 使用不一致的 Python 版本

    我正在 Ubuntu 20 04 上的 VSCode 1 46 1 中使用 CMake 3 16 3 和 pybind11 2 4 3 创建一个入门项目 默认情况下同时包含 Python 2 7 和 3 8 我想为Python3构建一个模块
  • 如何更改 Flutter 中的 Slider 标签颜色?

    Flutter 中可以更改 Slider 标签颜色吗 的构造函数中没有这个字段Slider class 根据 Flutter api 使用 valueIndicatorColor 这是 SliderThemeData 的属性 正如这里提到的
  • 当用户通过后退按钮到达时重新加载页面

    我有一个通用错误页面 任何已处理的错误都会重定向到该页面 我有一个管理页面 当用户调用错误时 用户会被带到错误页面 点击错误页面的后退按钮会导致管理页面加载不正确 所以我需要的是一种当我从错误页面返回时重新加载管理页面的方法 我尝试在管理页
  • 验证 htaccess 重写规则中的 utf-8

    我使用重写规则验证包含 utf 8 字符的 url RewriteRule a z 2 a z0 9 1 256 print 1 256 index php 语言 1 categories 2 get query 3 大 get query
  • VLOOKUP 和插值

    我正在尝试检查表中的特定数据 如果找到该数据 它将显示该数据 我用 VLOOKUP 做到了这一点 但现在如果数据不在表中 我想在两组数据之间进行插值 但我不知道该怎么做 所以我想要实现的是检查表中是否有数字 如果不是则需要进行插值 Exap
  • Android:中心启动屏幕图像

    我有一个带有启动屏幕的应用程序 启动屏幕在小型设备上看起来不错 但在大型平板电脑 模拟器 上看起来很糟糕 所以我把背景改成了wrap content 但它看起来与屏幕的一侧对齐 有人可以告诉我一种将背景图像居中的方法吗 这是我的splash
  • SublimeLinter ESLint 找不到插件

    在 Sublime Text Editor 3 x 中编辑 javascript 文件时 出现错误 Oops Something went wrong ESLint 6 0 1 ESLint couldn t find the plugin
  • 访问验证管道中的请求对象

    我正在尝试访问Request object从一个内Validation Pipe in nestjs 为了验证某些字段的唯一性 我需要ID UUID提供的参数PUT PATCH请求 数据结构本身不可用 任何想法 目前 根本不可能在 a 中访
  • Qt——将事件传递给多个对象?

    我基本上有3层 Window gt Scene gt View 每个人都需要处理一个mouseMove事件不妨碍其他人 不过 似乎只有最小的孩子才能参加该活动 我希望我可以处理该事件然后致电event gt ignore 将事件传递回堆栈
  • 如何处理 Google Cloud Functions 中的机密?

    这里的常见做法是什么 好像没有提供工具gcloud 我现在正在从本地计算机部署功能 因此我可以对秘密进行硬编码 但这似乎不合适 另外 CI CD 怎么样 在这种情况下 我需要将秘密作为环境变量传递 这甚至可能吗 您可以使用秘密经理 http
  • 代码格式化:如何将多行代码与特殊字符对齐?

    IDEA 或其插件之一能够将代码与特殊字符对齐吗 我的意思是这样代码 Map name gt Peter age gt 27 company gt Foobar 变换为 Map name gt Peter age gt 27 company
  • 是否有任何回调或任何东西(事件或nodeInfo中的任何参数)来知道辅助功能服务(TalkBack)已完成阅读?

    我有一个应用程序要求在列表视图中宣布文本 列表视图项在运行时添加 我必须一一宣布 我在谷歌和android文档中搜索 但我无法到达那里 请帮助我 如何知道无障碍服务读完文本 谢谢 简单的答案 不要这样做 这是愚蠢的 只需使用您可用的辅助功能
  • 如果是十进制值,则转换为两位小数并且将点分隔值转换为逗号分隔

    我目前的值如下所示 30 32 5 如果存在任何小数 如第二个示例 如何将它们转换为具有两位小数 并且将点分隔符替换为逗号 转换后 上面的数字将如下所示 30 32 50 Try var num 32 5 num num toFixed 2
  • 从另一个路由调用 hapi 路由

    我对 HapiJS 还很陌生 我正在构建一个服务 其中有两条路线 route 1 和 route 2 都使用插件架构 我已将两者注册为我的清单文件中的插件 我想从 route2 调用 route1 因此 route2 取决于 route1
  • 嵌套事务-回滚场景

    A con begin B con rollback con commit B con begin con commit 在上面的代码中 我在 A 处开始一个新的数据库事务 它成功执行了一些事务 之后B 开始执行 并且它也成功执行了一些事务
  • 在头文件中使用声明

    我一直在寻找有关使用的一些说明使用声明在头文件中 我正在四处搜索 但无法完全得到我正在寻找的答案 到目前为止我的研究得出的结论是 将它们用于非全局的范围是好的 而命名空间指令则不好 我明白 至少我希望如此 所以在我的例子中我使用shared
  • 如何获取到 CGPath 的距离以进行命中测试?

    我有一个打开的 CGPath UIBezierPath 我想检测用户是否触摸它 即某个点是否在距路径一定距离内 路径是开放的 即直线 曲线 而不是形状 它可以包含直线和曲线元素 如何获得到路径的距离来进行命中测试 CGPath UIBezi
  • 如何等待matplotlib动画结束?

    考虑直接取自 Matplotlib 文档的以下代码 import numpy as np import matplotlib pyplot as plt import matplotlib animation as animation im
  • CORS 中的 POST/GET 与 PUT/DELETE

    我刚刚读过this https www w3 org Security wiki Same Origin Policy 同源策略允许使用 GET 和 POST 的跨源 HTTP 请求 方法 但拒绝源间 PUT 和 DELETE 请求 PUT
  • 使用VBA调用存储过程

    我正在使用 Access 2010 用户前端和 Microsoft SQL Server 2008 后端工作 Access 中的表都链接到 SQL Server 数据库 我有一个存储过程 它将新值 由参数提供 插入到表中 我之前问过类似的问