Понимая, что вы не указали MySQL, на моей работе мы используем следующий (MySQL) запрос, используя ссылку ADODB в Excel.Я публикую его, поскольку вы можете адаптировать его для своего использования:
Sub AdaptMeToYourUse()
' Connection variables
Dim conn As ADODB.Connection
Dim server_name As String
Dim database_name As String
Dim user_id As String
Dim password As String
Dim port_number As String
' Establish connection to the database
server_name = "myserverName" ' 127.0.0.1 if running from a locally
database_name = "myDBname" ' Enter your database name here
user_id = "LoginName" ' enter your user ID here
password = "PWforLoginName" ' Enter your password here
port_number = "1234"
Set conn = New ADODB.Connection
conn.Open "DRIVER={MySQL ODBC 3.51 Driver}" _
& ";SERVER=" & server_name _
& ";PORT=" & port_number _
& ";DATABASE=" & database_name _
& ";UID=" & user_id _
& ";PWD=" & password _
& ";OPTION=16427" ' Option 16427 = Convert LongLong to Int
Set rs = New ADODB.Recordset
sqlstr = "SELECT count(" & SomeField & ") FROM " _
& SomeTable & " WHERE " & SomeField & " = '" & var2Compare2SomeField & "' "
rs.Open sqlstr, conn, adOpenStatic, adLockReadOnly, adCmdText 'set appropriate options for you
Worksheets("SomeWB").Range(SomeRNG).CopyFromRecordset rs
End Sub