Generar Codigo Barras GS1_128 |
Responder |
Autor | |
jebcarlos
Asiduo Unido: 16/Julio/2006 Localización: Colombia Estado: Sin conexión Puntos: 275 |
Opciones de entrada
Gracias(0)
Enviado: 06/Abril/2023 a las 04:35 |
Buenas noches hace algún tiempo estoy buscando un código que me permita crear el código de barras GS1_128, y no lo he encontrado, o tal vez no lo he sabido buscar, así que como la IA GPTCHAT anda de moda le pregunte como hacerlo y me dio dos respuestas y al aplicarlo no me genera nada, será que estoy haciendo algo mal? o LE gfalta código. Acá dejó la respuesta dada, por que ando buscando ayuda. Gracias Para crear una función en VBA que genere un código de barras GS1-128 de manera nativa en un informe de Access, puedes seguir los siguientes pasos: Crea un informe de Access con los campos que deseas mostrar, incluyendo el campo que contiene los datos que se utilizarán para generar el código de barras. Agrega un control "Imagen" al informe en la sección donde deseas que aparezca el código de barras. Haz clic derecho en el control de imagen y selecciona "Propiedades" en el menú contextual. En la sección "Origen del control", selecciona "Expr." en el cuadro desplegable "Origen de la imagen". En la ventana "Constructor de expresiones", crea la siguiente función VBA que genera el código de barras GS1-128: vb Public Function GenerarCodigoBarrasGS1_128(ByVal datos As String) As String ' Definir las reglas de concatenación Dim patron As String patron = "211412" ' Inicio de Código B, AI (01), separador, datos ' Aplicar las reglas de concatenación para los datos de entrada Dim digitoVerificador As Integer For i = 1 To Len(datos) If i Mod 2 = 1 Then ' Dígito par patron = patron & "212" ' Separador, datos End If patron = patron & Mid(datos, i, 1) digitoVerificador = digitoVerificador + (i Mod 2) * (Asc(Mid(datos, i, 1)) - 32) Next i ' Calcular el dígito verificador digitoVerificador = (digitoVerificador Mod 103) + 32 patron = patron & Chr(digitoVerificador) ' Agregar el fin de código patron = patron & "233" ' Devolver el código de barras completo GenerarCodigoBarrasGS1_128 = patron End Function ACA EMPIEZA LA SEGUNDA RESPUESTA Esta función es similar a la que se mencionó en la respuesta anterior, pero en este caso es una función pública que se puede utilizar en el informe. En la ventana "Constructor de expresiones", utiliza la siguiente expresión para el origen de la imagen del control de imagen: arduino ="Barcode128:" & GenerarCodigoBarrasGS1_128([NombreDelCampo]) Donde "NombreDelCampo" es el nombre del campo que contiene los datos que se utilizarán para generar el código de barras. Esta expresión concatena la cadena "Barcode128:" con el resultado de la función "GenerarCodigoBarrasGS1_128" para crear una cadena que se puede interpretar como un código de barras. Cierra la ventana "Constructor de expresiones" y guarda los cambios en el informe. Con estos pasos, has creado una función en VBA que genera un código de barras GS1-128 y lo muestra en un control de imagen en un informe de Access. Ahora, cuando se ejecute el informe, el código de barras se generará automáticamente para cada registro que contenga datos en el campo especificado. Para generar un código de barras GS1-128 en un informe de Access utilizando una función VBA, puedes seguir los siguientes pasos: Abre el informe en el que deseas insertar el código de barras y asegúrate de que la fuente de datos del informe incluya un campo que contenga el número que deseas codificar en el código de barras. Abre el editor de código de Access haciendo clic en el botón "Visual Basic" en la pestaña "Programador" de la cinta de opciones. En el editor de código, haz clic en el menú "Insertar" y selecciona "Módulo" para crear un nuevo módulo. En el nuevo módulo, copia y pega la siguiente función VBA para generar el código de barras GS1-128: vb Function GenerarCodigoBarrasGS1_128(ByVal datos As String) As String ' Definir las reglas de concatenación Dim patron As String patron = "211412" ' Inicio de Código B, AI (01), separador, datos ' Aplicar las reglas de concatenación para los datos de entrada Dim digitoVerificador As Integer For i = 1 To Len(datos) If i Mod 2 = 1 Then ' Dígito par patron = patron & "212" ' Separador, datos End If patron = patron & Mid(datos, i, 1) digitoVerificador = digitoVerificador + (i Mod 2) * (Asc(Mid(datos, i, 1)) - 32) Next i ' Calcular el dígito verificador digitoVerificador = (digitoVerificador Mod 103) + 32 patron = patron & Chr(digitoVerificador) ' Agregar el fin de código patron = patron & "233" ' Devolver el código de barras completo GenerarCodigoBarrasGS1_128 = patron End Function En el informe, coloca un control "Cuadro de texto" en el lugar donde deseas insertar el código de barras. Haz clic con el botón derecho del ratón en el control "Cuadro de texto" y selecciona "Propiedades" en el menú contextual. En la sección "Datos" de las propiedades del control "Cuadro de texto", haz clic en el botón "Control de origen" y selecciona el campo que contiene el número que deseas codificar en el código de barras. En la sección "Formato" de las propiedades del control "Cuadro de texto", selecciona "Código de barras" en el menú desplegable "Formato". En la sección "Código de barras" de las propiedades del control "Cuadro de texto", haz clic en el botón "Propiedades" y selecciona "Personalizado" en el menú desplegable "Tipo". En la sección "Código de barras personalizado", ingresa la siguiente expresión en la propiedad "Código": scss =GenerarCodigoBarrasGS1_128([NombreDelCampo]) Donde "NombreDelCampo" es el nombre del campo que contiene el número que deseas codificar en el código de barras. Guarda los cambios en el informe y cierra el editor de código. |
|
javier.mil
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador Unido: 10/Agosto/2005 Localización: España Estado: Sin conexión Puntos: 4812 |
Opciones de entrada
Gracias(0)
|
Prueba con estos codigos
Editado por javier.mil - 06/Abril/2023 a las 21:11 |
|
jebcarlos
Asiduo Unido: 16/Julio/2006 Localización: Colombia Estado: Sin conexión Puntos: 275 |
Opciones de entrada
Gracias(0)
|
Hola Javier gracias por la ayuda los probare, aunque tengo una duda debo usar un fuente en especial como la code128.ttf?
|
|
javier.mil
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador Unido: 10/Agosto/2005 Localización: España Estado: Sin conexión Puntos: 4812 |
Opciones de entrada
Gracias(0)
|
Si creo que si , pruebala y nos comentas
|
|
jebcarlos
Asiduo Unido: 16/Julio/2006 Localización: Colombia Estado: Sin conexión Puntos: 275 |
Opciones de entrada
Gracias(0)
|
Buenas noches que pena la demora, estoy haciendo pruebas con la información aportada por javier.mil así. Copie los 3 módulos en un modulo, luego cree un informe con un solo campo denominado code128 que contiene el siguiente valor "(415)7709998359161(8020)00000005678411(3900)0000055150(96)20230420" sin las comillas Luego cree 3 campos así Texto1=Azalea_GS1_128_A([codigo128]); Texto3=Azalea_GS1_128_B([codigo128]) y Texto5=Azalea_GS1_128_C([codigo128]). Pero cuando abro el informe me sale este error "ERROR DE DESBORDAMIENTO" en los tres campos de textos y no debería ser así al menos en uno de los 3.
|
|
javier.mil
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador Unido: 10/Agosto/2005 Localización: España Estado: Sin conexión Puntos: 4812 |
Opciones de entrada
Gracias(0)
|
Buenas Solo tienes que cambiar donde ponga As Integer Cámbialo por As Long
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |