sql - VBA 代码在调试模式下按预期运行,但在运行时模式下不会复制更新的数据
问题描述
我需要能够将字符串列表传递到 SQL 数据连接中,以验证数据集完全存在于数据库中。最初尝试将集合作为 SQL 代码中 IN 子句中的一个参数传递,但参数不适用于 Excel SQL 连接中的 IN 子句。这导致我将集合中的每个字符串传递给 SQL 中 LIKE 子句中的参数,该子句确实返回了我需要的数据。我面临的问题是,当我在 Excel 中返回我的表以及 SQL 查询的结果(通过一个参数)时,当我将其复制粘贴到另一个表以获取整个列表时,在调试模式代码按预期运行,但在运行时模式下,代码似乎复制了第一次数据连接刷新的结果。
我尝试了许多不同的 copy_paste 方法,许多不同的值分配,我尝试添加等待命令但无济于事。即使我尝试使用不同的方法(计算数据连接中的行数 - 如果没有行或 count 函数返回错误,请告诉我这是一条丢失的记录)。即使使用这种方法,它也在调试模式下工作,但只是在运行时跳过它。
Public Sub GetTechLog()
Dim Comp As Worksheet
Dim TempDC As Worksheet
Set Comp = Sheets("Comparison")
Set TempDC = Sheets("Temp")
Dim FlyDocData As ListObject
Dim TRAXData As ListObject
Dim TempData As ListObject
Set FlyDocData = Comp.ListObjects("FlyDocs") 'Data to validate exists in TRAX
Set TRAXData = Comp.ListObjects("TRAX") 'Table to hold CopyPaste data from TRAX
Set TempData = TempDC.ListObjects("Table_TempFlyDocs") 'Data Connection to the database (TRAX)
Dim i As Integer
For i = 1 To FlyDocData.DataBodyRange.Rows.Count
TempDC.Range("A10").Value = FlyDocData.DataBodyRange(i, 1).Value 'This is the parameter passed into the SQL data connection
ActiveWorkbook.RefreshAll 'Refresh the SQL Data Connection and Table_TempFlyDocs
Application.Wait (Now + TimeValue("00:00:05")) 'My attempt at adding Wait function to ensure the right data is copy pasted
TempData.DataBodyRange.Copy 'Copy the newest refresh of the SQL data connection
Application.Wait (Now + TimeValue("00:00:05"))
Comp.Range("C" & i + 1).PasteSpecial xlPasteValuesAndNumberFormats 'Paste this information just into a cell in a different sheet
Application.Wait (Now + TimeValue("00:00:01"))
Next i
End Sub
我希望将每个数据连接刷新的值复制粘贴到单独的表或工作表中,以便根据 FlyDocData 表中的数据列表记录所有信息。
这是我的第一篇文章,如果有任何明显的信息遗漏/误解,我们深表歉意。真的希望有人可以帮助我或提出一些我还没有想到的解决方法。令人沮丧的是看到您的代码在调试器中运行,而不是在您尝试运行它时!
解决方案
推荐阅读
- c - 转换 char 数组以与 isdigit() 一起使用
- python - Python数据框按行绘制
- database-design - 规范化具有互连 m2m 关系的数据库
- javascript - 事件处理程序中的嵌套函数如何接收事件对象?
- reactjs - NextJS:ReferenceError:文档未定义
- flutter - 无法将 android 模拟器与颤振项目同步
- kubernetes - 如何自动更新集群中的 Istio 资源?
- go - 如何在 go 模板中排列数组的一部分?
- maven - 如何使用 mvn wildfly:run 命令部署两个项目
- angular2-template - NG0303:即使在导入 CommonModule 之后,也无法绑定到“ngIf”