Access - ejecutar macro

 
Vista:

ejecutar macro

Publicado por Esteban (20 intervenciones) el 07/03/2007 18:05:25
Tengo una dudad porque no se ejecuta este macro yo lo baje de estos foros
para calcular el saldo se me olvido que tenia que calcular el saldo por diferentes productos digamos que tengo todos los productos metidos en un solo formulario y de alli tiene que calcularle el saldo solo algunos productos el modulo que diga es este
Option Compare Database

'Marcar la Referencia: Microsoft DAO 3.6 Object Library
Public Function Calculo()
Dim Tabla As DAO.Recordset, SaldoParcial1, SaldoParcial2, SaldoParcial3, SaldoParcial4, SaldoParcial5, SaldoParcial6, SaldoParcial7, SaldoParcial8, SaldoParcial9, SaldoParcial10, SaldoParcial11 As Double
Set Tabla = CurrentDb.OpenRecordset("MOV_KAR_DETALLE_KARDEX")
SaldoParcial1 = 0
SaldoParcial2 = 0
SaldoParcial3 = 0
SaldoParcial4 = 0
SaldoParcial5 = 0
SaldoParcial6 = 0
SaldoParcial7 = 0
SaldoParcial8 = 0
SaldoParcial9 = 0
SaldoParcial10 = 0
SaldoParcial11 = 0
While Not Tabla.EOF
Select Case PRODUCTO
Case 3
Tabla.Edit
Tabla!SALDO = SaldoParcial1 + (Tabla!ENTRADA - Tabla!SALIDA)
Tabla.Update
SaldoParcial1 = Tabla!SALDO
Tabla.MoveNext
Case 4
Tabla.Edit
Tabla!SALDO = SaldoParcial2 + (Tabla!ENTRADA - Tabla!SALIDA)
Tabla.Update
SaldoParcial2 = Tabla!SALDO
Tabla.MoveNext
Case 5
Tabla.Edit
Tabla!SALDO = SaldoParcial3 + (Tabla!ENTRADA - Tabla!SALIDA)
Tabla.Update
SaldoParcial3 = Tabla!SALDO
Tabla.MoveNext
Case 6
Tabla.Edit
Tabla!SALDO = SaldoParcial4 + (Tabla!ENTRADA - Tabla!SALIDA)
Tabla.Update
SaldoParcial4 = Tabla!SALDO
Tabla.MoveNext
Case 7
Tabla.Edit
Tabla!SALDO = SaldoParcial5 + (Tabla!ENTRADA - Tabla!SALIDA)
Tabla.Update
SaldoParcial5 = Tabla!SALDO
Tabla.MoveNext
Case 8
Tabla.Edit
Tabla!SALDO = SaldoParcial6 + (Tabla!ENTRADA - Tabla!SALIDA)
Tabla.Update
SaldoParcial6 = Tabla!SALDO
Tabla.MoveNext
Case 9
Tabla.Edit
Tabla!SALDO = SaldoParcial7 + (Tabla!ENTRADA - Tabla!SALIDA)
Tabla.Update
SaldoParcial7 = Tabla!SALDO
Tabla.MoveNext
Case 10
Tabla.Edit
Tabla!SALDO = SaldoParcial8 + (Tabla!ENTRADA - Tabla!SALIDA)
Tabla.Update
SaldoParcial8 = Tabla!SALDO
Tabla.MoveNext
Case 11
Tabla.Edit
Tabla!SALDO = SaldoParcial9 + (Tabla!ENTRADA - Tabla!SALIDA)
Tabla.Update
SaldoParcial9 = Tabla!SALDO
Tabla.MoveNext
Case 12
Tabla.Edit
Tabla!SALDO = SaldoParcial10 + (Tabla!ENTRADA - Tabla!SALIDA)
Tabla.Update
SaldoParcial10 = Tabla!SALDO
Tabla.MoveNext
Case 13
Tabla.Edit
Tabla!SALDO = SaldoParcial11 + (Tabla!ENTRADA - Tabla!SALIDA)
Tabla.Update
SaldoParcial11 = Tabla!SALDO
Tabla.MoveNext
End Select
Wend
Tabla.Close
Set Tabla = Nothing
End Function

alli esta me pueden explicar porque no corre
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:ejecutar macro

Publicado por Enrique (1299 intervenciones) el 07/03/2007 19:51:48
Hola Esteban:
Esta Función que pones en tu mensaje está sacada de un ejemplo para el cálculo de Saldos o Stock de productos que yo mismo puse en este Foro hace algún tiempo a petición de alguien que ahora no recuerdo y funcionaba sin tener que hacerle las modificaciones que tu le has hecho, o sea, que solo había que hacerle los lógicos cambios a los nombres de los respectivos controles en los formularios para adaptarlo a tu aplicación, así como el nombre de la Tabla y de sus Campos. Creo que no has interpretado correctamente el funcionamiento del ejemplo.
Tambien creo recordar que esa función estaba dentro de un Módulo por lo que ahí no basta con nombrar directamente a los campos sino que además hay que decirle de donde vienen. Ejemplo:

Esto que pones es incorrecto en un módulo:
SaldoParcial1 = Tabla!SALDO
En todo caso sería:
Form_NombreForm.SaldoParcial1 = Tabla!Saldo
(hay que indicar donde se encuentra "SaldoParcial1")

De todas formas, si tienes ese ejemplo, revísalo y verás que, aunque en la Tabla todos los productos están aparentemente mezclados, cada uno de ellos tiene sus propios movimientos que van numerados desde el 1 y su propio saldo, que luego puedes separar en el formulario para modificar, añadir y borrar, así como verlos individualmente en un informe.

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:ejecutar macro

Publicado por Esteban (20 intervenciones) el 08/03/2007 16:18:17
a gracias vos pero no me corrio mira vos habias puesto este ejemplo
Option Compare Database

'Marcar la Referencia: Microsoft DAO 3.6 Object Library
Public Function Calculo()
Dim Tabla As DAO.Recordset, SaldoParcial As Double
Set Tabla = CurrentDb.OpenRecordset("Tabla1")
SaldoParcial = 0
While Not Tabla.EOF
Tabla.Edit
Tabla!Saldo = SaldoParcial + (Tabla!Debe - Tabla!Haber)
Tabla.Update
SaldoParcial = Tabla!Saldo
Tabla.MoveNext
Wend
Tabla.Close
Set Tabla = Nothing
End Function

vos tenes tu Tabla con nombre Tabla y tu subfomulario pero alli vos no estas haciendo referencia a nada, en cambio aqui hay diferentes productos en bodega digamos que son 10 numeros diferentes de cuaderno de caligrafia entonces tengo mi tabla donde guardo todos los registros de entrada y salida de cuaderno pero de todos los tipos osea en un registro hay del numero 1 y en otro del 2 y diferentes eso es en la tabla, ahora digamos que quiero ver el inventario de cuaderno 1 me voy a un form con cuadro combinado le doy cuaderno no 1 abrir formulario y me abre el inventario de ese cuaderno, y unicamente me muestra los egresos e ingresos de ese numero de cuaderno, asi lo hago con el 2,3,4 y hasta el diez, pero todos los datos los hala de esa tabla donde tengo revueltos los registros, entonces me hace el calculo sobre la tabla y no sobre los campos seleccionados en el subformulario no se si me doy a entender la cosa es que si ingreso en cantidad de cuaderno 1 100 me aparece en el saldo 100, y digamos que despues me voy al cuaderno 2 ingreso 100 me aparece 200, esto es porque el calculo lo hace sobre la tabla entonces segun la tabla el registro anterior es 100 y solo seria de sumarle 100 por eso me aparece en saldo 200, yo creo que talvez no me entiendas, pero si me puedes ayudar te lo agradecere mucho que es el unico error que tiene esta base de datos

Gracias
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:ejecutar macro

Publicado por Enrique (1299 intervenciones) el 08/03/2007 16:38:36
Hola Esteban:
Lo que pasa es que tu estás usando un ejemplo muy simple que puse en no se donde ni cuando, pero que no contemplaba los saldos parciales por productos porque solo era eso, un ejemplillo y además, como verás era para cálculo de saldos contables, no para Productos. Más tarde te pondré aqui mismo otro más completo que si tiene en cuenta los Stock por cada producto.

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:ejecutar macro

Publicado por Esteban (20 intervenciones) el 08/03/2007 17:29:10
Muchas Gracias Enrique
Si me puedes avisar cuando pongas eso te lo agradeceria, gracias
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:ejecutar macro

Publicado por Enrique (1299 intervenciones) el 08/03/2007 19:20:21
Hola Esteban:
Te lo puedes descargar en este enlace Web:

http://es.geocities.com/ensolva/Descargas/Varios/MovimientosAlmacen.zip

Observa la Tabla "Movimientos" y verás como cada producto tiene sus propios movimientos y su stock numerados empezando por el 1. En esa Tabla el Campo "Id" solo sirve para mantener el órden de entrada de los conceptos y no tiene importancia el número que tenga, que como podrás comprobar siempre va en Ascendente para cada línea de un producto, aunque haya saltos entre los números.

Ahora espero que sepas adaptarlo a tu necesidad real. 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:ejecutar macro

Publicado por Esteban (20 intervenciones) el 08/03/2007 21:15:50
Gracias por hacerlo, Te lo agradezco mucho ahora solo es de adaptarlo a mi sistema gracias
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