error # 2147217887

12/03/2007 - 16:22 por Tadeo Giner | Informe spam
Hola a todos

Tengo un stored procedure como origen de datos de una pantalla acces, el sp
es como sigue:

ALTER PROCEDURE [dbo].[SPVistaClientes]

AS

SELECT [Código de Cliente],

[Código del Proveedor],

[ID de Cliente],

[Código ALKO],

[CIF/DNI],

[Razón Social],

Nombre,

Dirección,

Fax,

Movil,

[Telefono 2],

[Telefono 1],

[E-Mail],

Web,

[Código Postal],

[Fecha de Alta],

[Código de Banco],

Banco,

[Código de Sucursal],

[Código de Cuenta],

[DC 1],

[DC 2],

[Dirección de la Sucursal],

[Población de la Sucursal],

[Dia de Pago 1],

[Dia de Pago 2],

[Dia de Pago 3],

Portes,

[Descuento Pronto Pago],

Observaciones,

[Cuenta Bloqueada],

Población,

Clientes.[ID de Población],

Clientes.[ID de Grupo de Compras],

Clientes.[ID de Forma de Pago],

Provincia,

[Grupo de Compras],

[Forma de Pago]

FROM dbo.Provincias RIGHT OUTER JOIN

dbo.Poblaciones RIGHT OUTER JOIN

dbo.[Grupo de Compras] RIGHT OUTER JOIN

dbo.Clientes LEFT OUTER JOIN

dbo.[Formas de Pago] ON dbo.Clientes.[ID de Forma de Pago] = dbo.[Formas de
Pago].[ID de Forma de Pago] ON

dbo.[Grupo de Compras].[ID de Grupo de Compras] = dbo.Clientes.[ID de Grupo
de Compras] ON

dbo.Poblaciones.[ID de Población] = dbo.Clientes.[ID de Población] ON
dbo.Provincias.[ID de Provincia] = dbo.Poblaciones.[ID de Provincia]

RETURN



Cuando intento hacer un find en el campo [Código de Cliente], de la forma

miconsulta.find criterios

siendo criterios= "[Id de Cliente]=" & me.[Cliente].column(2)

el campo [Cliente] es un combobox donde la columna 1 es el nombre del
cliente y la columna 2 es [id de cliente]



SIEMPRE APARECE EL MISMO ERROR

Se ha producido el Error # -2147217887 (80040e21) en tiempo de ejecucion por
Microsoft cursor engine. La operacion en varios pasos genero errores,
compruebe los valores de estado.



El codigo access que da el error es:

Private Sub Código_de_Cliente_Change()

On Error GoTo etiqueta

Dim criterios As String

Dim miconsulta As New ADODB.Recordset


DoCmd.Hourglass True

Set miconsulta = Me.RecordsetClone

criterios = "[ID de Cliente]= " & Me![Código del Proveedor].Column(2)

With miconsulta

.Find criterios

Me![Código del Proveedor].Value = Me![Código del Proveedor].OldValue

If .EOF Then

MsgBox "No se encuentra el Código del Proveedor: " & Me![Código del
Proveedor].Value

Else

Me.Bookmark = .Bookmark

End If

End With

DoCmd.Hourglass False

etiqueta:

If Err.Number <> 0 Then

MsgBox "Error # " & str(Err.Number) & " was generated by " & Err.Source & "
" & Err.Description

End If

End Sub

El error aparece en la sentencia .find criterios



Alguien sabe porque se produce el error?. El error me aparece cuando uso un
stored procedure, si uso una consulta no me da el error, pero el rendimiento
es nefasto.



Saludos
 

Leer las respuestas

#1 Tadeo Giner
12/03/2007 - 16:28 | Informe spam
Tengo un sbs 2003 de servidor, uso sqlserver express y en el cliente access
2003 con un adp

Me habia olvidado detallar esto

Gracias de nuevo

"Tadeo Giner" escribió en el mensaje
news:%2381$
Hola a todos

Tengo un stored procedure como origen de datos de una pantalla acces, el
sp es como sigue:

ALTER PROCEDURE [dbo].[SPVistaClientes]

AS

SELECT [Código de Cliente],

[Código del Proveedor],

[ID de Cliente],

[Código ALKO],

[CIF/DNI],

[Razón Social],

Nombre,

Dirección,

Fax,

Movil,

[Telefono 2],

[Telefono 1],

[E-Mail],

Web,

[Código Postal],

[Fecha de Alta],

[Código de Banco],

Banco,

[Código de Sucursal],

[Código de Cuenta],

[DC 1],

[DC 2],

[Dirección de la Sucursal],

[Población de la Sucursal],

[Dia de Pago 1],

[Dia de Pago 2],

[Dia de Pago 3],

Portes,

[Descuento Pronto Pago],

Observaciones,

[Cuenta Bloqueada],

Población,

Clientes.[ID de Población],

Clientes.[ID de Grupo de Compras],

Clientes.[ID de Forma de Pago],

Provincia,

[Grupo de Compras],

[Forma de Pago]

FROM dbo.Provincias RIGHT OUTER JOIN

dbo.Poblaciones RIGHT OUTER JOIN

dbo.[Grupo de Compras] RIGHT OUTER JOIN

dbo.Clientes LEFT OUTER JOIN

dbo.[Formas de Pago] ON dbo.Clientes.[ID de Forma de Pago] = dbo.[Formas
de Pago].[ID de Forma de Pago] ON

dbo.[Grupo de Compras].[ID de Grupo de Compras] = dbo.Clientes.[ID de
Grupo de Compras] ON

dbo.Poblaciones.[ID de Población] = dbo.Clientes.[ID de Población] ON
dbo.Provincias.[ID de Provincia] = dbo.Poblaciones.[ID de Provincia]

RETURN



Cuando intento hacer un find en el campo [Código de Cliente], de la forma

miconsulta.find criterios

siendo criterios= "[Id de Cliente]=" & me.[Cliente].column(2)

el campo [Cliente] es un combobox donde la columna 1 es el nombre del
cliente y la columna 2 es [id de cliente]



SIEMPRE APARECE EL MISMO ERROR

Se ha producido el Error # -2147217887 (80040e21) en tiempo de ejecucion
por Microsoft cursor engine. La operacion en varios pasos genero errores,
compruebe los valores de estado.



El codigo access que da el error es:

Private Sub Código_de_Cliente_Change()

On Error GoTo etiqueta

Dim criterios As String

Dim miconsulta As New ADODB.Recordset


DoCmd.Hourglass True

Set miconsulta = Me.RecordsetClone

criterios = "[ID de Cliente]= " & Me![Código del Proveedor].Column(2)

With miconsulta

.Find criterios

Me![Código del Proveedor].Value = Me![Código del Proveedor].OldValue

If .EOF Then

MsgBox "No se encuentra el Código del Proveedor: " & Me![Código del
Proveedor].Value

Else

Me.Bookmark = .Bookmark

End If

End With

DoCmd.Hourglass False

etiqueta:

If Err.Number <> 0 Then

MsgBox "Error # " & str(Err.Number) & " was generated by " & Err.Source &
" " & Err.Description

End If

End Sub

El error aparece en la sentencia .find criterios



Alguien sabe porque se produce el error?. El error me aparece cuando uso
un stored procedure, si uso una consulta no me da el error, pero el
rendimiento es nefasto.



Saludos










Preguntas similares