Discussion:
Almacenar en Recordset valores de diferentes tablas
(demasiado antiguo para responder)
Toni
2012-12-14 08:53:48 UTC
Permalink
Buenas de nuevo!

Tengo la siguiente estructura:

PEDIDOS: IdPedido, IdCliente, ...
CLIENTES: IdCliente, ...

Des de un formulario continuo con datos de algunos PEDIDOS, pretendo recoger los datos de todos los registros de PEDIDOS mostrados en el formulario, i del registro de CLIENTES correspondiente a cada PEDIDO, i crear una consulta para poder luego trabajar con ella desde Word.

Se que puedo hacerlo con una consulta normal, pero mi reto està en hacerlo con Recordset, es posible?

Gracias
José Mª Fueyo
2012-12-14 09:06:26 UTC
Permalink
Hola
No se cual es tu problema. No hay problema de crear recordsets de forma dinámica.

Salu2
--
José Mª Fueyo
[MS MVP Access]
Toni
2012-12-14 09:30:24 UTC
Permalink
Sí, el caso és que no se encontrar en la web cómo hacerlo... :(

Puedes ponerme en la buena dirección?
Post by José Mª Fueyo
Hola
No se cual es tu problema. No hay problema de crear recordsets de forma dinámica.
Salu2
--
José Mª Fueyo
[MS MVP Access]
José Mª Fueyo
2012-12-14 11:09:31 UTC
Permalink
Hola
Crea una variable de tipo string, y asígnale el valor de una consulta SQL. Úsala como parámetro del método OpenRecordset del objeto database, para obtener un conjunto de registros.
Aquí encontrarás una referencia del lenguaje SQL para jet, aunque está indicado para Access 2000 es válido para versiones posteriores:

http://msdn.microsoft.com/en-us/library/office/aa140011(v=office.10).aspx


Salu2
--
José Mª Fueyo
[MS MVP Access]
Toni
2013-01-04 09:13:21 UTC
Permalink
Gracias, José Mª

Finalmente, he optado por crear una tabla con SQL:


Dim strSQL As String
strSQL = "CREATE TABLE Acceptats (DataRegistre DATE, NumRegistre INTEGER," & _
" Percent INTEGER, Lloguer CURRENCY, NumMes BYTE, Total CURRENCY, NomPers TEXT(50))"

DoCmd.RunSQL (strSQL)

'Inserta registres

Set rst = Me.Recordset
rst.MoveFirst

Do Until rst.EOF = True

If rst!SiNoFavorable = "Sí" Then

strSQL = "INSERT INTO Acceptats (DataRegistre, NumRegistre, NumMes, Total, Lloguer, Percent,NomPers) VALUES ("

strSQL = strSQL & "#" & Format(rst!DataRegistre, "dd/mm/yyyy") & "#, "
strSQL = strSQL & rst!NumRegistre & ", "
strSQL = strSQL & rst!NumMesSubvencio & ", "
strSQL = strSQL & Str(rst!ImportTotalSubvencio) & ", "
strSQL = strSQL & Str(rst!ImportLloguer) & ", "
strSQL = strSQL & rst!PercentSubvencio & ","
strSQL = strSQL & Chr(34) & rst!Nom & Chr(34) & ")"

DoCmd.SetWarnings False
DoCmd.RunSQL (strSQL)
DoCmd.SetWarnings True

End If

rst.MoveNext
Loop



Todos los campos se insertan bien, menos el correspondiente a PERCENT. En el formulario el campo PERCENTSUBVENCIO lee los valores de una tabla PETICIONS, cuyo campo PERCENT tiene formato = NÚMERO>SIMPLE.

He probado a cambiar el formato del campo en la tabla, a cambiar el formato del campo en el SQL CREATE TABLE, y también diferentes combinaciones en el SQL INSERT (con comillas, con Str()...) però nada me ha funcionado.

Donde està el error?
Post by José Mª Fueyo
Hola
Crea una variable de tipo string, y asígnale el valor de una consulta SQL. Úsala como parámetro del método OpenRecordset del objeto database, para obtener un conjunto de registros.
http://msdn.microsoft.com/en-us/library/office/aa140011(v=office.10).aspx
Salu2
--
José Mª Fueyo
[MS MVP Access]
José Mª Fueyo
2013-01-04 12:03:57 UTC
Permalink
Hola
¿Que error te da?

Salu2
--
José Mª Fueyo
[MS MVP Access]
Toni
2013-01-07 08:49:38 UTC
Permalink
Error 3134 de sintaxis en INSERT INTO
Post by José Mª Fueyo
Hola
¿Que error te da?
Salu2
--
José Mª Fueyo
[MS MVP Access]
José Mª Fueyo
2013-01-08 10:56:54 UTC
Permalink
Hola
Sí pegas el contenido de la variable que contiene la sentencia SQL en un editor de consultas (modo SQL), podrás ver donde está el error.
El problema es que tienes algún error en la sintaxis. Revísalo.

Salu2
--
José Mª Fueyo
[MS MVP Access]
Toni
2013-01-09 09:22:40 UTC
Permalink
El error era simple: la palabra PERCENT és una palabra restringida.

gracias por la pista del editor de consulta.
Post by José Mª Fueyo
Hola
Sí pegas el contenido de la variable que contiene la sentencia SQL en un editor de consultas (modo SQL), podrás ver donde está el error.
El problema es que tienes algún error en la sintaxis. Revísalo.
Salu2
--
José Mª Fueyo
[MS MVP Access]
Continúe leyendo en narkive:
Loading...