MsQuery a SQL Server desde listas en Excel

5 envíos / 0 nuevos
Último envío
jlopezco
Imagen de jlopezco
Offline
última acción: Hace 9 años 5 meses
alta: 21/10/2014 - 22:31
Puntos: 45
MsQuery a SQL Server desde listas en Excel

Hola, estoy importando datos con MSQUERY desde SQL Server a Excel, pero solo me consulta el dato desde una celda de Excel y lo que necesito es que me consulte un rango de celdas.

Por favor me colaboran con esto. Gracias

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 10 horas 44 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Hola jlopezcoMsQuery siempre

Hola jlopezco

MsQuery siempre devuelve como resultado un rango. ¿puedes explicar un poco más el problema?

Adjunta alguna captura de pantalla o archivo de ejemplo de lo que te gustaría conseguir y de lo que obtienes ahora.

 

------
Ya sé Excel, pero necesito más.

jlopezco
Imagen de jlopezco
Offline
última acción: Hace 9 años 5 meses
alta: 21/10/2014 - 22:31
Puntos: 45
Hola paco, pues tengo un

Hola paco, pues tengo un listado de 50 numeros de factura en Excel y debo traer para cada factura su correspondiente dato desde SQL server.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 10 horas 44 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Es decir, que lo que

Es decir, que lo que necesitarías es como una función para poner en una celda y que devolviese un valor. Como un BuscarV pero que consultara directamente a la base de datos.

Pues Excel no tiene esta función incorporada.

así que tendrías que programarla mediante VBA

aquí tienes un ejemplo http://stackoverflow.com/questions/836065/how-to-write-an-excel-function-which-returns-a-value-from-an-sql-database

tendrías que particularizar los datos de la conexión, que puede poner en el código o podrías modificarlo para facilitarlo como argumentos a la función.

Public Function GetItem(field As String, id As Integer) As String
        Set oConnection = New ADODB.Connection
        Dim oRecordset As ADOR.Recordset
        oConnection.Open "provider=sqloledb;data source=tuservidor;" & _
            "Trusted_Connection=yes;initial catalog=tubasededatos;"
        Set oRecordset = oConnection.Execute( & _
            "select " & field & " from table where id = " & id)
        If oRecordset.EOF Then
            GetItem = "#N/A"
        Else
            GetItem = oRecordset(field)
        End If
    End Function

 

------
Ya sé Excel, pero necesito más.

jlopezco
Imagen de jlopezco
Offline
última acción: Hace 9 años 5 meses
alta: 21/10/2014 - 22:31
Puntos: 45
Muchas gracias paco. Usaré

Muchas gracias paco. Usaré VBA.