Você precisa preencher seu objeto recordset (essa é a variável rs que você declarou). Eu mudei o código abaixo para fazer exatamente isso. Em seguida, você pode copiar os resultados do conjunto de registros diretamente em um intervalo com RANGE.copyfromrecordset <yourrecordset>
abaixo. Eu adicionei isso também e despejo os resultados em SHeet1.Range ("A1"). Você provavelmente vai querer mudar isso. EDITADO PARA ADICIONAR: Apenas percebi que você está usando ligação tardia para o ADODB. Eu ajustei o código para que funcione.
Sub Get_Data()
Dim cn As Object
Dim rs As Object
Dim strFile As String
Dim strCon As String
Dim strSQL, strInput As String
strFile = "S:\Location.Database.accdb"
strCon = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & strFile
Set cn = CreateObject("ADODB.Connection")
cn.Open strCon
strInput = InputBox("Input Desired Name")
strSQL = "SELECT NAME, Location WHERE NAME =""'strInput'"";"
'Added the following four lines
Set rs = CreateObject("ADODB.RECORDSET")
rs.activeconnection = cn
rs.open strSQL
Sheet1.Range("A1").CopyFromRecordSet rs
'removed
'cn.Execute strSQL
rs.close
cn.Close
Set cn = Nothing
End Sub
Você pode pensar no RecordSet (rs neste caso) como uma tabela virtual que contém os resultados do SQL. Você pode interagir com o RecordSet em um registro por registro (com rs.MoveFirst, MoveNext, MoveLast) e campo por campo (iterando através da coleção rs.fields), ou você pode simplesmente despejar os resultados em um intervalo.