Foros del Web » Soporte técnico » Ofimática »

[SOLUCIONADO] Datos de RecordSet no deseados

Estas en el tema de Datos de RecordSet no deseados en el foro de Ofimática en Foros del Web. Hola a todos Necesito me ayuden a resolver el "dilema". Tengo el siguiente escenario: En access 2007 tengo una consulta "SELECT campo1, campo2, campo3 FROM ...
  #1 (permalink)  
Antiguo 13/04/2016, 07:51
 
Fecha de Ingreso: abril-2010
Mensajes: 68
Antigüedad: 14 años
Puntos: 0
Datos de RecordSet no deseados

Hola a todos

Necesito me ayuden a resolver el "dilema". Tengo el siguiente escenario:

En access 2007 tengo una consulta

"SELECT campo1, campo2, campo3 FROM tabla WHERE Year(campo4) = [ANO] AND Month(campo4) = [MES]"

y en Office Outlook el código

Sub Sub1()

Dim path_Bd As String
Dim cnn As New ADODB.Connection
Dim Rs1 As New ADODB.Recordset
Dim Cmd1 As ADODB.Command
Dim Param1 As ADODB.Parameter
Dim strDB, strSQL As String
Dim i As Long

path_Bd = "C:\Camino\BBDDs.accdb"
cnn.Provider = "Microsoft.ACE.OLEDB.12.0"
cnn.Properties("Data Source") = path_Bd

cnn.Open
Set Cmd1 = New ADODB.Command
Cmd1.ActiveConnection = cnn
Cmd1.CommandType = adCmdText
Cmd1.CommandText = "SELECT * FROM Consulta"
Set Param1 = Cmd1.CreateParameter(AÑO, adInteger, adParamInput, 4)
Param1.Value = 2016
Cmd1.Parameters.Append Param1
Set Param1 = Cmd1.CreateParameter(MES, adInteger, adParamInput, 2)
Param1.Value = 4
Cmd1.Parameters.Append Param1
Set Param1 = Nothing
Set Rs1 = Cmd1.Execute()

i = 1
Do While Not Rs1.EOF
i = i + 1
Rs1.MoveNext
Loop

MsgBox i

cnn.Close
Set Cmd1 = Nothing
Set Rs1 = Nothing

End Sub


Cuando ejecuto la consulta en Access me pide los parámetros ANO y MES y me devuelve N filas, pero si ejecuto el código desde Outlook me devuelve todas las filas como si no se aplicaran los parámetros.

Gracias
  #2 (permalink)  
Antiguo 13/04/2016, 08:09
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Datos de RecordSet no deseados

Porque en la consulta de Outlook no tienes ningún "Where":

Código:
Cmd1.CommandText = "SELECT * FROM Consulta"
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 13/04/2016, 08:19
 
Fecha de Ingreso: abril-2010
Mensajes: 68
Antigüedad: 14 años
Puntos: 0
Respuesta: Datos de RecordSet no deseados

Hola Malenco, le estoy pasando parámetros con

Set Param1 = Cmd1.CreateParameter(MES, adInteger, adParamInput, 2)
Param1.Value = 4
Cmd1.Parameters.Append Param1

o no es como debe de ser ?, de hecho si quito esas líneas me da error de que faltan parámetros.
  #4 (permalink)  
Antiguo 13/04/2016, 08:38
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Datos de RecordSet no deseados

Le estas pasando parámetros pero la consulta no los usa.
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 13/04/2016, 09:36
 
Fecha de Ingreso: abril-2010
Mensajes: 68
Antigüedad: 14 años
Puntos: 0
Respuesta: Datos de RecordSet no deseados

Ya me he aclarado, en realidad ejecuto simplemente una sentencia sql, no acedo a ningún QueryDef donde pueda crear y adjuntar parámetros. Gracias una vez más, doy por terminado el tema.

Etiquetas: vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:54.