Excel - Problemas con el RecordSet.Open

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Problemas con el RecordSet.Open

Publicado por Juan J. (2 intervenciones) el 21/03/2019 12:52:14
Hola a todos, recurro a vosotros porque no se qué hacer. Quiero acceder desde Excel a una base de datos que está en un servidor MSSQL.
He creado al conexión y se conecta sin problemas, todos los problemas vienen cuando quiero activar el RecordSet desde Excel, al intentarlo me salta un error que podéis ver en la imagen que también adjunto.

He probado varias opciones y en todas ellas me lanza un error similar. Tenéis idea de que estoy haciendo mal?.

Os añado el código que utilizo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Private Sub conectar_Click()
' Declaración de variables
Dim Servidor, Usuario, Contrasena, BaseDatos, AccessConnect, consultaSQL As String
Dim Conn1 As New ADODB.Connection
Dim Cmd1 As New ADODB.Command
Dim Rs1 As New ADODB.RecordSet
 
'Asignaciones
 
Set Conn1 = New ADODB.Connection
Set Rs1 = New ADODB.RecordSet
    Servidor = Worksheets("DATOS GENERALES").Range("C3").Value
    Usuario = Worksheets("DATOS GENERALES").Range("C6").Value
    Contrasena = Worksheets("DATOS GENERALES").Range("C7").Value
    BaseDatos = Worksheets("DATOS GENERALES").Range("C4").Value
    AccessConnect = "Provider=SQLOLEDB.1;" & _
                    "Password=" & Contrasena & ";" & _
                    "Persist Security Info=True;" & _
                    "User ID=" & Usuario & ";" & _
                    "Initial Catalog=" & BaseDatos & ";" & _
                    "Data Source=" & Servidor
 
    Conn1.ConnectionString = AccessConnect
    Conn1.Open
 
' Verifico que la conexión se establece
 
    If Conn1.State = 1 Then
        Worksheets("DATOS GENERALES").Range("C13").Value = "Conectado"
        consultaSQL = "SELECT * FROM Objectes" & _
                    "WHERE idCentre = 3"
        Rs1.ActiveConnection = Conn1
 
' Aquí salta el error
 
        Rs1.Open consultaSQL
 
        Rs1.MoveFirst
        Worksheets("DATOS").Range("A2").CopyFromRecordset Rs1
        Rs1.Close
        Conn1.Close
    Else
        Worksheets("DATOS GENERALES").Range("C13").Value = "Sin conexión"
        Worksheets("DATOS GENERALES").Range("C14").Value = conexion.State
    End If
End Sub

Gracias
error_excel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Problemas con el RecordSet.Open

Publicado por Abraham Valencia (125 intervenciones) el 21/03/2019 14:53:26
Como para comenzar, cambia esto:

"WHERE idCentre = 3"

Por esto

" WHERE idCentre = 3"

¿Notas la diferencia?

Abraham Valencia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Problemas con el RecordSet.Open

Publicado por Juan J. (2 intervenciones) el 21/03/2019 17:34:33
Muchas gracias Abraham!!!

Nunca me hubiera podido imaginar que un espacio después de las comillas dobles fuera tan determinante.

Ya funciona.

Repito, muchas gracias Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar