如何从SQL中查找与excel表中的值匹配的数据?

时间:2018-04-06 08:19:02

标签: sql-server excel vba excel-vba

所以,我有一个包含原始数据的Excel工作表。

*我的目标是从SQL Server获取数据,然后将其复制到工作表。

*为了做到这一点,我必须检查工作表中的名称是否存在于数据库中。

这是我简单的Psuedocode:

'Loop thru each row of data in worksheet
   'If Name is found in database,
      'Copy the data from database to Excel worksheet
End Loop

我刚开始探索如何将MS SQL Server与VBA连接。 我也一直在这里研究这个,但是我无法理解线程。

我为这个过程创建了一个乐队援助解决方案。我创建了另一个工作表作为临时数据库,而不是从数据库中检索数据。我想在SQL Server中这样做,因为每天,数据的数量都会变大。

如果你能帮助我,我真的很感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

浏览此链接以了解有关连接的更多信息

[https://stackoverflow.com/questions/1120674/accessing-sql-database-in-excel-vba][1]

从链接

复制
Sub GetDataFromADO()
'Declare variables'
    Set objMyConn = New ADODB.Connection
    Set objMyRecordset = New ADODB.Recordset
    Dim strSQL As String

'Open Connection'
    objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;User ID=abc;Password=abc;"
    objMyConn.Open

'Set and Excecute SQL Command'
    strSQL = "select * from myTable"

'Open Recordset'
    Set objMyRecordset.ActiveConnection = objMyConn
    objMyRecordset.Open strSQL            

'Copy Data to Excel'
    ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)

End Sub

然后循环遍历您的Excel工作表并检查记录集中是否存在数据......