No se si es realmente es lo que buscas, ya que no eres muy especifico.
Pero te pongo una serie de vídeos del proceso de creación de un formulario de ventas. El código esta en la descripción de cada vídeo.
https://www.youtube.com/playlist?list=PLsbpurIPHmoKiBVg0vRV5iT07zSFHdrfx
¿Cómo funciona?
Cuando tienes un lector de código barras, te manda el numero y puedes configurar tu lector para que después de darte el numero de un Tab(Enter). Lo puedes probar en un bloc de notas.
1. Primeramente tienes que agregar tus productos a tu inventario con su respectivo código de barras.
2. Cuando tengas que hacer una venta solo es necesario escanear el producto y se te recuperara la fila completa de ese producto(Como se muestra en los vídeos). En el vídeo seleccionan el producto por el nombre o por un código(En tu caso el código seria el código de barras), mediante un Combo Box(En tu caso seria mediante un combo box o al pasarlo por el lector de barras).
3. Al tener lo que venderás, a continuación tienes que guardar la venta e imprimir el ticket el cual tienes que configurar tu impresora(Dependiendo el modelo de tu impresora) . Un ejemplo de la configuración.
Private Sub emiteTicket()
Dim NumArch As Integer
On Error GoTo ManipularError
NumArch = FreeFile
Open Campo(2, "T_configuraciones") For Output As #NumArch
Print #NumArch, Chr$(&H1B); "@"; 'Inicializa la impresora (ESC @)
Print #NumArch, Chr$(&H1B); "3"; Chr$(40); 'Puntos de espacio entre lineas
Print #NumArch, Chr$(&H1B); "a"; Chr$(1); 'Posición de impresión, centrada (ESC a)
Print #NumArch, Chr$(&H1B); "!"; Chr$(8); 'Negrita a 10cpp o fuente A
Print #NumArch, Chr$(&HA); Campo(6, "T_datos_cia") 'Nombre de Sucursal
Print #NumArch, Chr$(&H1B); "!"; Chr$(1); 'Normal a 12 cpp o fuente B
Print #NumArch, Campo(1, "T_datos_cia") 'Dirección sucursal
Print #NumArch, Format(Me.FechaInicio, "dd/mmm/yyyy") & " " & "Folio: " & Me.Folio
Print #NumArch, Chr$(&H1B); "!"; Chr$(8); 'Negrita a 10cpp o fuente B
Print #NumArch, Chr$(&HA); "ORDEN DE SERVICIO" ' Titulo
Print #NumArch, Chr$(&H1B); "a"; Chr$(0); 'Posición de impresión, izquierda (ESC a)
Print #NumArch, Chr$(&H1B); "!"; Chr$(1); 'Normal a 12 cpp o fuente B
Print #NumArch, String(56, "-") 'Linea Punteada
Print #NumArch, "INICIO : " & Format(Me.FechaInicio, "hh:mm AMPM") 'Fecha Inicio
Print #NumArch, "FINAL : " & IIf(Format(Me.FechaInicio, "dd/mmm/yyyy") = Format(Me.FechaFin, "dd/mmm/yyyy"), Format(Me.FechaFin, "hh:mm AMPM"), Format(Me.FechaFin, "dd/mmm/yyyy hh:mm AMPM")) 'Fecha Fin
Print #NumArch, Chr$(&H1B); "!"; Chr$(8); 'Negrita a 10cpp o fuente A
Print #NumArch, "PROVEEDOR : " & Me.CmbProveedores.Column(1)
Print #NumArch, Chr$(&H1B); "!"; Chr$(1); 'Normal a 12cpp o fuente B
Print #NumArch, "ATIENDE SERVICIO: " & Me.Ayudante
Print #NumArch, "DESCRIPCION : " & Me.Descripcion
Print #NumArch, String(56, "-") 'Linea Punteada
Print #NumArch, Chr$(&H1B); "a"; Chr$(1); 'Posición de impresión, centrada (ESC a)
Print #NumArch, Chr$(&HA); "-PROVEEDOR-"
Print #NumArch, Chr$(&H1D); "V"; Chr$(66); Chr$(1); 'Feeds paper & cut
Print #NumArch, Chr$(&H1B); "@"; 'Inicializa la impresora (ESC @)
Close #NumArch
Exit Sub
ManipularError:
MsgBox Err.Description, vbCritical, "Atención"
End Sub