Access - que realiza esta instruccion

   
Vista:

que realiza esta instruccion

Publicado por Esteban (20 intervenciones) el 31/10/2007 18:26:39
Buen dia compañeros
tengo esta instruccion pero no se lo que hace si alguien me pudiera ayudar he aqui la instruccion gracias

rst.Open "SELECT * From MOV_KAR_DETALLE_KARDEX where PRODUCTO=" & Codigo, cnn, adOpenDynamic, adLockOptimistic
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

RE:que realiza esta instruccion

Publicado por Enrique (1299 intervenciones) el 31/10/2007 18:52:22
Hola Esteban:

Ya sabes que esto es solo una parte, faltan más cosas antes y después, pero contestando concretamente a tu pregunta esto sirve para abrir el Recordset de ADO de nombre rst con TODOS los campos de la tabla o consulta MOV_KAR_DETALLE_KARDEX pero restringido al registro de la tabla/consulta cuyo campo PRODUCTO (debe ser numérico) sea igual al campo CODIGO (tambien numérico) que tienes activo en ese momento en un formulario y además con apertura Dinámica para luego poder hacer cambios en ese registro concreto de la Tabla y grabarlos con rst.Update.

Básicamente es conectar con una Tabla local o de otra base externa, o bien para extraer datos, o para modificarlos o ambas cosas con una condición establecida en la clausula WHERE. La ubicación de la Tabla (local o de base externa) se establece en la conexión cnn.

Un saludo
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:que realiza esta instruccion

Publicado por Esteban (20 intervenciones) el 02/11/2007 15:05:08
A gracias bueno entonces te explico esto es de una kardex o inventario, y tengo el problema de que tira los saldos mal, porque al extraer los datos no los ordena por un determinado campo el cual es llamado linea, entonces lo que quisiera saber es si al extraer los datos puedo ordenarlos por un campo

'Recálculo al introducir Entradas y Salidas
Private Sub Recalculo()
Dim CalculoExist As Double
Set rst = New ADODB.Recordset
Set cnn = Application.CurrentProject.Connection
rst.Open "SELECT * From MOV_KAR_DETALLE_KARDEX where PRODUCTO=" & Codigo, cnn, adOpenDynamic, adLockOptimistic
CalculoExist = 0

'Actualiza las Existencias parciales en la tabla Movimientos
While Not rst.EOF
rst!SALDO = CalculoExist + (rst!ENTRADA - rst!SALIDA)
rst.Update
CalculoExist = rst!SALDO
rst.MoveNext
Wend

'Actualiza las Existencias Finales de un producto en la tabla Productos
Set rst1 = New ADODB.Recordset
rst1.Open "SELECT * From TC_PRO_PRODUCTO where PRODUCTO=" & Codigo, cnn, adOpenDynamic, adLockOptimistic
rst1!ExistenciaActual = CalculoExist
rst1.Update

'Cierra la Conexión y los Recordset
rst.Close: Set rst = Nothing
rst1.Close: Set rst1 = Nothing
cnn.Close: Set cnn = Nothing
End Sub

Este es el codigo que se encuentra en el subformulario

No se si me explique bien pero gracias de Antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:que realiza esta instruccion

Publicado por Enrique (1299 intervenciones) el 02/11/2007 17:30:52
Hola Esteban:
No entiendo cual el tu problema, este código lo has sacado de un ejemplo que yo mismo puse en el Foro hace tiempo como ejemplo, de nombre "Movimientos de Almacén" y ahí verás que los saldos se ordenan perfectamente según su órden de entrada y las Líneas se van numerando consecutivamente.

¿ Donde tienes exactamente ese problema de ordenación ?, supongo que será en las líneas del Subformulario, pero ¿ cuando te pasa, al introducir nuevos registros o al renumerar después de eliminar una línea de registro?

Prueba con este cambio en la apertura del Recordset, pero dudo que esta sea la solución:

rst.Open "SELECT * From MOV_KAR_DETALLE_KARDEX where PRODUCTO = Codigo ORDER BY Linea", cnn, adOpenDynamic, adLockOptimistic

Si te fijas bien en mi ejemplo "Movimientos de Almacen", verás que la ordenación realmente se hace por un Campo de nombre " Id " en la Tabla "Movimientos" y NO por el número de Línea de los Registros, ya que este nº de línea se vá incrementando desde el 1 en adelante, pero para cada Codigo de Producto vuelve a empezar por el 1 (es simplemente un "adorno" por decirlo de alguna forma).

Si sigues teniendo problemas, puedes enviarme la mdb con solo el formulario, el subformulario y las tablas implicadas e intentaré ver qué está pasando.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:que realiza esta instruccion

Publicado por Esteban (20 intervenciones) el 05/11/2007 18:06:59
fijate que no me funciono, entonces te envio mi mdb en zip, para que cuanto puedas o tengas tiempo la revises, muchas gracias

saludos desde guatemala
Esteban
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar