Codigo. Muy importante. En el foro de access no saben bien por que falla

14/12/2005 - 16:40 por Nacho | Informe spam
Alguien sabe por que puede estar dandome un error este codigo? El error que
me da al ejecutar es: Se ha producido un el error '-2147217900 (80040e14)'
en tiempo de ejecucion: Line 1: Incorrect syntax near 'de'
El codigo es:
Private Sub ComboPlantilla_AfterUpdate()
Dim iOrden As Integer
Dim iPVD As Integer
Dim IdProd As String
Dim Desc As String
Dim rsPlantilla As ADODB.Recordset

Set rsPlantilla = New ADODB.Recordset

rsPlantilla.Open "SELECT [DETALLES DE PLANTILLAS].[ID DE PRODUCTO] FROM
[DETALLES DE PLANTILLAS] WHERE [DETALLES DE PLANTILLAS].[ID DE DETALLES DE
PLANTILLAS] = " & ComboPlantilla.Value, CurrentProject.Connection,
adOpenStatic, adLockReadOnly

If Not rsPlantilla.EOF Then
Dim rsAux As ADODB.Recordset
Set rsAux = New ADODB.Recordset
rsAux.Open "SELECT Max([DETALLES DE LOS PRESUPUESTOS].[ORDEN]) AS
MAXORDEN FROM [DETALLES DE LOS PRESUPUESTOS] WHERE [ID DE PRESUPUESTO DE LOS
DETALLES]=" & Forms!Presupuestos.[ID DE PRESUPUESTO],
CurrentProject.Connection, adOpenStatic, adLockReadOnly
iOrden = Nz(rsAux![MAXORDEN], 0)
Set rsAux = Nothing
End If

Do Until rsPlantilla.EOF
IdProd = rsPlantilla![ID DE PRODUCTO]
Dim rsPresuUpdt As ADODB.Recordset
Set rsPresuUpdt = New ADODB.Recordset
rsPresuUpdt.Open "SELECT [ID DE PRODUCTO], [DESCRIPCION], [PVD],
[MARGEN], [Descuento] FROM [PRODUCTOS] WHERE [PRODUCTOS].[ID DE PRODUCTO] '" & IdProd & "'", CurrentProject.Connection, adOpenStatic, adLockReadOnly

If rsPresuUpdt.EOF Then
Desc = ""
iPVD = 0
Else
iOrden = iOrden + 1
Forms!Presupuestos![Subformulario presupuestos].SetFocus
Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.Requery

If (Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.RecordCount > 0) Then
Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.MoveLast
End If

Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.AddNew
Forms!Presupuestos![Subformulario presupuestos].Form![ID DE
PRODUCTO] = IdProd
Forms!Presupuestos![Subformulario presupuestos].Form![ORDEN] iOrden
Forms!Presupuestos![Subformulario
presupuestos].Form![DESCRIPCION] = rsPresuUpdt![DESCRIPCION]
Forms!Presupuestos![Subformulario presupuestos].Form![PRECIO] Round(rsPresuUpdt![PVD] * (1 + rsPresuUpdt![MARGEN]), 2)
Forms!Presupuestos![Subformulario presupuestos].Form![DESCUENTO]
= rsPresuUpdt![DESCUENTO]
End If
Set rsPresuUpdt = Nothing
rsPlantilla.MoveNext
Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.Requery
Loop
End Sub

La linea que se pone en amarillo es: Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.Requery

Muchas gracias

Nacho
 

Leer las respuestas

#1 Maxi
14/12/2005 - 17:01 | Informe spam
Nacho, este no es un foro de programacion.


Salu2
Maxi [MVP SQL SERVER]


"Nacho" escribió en el mensaje
news:OcAX$
Alguien sabe por que puede estar dandome un error este codigo? El error
que
me da al ejecutar es: Se ha producido un el error '-2147217900 (80040e14)'
en tiempo de ejecucion: Line 1: Incorrect syntax near 'de'
El codigo es:
Private Sub ComboPlantilla_AfterUpdate()
Dim iOrden As Integer
Dim iPVD As Integer
Dim IdProd As String
Dim Desc As String
Dim rsPlantilla As ADODB.Recordset

Set rsPlantilla = New ADODB.Recordset

rsPlantilla.Open "SELECT [DETALLES DE PLANTILLAS].[ID DE PRODUCTO] FROM
[DETALLES DE PLANTILLAS] WHERE [DETALLES DE PLANTILLAS].[ID DE DETALLES DE
PLANTILLAS] = " & ComboPlantilla.Value, CurrentProject.Connection,
adOpenStatic, adLockReadOnly

If Not rsPlantilla.EOF Then
Dim rsAux As ADODB.Recordset
Set rsAux = New ADODB.Recordset
rsAux.Open "SELECT Max([DETALLES DE LOS PRESUPUESTOS].[ORDEN]) AS
MAXORDEN FROM [DETALLES DE LOS PRESUPUESTOS] WHERE [ID DE PRESUPUESTO DE
LOS
DETALLES]=" & Forms!Presupuestos.[ID DE PRESUPUESTO],
CurrentProject.Connection, adOpenStatic, adLockReadOnly
iOrden = Nz(rsAux![MAXORDEN], 0)
Set rsAux = Nothing
End If

Do Until rsPlantilla.EOF
IdProd = rsPlantilla![ID DE PRODUCTO]
Dim rsPresuUpdt As ADODB.Recordset
Set rsPresuUpdt = New ADODB.Recordset
rsPresuUpdt.Open "SELECT [ID DE PRODUCTO], [DESCRIPCION], [PVD],
[MARGEN], [Descuento] FROM [PRODUCTOS] WHERE [PRODUCTOS].[ID DE PRODUCTO]
> '" & IdProd & "'", CurrentProject.Connection, adOpenStatic, adLockReadOnly

If rsPresuUpdt.EOF Then
Desc = ""
iPVD = 0
Else
iOrden = iOrden + 1
Forms!Presupuestos![Subformulario presupuestos].SetFocus
Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.Requery

If (Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.RecordCount > 0) Then
Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.MoveLast
End If

Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.AddNew
Forms!Presupuestos![Subformulario presupuestos].Form![ID DE
PRODUCTO] = IdProd
Forms!Presupuestos![Subformulario presupuestos].Form![ORDEN] > iOrden
Forms!Presupuestos![Subformulario
presupuestos].Form![DESCRIPCION] = rsPresuUpdt![DESCRIPCION]
Forms!Presupuestos![Subformulario presupuestos].Form![PRECIO] > Round(rsPresuUpdt![PVD] * (1 + rsPresuUpdt![MARGEN]), 2)
Forms!Presupuestos![Subformulario
presupuestos].Form![DESCUENTO]
= rsPresuUpdt![DESCUENTO]
End If
Set rsPresuUpdt = Nothing
rsPlantilla.MoveNext
Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.Requery
Loop
End Sub

La linea que se pone en amarillo es: Forms!Presupuestos![Subformulario
presupuestos].Form.Recordset.Requery

Muchas gracias

Nacho

Preguntas similares