En access sumar albaranes

Hola amigo,
Tengo problemas para introducir la Función que te pongo
En la parte de abajo.
Podrías explicarme paso a paso como introducir
La función en la base de datos que tengo echa con access
O otra solución mejor.
Gracias Amigo, Saludos
Hola amigo
Nadie desde hace tiempo me responde y ni
Sabe explicarme el siguiente problema.
Quizás cansado de que me manden a páginas
Diciendo que es muy difícil la solución.
Mi pregunta. Como o de que manera puedo poner en mi
Base de datos en una tabla que en la parte de arriba pone
El último albarán de entrada y en la parte de abajo el próximo
Que entre.
Me explico un campo que cada vez que entro datos
en un albarán nuevo sale el último número que se entró, y
en otro campo el siguiente número pero este último lo tengo que
introducir yo.
Ejemplo. 06/00001 este seria el último guardado, si sigo el resto
Los tengo que introducir yo, ejemplo 06/00002 borrando el último
Y introduciendo el siguiente.
Como conseguiría que se sumaran automáticamente respetando el
06/ del año, cada vez que hiciera un albarán nuevo.
Si me lo pudieras explicar paso a paso te estaría muy agradecido.
'Funcion
Function SumarAlbarran(Albarran As String, Incremento As Integer) As String
Dim Numero As String, Anio As String, NvoAlbarran As String
'Left(cadena,longitud) fucion para extraer caracteres a la izquierda ejemplo
'Ejemplo: Cadena=Left("Mex-Tv",3) daria como resultados Cadena="Mex"
'
'Albarran="05/000005"
'Anio=Left("05/000005",2)
'Anio="05"
'La funcion mid(cedena,inicial,[logitud]) tambien es de tratamiento de texto indicandole la cadena la posicion inicial
'y la final (opcional)
'Cadena=mid("05/000005",4) resultado Cadena="000005"
'
'La funcion InStr sirve para buscar una cadena dentro de otra y devuelve la posiocion
'
'Posicion=Instr("Mexico","x") resultado Posicion=3
'
'Format aplica un formato a una cadena ejemplo CadenaConFormato=Format("12","$###,00")
' resultado $12.00
'
' Espero me explique bien :)
Anio = Left(Albarran, 2)
Numero = Format(Val(Mid(Albarran, InStr(Albarran, "/") + 1)) + Incremento, "00000")
NvoAlbarran = Anio & "/" & Numero
SumarAlbarran = NvoAlbarran
End Function
Muchas Gracias amigo es muy importante para mi, Saludos
Respuesta
1
Esto no queda muy claro.
Vamos a ver si entiendo lo que pretendes. Supongo que lo que tienes en pantalla es un formulario de access en el cual introduces los datos de cada albarán, porque hablas de introducir la función en una base de datos, pero una base de datos de access puede tener tablas, consultas, formularios, informes y módulos. Suponiendo que estoy en lo cierto, lo que pretendes es que, al insertar un nuevo registro (a través del formulario), en un cuadro de texto te autonumere (nombre automáticamente el nuevo albarán). Siendo así no creo que sea muy difícil introducir el código en el evento "Form_Current". Habría otras opciones, pero no me queda muy claro dónde pretendes "meter" esa función.
Si puedes aclarar mejor lo que intentas hacer, quizá pueda ayudarte.
Suerte.
Hola amigo
Que se autonumere cada albarán
Cuando pulse continuar nuevo albarán
Gracias amigo
Vamos a ver dreamespal:
Creo que ya he respondido varias veces a esta pregunta. A ver si avanzamos algo esta vez. Doy por supuesto que conoces Access y sabes lo que es un formulario, los objetos que contiene y sus eventos.
Cuando pulsas "continuar nuevo albarán" entiendo que estás pulsando un botón de un formulario que añade un nuevo registro "albarán" a la base de datos. Cada registro ha de ser identificado con una cadena como "05/00003", de tal manera que al pulsar ese botón en un cuadro de texto llamado "id. albarán" apareciera "05/00004". Y después de completar todos los datos de ese albarán, al continuar nuevo albarán, la cadena cambiase a "05/00005". Si estoy en lo cierto, esto es lo que quieres que ocurra, ¿verdad?.
Pues bien, para esto tienes que ir al evento OnClick del botón que pulsas para crear el nuevo albarán y allí (en el módulo, por supuesto) localizar la línea que añade un nuevo registro. Esta línea será más o menos así: "DoCmd.GoToRecord,, acNewRec".
Inseta las tres líneas siguientes antes de esta:
Dim strViejoAlbaran As String
DoCmd.GoToRecord , , acLast
strViejoAlbaran = CuadTexto
Y después de la línea añade esto:
CuadTexto = FuncionNuevoAlbaran(strViejoAlbaran)
Hemos supuesto que el nombre del cuadro de texto que contiene la cadena a actualizar es "CuadTexto".
Ahora crearemos una función al final del módulo del formulario. Para ir al final pulsa Ctrl+Fin. Y ahora escribe:
Public Function FuncionNuevoAlbaran(strViejoAlbaran As String) As String
Dim strYear As String
Dim strNumAlbaran As String
strYear = Format(Date, "yy")
strNumAlbaran = Format(Right(strViejoAlbaran, 5) + 1, "00000")
FuncionNuevoAlbaran = strYear & "/" & strNumAlbaran
End Function
Suerte!

1 respuesta más de otro experto

Respuesta
1
Según recuerdo, el mid, se usa de la siguiente forma:
Cadena=mid("05/000005",4,6)
resultado Cadena="000005"
Ya que tiene que tener una posición inicial y una final.
Para la segunda me explicas un poco más como lo deseas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas