Access - CODIGO EN VBA

   
Vista:

CODIGO EN VBA

Hola buenas noches. Agradezco si alguien me puede colaborar con este tema, pues no soy ingeniero informatico y no he logrado esto a pesar de haber buscado en internet:

Tengo la tabla "Periodos" con los campos Id Periodo, Descripcion, Fecha Emi, Fecha Cont

Requiero colocar en un boton el cógido o macro que ejecute esta accion:

1). Abrir una ventana que pida el periodo a contabilizar (por ejemplo 09/2013)

2). Consultar si en la tabla" Peridos ese Id Periodo existe:

Si no existe informar que no existe el periodo digitado no se puede contabilizar y finalizar.

Si el periodo existe y el campo Fecha Cont esta lleno (tiene datos) informar que dicho periodo ya fue contabilizado y terminar.

Si el periodo existe y el campo Fecha Cont esta vacio, colocar en Fecha Cont la fecha actual y ejecutar la "consulta de Actualizacion" llamada "Contabilidad".

Agradezco su gentil ayuda, no se programar en VBA estoy tratando de aprender y se que con esta ayuda lograré incrementar mi conocimiento.
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
Imágen de perfil de Neckkito

CODIGO EN VBA

Publicado por Neckkito (1104 intervenciones) el 28/09/2013 17:29:38
Hola!

Ahí tienes un código. Ahora bien, como lo he escrito de cabeza te recomiendo que lo pruebes en una copia de tu BD.

También te recomiendo que verifiques el valor que introduce el usuario antes de ejecutar el código (eso no está hecho). Si el usuario se equivoca y pone cualquier valor evidentemente eso no estará en la tabla.

El código es:

...
Private Sub...
'Requiere registro de la libreria "Microsoft DAO 3.6 Object Library" o módulo equivalente
'Declaramos las variables
Dim miPeriodo as variant
Dim periodoTabla as variant
Dim fechaTabla as variant
Dim rst as dao.recordset
Dim miSql as string
'Pedimos al usuario el periodo
miPeriodo=inputbox("Introduzca periodo")
'Comprobamos que no se pulse el botón cancelar. Si se pulsa salimos
If strprt(miPeriodo)=0 then exit sub
'Examinamos si existe el periodo en la tabla
periodoTabla=dlookup("[Id Periodo]","Periodos","[Id Periodo]='" & miPeriodo & "'")
'Si el periodo no existe...
If isnull(periodoTabla) then
msgbox "No existe el periodo solicitado",vbExclamation,"AVISO"
Exit sub
'Si el periodo existe...
Else
fechaTabla=dlookup("[Fecha Cont]","Periodos","[Id Periodo]='" & miPeriodo & "'")
'Si fecha cont tiene datos avisamos y salimos
If not isnull(fechaTabla) then
msgbox "El periodo ya fue contabilizado",vbExclamation,"AVISO
Exit sub
'Si no tiene datos...
Else
'Creamos la SQL que nos filtrará ese registro
miSql = "SELECT Periodos.[Fecha Cont] FROM Periodos" _
" WHERE Periodos.[Id Periodo]='" & miPeriodo & "'"
'Creamos el recordset sobre la SQL
Set rst = currentdb.openrecordset(miSql)
'Actualizamos la fecha
With rst
.edit
.Fields(0).value=date
.update
End with
'Ejecutamos la consulta de actualización
docmd.setwarnings false
docmd.openquery "Contabilidad"
docmd.setwarnings true
End if
End if
End sub
...

Saludos,


http://neckkito.siliconproject.com.ar
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

CODIGO EN VBA

Publicado por Alexander Alvarado A alvarado.alexander@gmail.com (4 intervenciones) el 03/10/2013 04:05:57
Hola Nekkito. Saludos desde Colombia, muchas gracias por tu respueta.

Copie y peque el codigo que gentilmente desarrollaste pero no me funciona. Como hasta ahora estoy aprendiendo vba no se cual es el error o que estoy haciendo mal.

No se si será muy atrevido de mi parte pedite mas ayuda. Te podria enviar via correo electronico la bd para ver si revisas el problema que genera.

gracias y quedo a la espera de tu respuesta.
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
Imágen de perfil de Neckkito

CODIGO EN VBA

Publicado por Neckkito (1104 intervenciones) el 03/10/2013 09:31:42
neckkito(ARROBA)myopera(PUNTO)com

Estoy bastante liado en estos momentos, por lo que no sé cuándo te podré dar una respuesta.

Saludos,

Neckkito
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

CODIGO EN VBA

Publicado por alexander Alvarado A alvarado.alexander@gmail.com (4 intervenciones) el 22/10/2013 01:08:48
Hola, te envie al correo la base de datos para ver si me ayudas con el código.

en el correo te di mas detalles.

Graicas.
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