Visual Basic para Aplicaciones - Error en el metodo open del objeto recordset

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Error en el metodo open del objeto recordset

Publicado por Juan (2 intervenciones) el 08/07/2016 11:34:52
Buenas a todos:

Me estoy volviendo loco con este código, la consulta esta correcta, pero el recordset no quiere abrirse,
¿Alguién ve el fallo?

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
Private Sub CommandButton1_Click()
  'dimensiones
Dim datConnection As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB, strSQL As String
Dim lngTablas As Long
Dim i As Long
 
'ruta al archivo Access
'strDB = "C:\Fabricacion.mdb"
 
 
'crear la conexión
Set datConnection = New ADODB.Connection
Set recSet = New ADODB.Recordset
datConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" & strDB & ";"
 
'consulta SQL
strSQL = "SELECT e.art, e.compo, e.fase, e.ruta, v.vpa, v.vpp, e.Est_Frecuencia, e.UD, Ma.ID, M.descrip FROM e FULL OUTER JOIN v ON e.compo= v.art AND e.fase = v.fase AND e.ruta = v.ruta FULL OUTER JOIN Ma ON v.TipoMod = Ma.TipMod AND v.ruta= Ma.ruta AND v.fase= Ma.fase FULL OUTER JOIN M ON Ma.ID = M.ID WHERE e.art like '_1CO135180' and e.natur= 'OP'" _
& "Union" _
& "SELECT e.art, e.compo, e.fase, e.ruta, v.vpa, v.vpp, e.FR, e.UD, Ma.ID, M.descrip FROM e FULL OUTER JOIN v ON e.compo= v.art AND e.fase = v.fase AND e.ruta = v.ruta FULL OUTER JOIN Ma ON v.TipoMod = Ma.TipMod AND v.ruta= Ma.ruta AND v.fase= Ma.fase FULL OUTER JOIN M ON Ma.ID = M.ID WHERE e.art like '_1CO' and e.natur= 'OP'
recSet.Open strSQL, datConnection

'copiar datos
Range("d24").CopyFromRecordset recSet


  recSet.Close
  Set recSet = Nothing

End Sub

Saludos
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 Andres Leonardo
Val: 28
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error en el metodo open del objeto recordset

Publicado por Andres Leonardo (26 intervenciones) el 08/07/2016 16:30:21
Coloca un On Error
y que te muestre la descripcion del error
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

Error en el metodo open del objeto recordset

Publicado por Juan (2 intervenciones) el 11/07/2016 08:36:58
Gracias por tu pronta respuesta y disculpa la demora.
Finalmente es un conflicto de tipos, por alguna razón cuando crearon las tablas lo hicieron con diferentes tipos en diferentes tablas( integer y string para fase y ruta).
Estuve probando CLng, Cint y SUBSTRING para evitarlo y transformar el string en integer, pero sin resultado.
Como no puedo demorarme más, tengo que optar por algo menos óptimo y dividir la consulta.
Muchas gracias por todo.
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