我需要能够将字符串列表传递到SQL数据连接中,以验证数据集是否完全存在于数据库中。最初尝试在SQL代码的IN子句中将集合作为一个参数传递,但是参数不适用于Excel SQL连接中的IN子句。这导致我将集合中的每个字符串传递到SQL的LIKE子句中的参数中,该子句确实返回了我需要的数据。我面临的问题是,当我在Excel中返回带有SQL查询结果的表(传递了一个参数)时,当我去copy_paste到另一个表中以在调试时获取整个列表时模式下,代码按预期运行,但是在运行时模式下,代码似乎从最初的数据连接刷新中复制并粘贴了结果。
我尝试了多种不同的copy_paste方法,多种不同的值分配,并且尝试添加Wait命令但无济于事。即使我尝试使用其他方法(计算数据连接中的行数-没有行或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表中的数据列表记录所有信息。
这是我的第一篇帖子,如果对信息/误解有任何明显的遗漏,深表歉意。真的希望有人可以帮助我或提出一些我尚未想到的解决方法。令人沮丧的是,您的代码无法在调试器中运行,而在尝试运行时却无法运行!