Varias dudas sobre implementación de sistema de facturación con base de datos access

Estoy dando mis primeros pasos en Ms access, tengo un poco de experiencia en VB, aplicado fundamentalmente como soporte de Excel.
Estoy "haciendo" una BD para un sistema de facturación. Para ello cuento con el libro Programación Avanzada con MSAccess2000 de F.Scott Barker, el Help de Access y el análisis de la estructura de Neptuno (el ejemplo de Ms access).
Bueno, este introito ha sido como para que tenga idea de quien está del otro lado.
Yendo al meollo de la situación, sé que debería pasarle más datos, pero veremos si con esto alcanza.
Para poder llegar a facturar, se trata de una metalúrgica, este establecimiento primero debe construir unas piezas, por ello lo que inicialmente hice fue un Formulario y Tabla "Clientes", Formulario con Subformulario y Tabla "Ordenes de Trabajo" (donde se van ingresando los ítems a construir, que luego se facturarán, por su estructura se asemeja al formulario Pedidos de Neptuno), más algunos Informes y Consultas, tal como lo interpreté del ejemplo.
Hasta acá, casi todo bien, salvo que:
1- Cuando imprimo el Informe "Ordenes de Trabajo", salen los ítems en forma decreciente, p.ej. Si hay tres, (en todo lados están ingresados y ordenados 1,2,3) salen impresos 3,2,1.
2- Como una columna, consta de tres, Items, Cantidad y Descripción del Trabajo, y esta última tiene un máx. De caracteres es de 220, en el diseño del Informe, si pongo en Cuadro de Texto de un alto Std. Se me truncan los textos, si lo hago de un alto como para que contenga los 220 caracteres, quedan muy separados los distintos items. ¿Hay alguna forma de que el cuadro de texto sea automático en la regulación del alto?.
3- Se puede hacer que el campo Item tome como número al del registro. Siempre coinciden y sería interesante no ingresarlo manualmente.
4- Aún me resta diseñar la parte de Facturación. Creo no tendré problemas, pero hay una condición. Para poder Facturar, es menester haber "cerrado" la OT, como para un futuro llevar el control de tiempos de trabajo, así que en el Formulario de OT, hay un campo "Fecha Finalización" que se debe llenar una vez finalizada la tarea. ¿Cómo se puede bloquear la emisión de la Factura si no se ha completado ese campo?.
5- Cuál es la instrucción que gobierna la impresión, como para poder setear por programa el tipo de hoja (A4), los márgenes,¿etc.?
6- Como el sistema de Facturación, por cuestiones legales (la numeración de las facturas), no debe se accesado y modificado, necesito que la primera no sea imperiosamente la numero 1, p.ej. Podría ser 1259; para ello viendo el ejemplo de Neptuno, los pedidos comienzan desde el 10248, pero cuando hago una tabla con el Idregistro Autonumérico, Incremental e Indexado (Sin duplicados) éste comienza desde el número 1!. ¿Cómo se puede modificar ese comienzo?.
Bueno, hasta acá todo.
Respuesta
1
Madre de Dios cuanta letra!
1.- En modo diseño del informe puedes entrar a la opción ordenar y agrupar del menu ver para establecer la ordenación que necesites.
2.- Para campos grandes debes utilizar tipo Memo, puesto que no trunca. Una vez que el campo está declarado como Memo, le puedes decir que establezca barras de desplazamiento para observar el total del contenido del campo (útil para formularios) o bien establecer un valor true para la propiedad autoextensible del control que ubique esta información (útil para informes).
3.- Si el campo item está vinculado a un campo de tu tabla con datos, no tienes porque ingresar nada a mano.
4.- Por programación:
dim base as database
dim rs as recordset
set base=currentdb
set rs=base.openrecordset("select [fecha finalización] from ordenes where item='" & nombre_control & "'")
if rs.fields(0)="" then
msgbox "Órden sin finalizar"
else
'Hacer lo que haya que hacer'
Endif
5.- Menú Archivo->Configurar Página
6.- Los autonuméricos de Access no son modificables. Te puedes hacer rutinas con accesos parecidos al ejemplo de código anterior para obtener id's según tus necesidades, utilizando lenguaje SQL 'puro y duro'

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas