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