Newsgroup: it.comp.appl.access
Titolo: codice a barre

Ho scaricato questo codice  che genera codici a barre
come devo fare a farlo funzionare ?
max
Function MB_128(Ctrl, sx, sy, mx, my, CD)
'Declarations
Dim check_digit As Integer, i As Integer
Dim mod_width As Single
Dim barcode As String
Dim length As Integer
Dim code As String
barcode = Ctrl
length = Len(barcode)
If length = 0 Then Exit Function
'Determinazione dei caratteri CODE
If length = 0 Then Exit Function
Image = ""
For i = 1 To length
  If Mid$(barcode, i, 1) >= "0" And Mid$(barcode, i, 1) <= "9" Then
    Image = Image & "N"
  Else
    Image = Image & "A"
  End If
Next i
numerici = 0
For i = 1 To Len(Image)
  If Mid$(Image, i, 1) = "N" Then
    numerici = numerici + 1
  Else
    If numerici < 4 Then
      Image = Left$(Image, i - 1 - numerici) & String$(numerici, "A") &
Right$(Image, Len(Image) - i + 1)
      numerici = 0
    Else
      If numerici Mod 2 <> 0 Then
        Image = Left$(Image, i - 2) & "A" & Right$(Image, Len(Image) - i +
1)
        numerici = 0
      End If
    End If
  End If
Next i
If numerici < 4 Then
  Image = Left$(Image, i - 1 - numerici) & String$(numerici, "A") &
Right$(Image, Len(Image) - i + 1)
  numerici = 0
Else
  If numerici Mod 2 <> 0 Then
    Image = Left$(Image, i - 2) & "A" & Right$(Image, Len(Image) - i + 1)
    numerici = 0
  End If
End If
'L'immagine è corretta: calcolo il check_digit
If Left$(Image, 1) = "A" Then
  code = "A"
  check = 104
Else
  code = "N"
  check = 105
End If
peso = 1
numerici = 0
For i = 1 To length
  If Mid$(Image, i, 1) = "A" Then
    numerici = 0
    Select Case Mid$(barcode, i, 1)
      Case " "
        valore = 0
      Case "!"
        valore = 1
      Case Chr$(34)
        valore = 2
      Case "#"
        valore = 3
      Case "$"
        valore = 4
      Case "%"
        valore = 5
      Case "&"
        valore = 6
      Case "'"
        valore = 7
      Case "("
        valore = 8
      Case ")"
        valore = 9
      Case "*"
        valore = 10
      Case "+"
        valore = 11
      Case ","
        valore = 12
      Case "-"
        valore = 13
      Case "."
        valore = 14
      Case "/"
        valore = 15
      Case "0"
        valore = 16
      Case "1"
        valore = 17
      Case "2"
        valore = 18
      Case "3"
        valore = 19
      Case "4"
        valore = 20
      Case "5"
        valore = 21
      Case "6"
        valore = 22
      Case "7"
        valore = 23
      Case "8"
        valore = 24
      Case "9"
        valore = 25
      Case ":"
        valore = 26
      Case ";"
        valore = 27
      Case "<"
        valore = 28
      Case "="
        valore = 29
      Case ">"
        valore = 30
      Case "?"
        valore = 31
      Case "@"
        valore = 32
      Case "A"
        valore = 33
      Case "B"
        valore = 34
      Case "C"
        valore = 35
      Case "D"
        valore = 36
      Case "E"
        valore = 37
      Case "F"
        valore = 38
      Case "G"
        valore = 39
      Case "H"
        valore = 40
      Case "I"
        valore = 41
      Case "J"
        valore = 42
      Case "K"
        valore = 43
      Case "L"
        valore = 44
      Case "M"
        valore = 45
      Case "N"
        valore = 46
      Case "O"
        valore = 47
      Case "P"
        valore = 48
      Case "Q"
        valore = 49
      Case "R"
        valore = 50
      Case "S"
        valore = 51
      Case "T"
        valore = 52
      Case "U"
        valore = 53
      Case "V"
        valore = 54
      Case "W"
        valore = 55
      Case "X"
        valore = 56
      Case "Y"
        valore = 57
      Case "Z"
        valore = 58
      Case "["
        valore = 59
      Case "\"
        valore = 60
      Case "]"
        valore = 61
      Case "^"
        valore = 62
      Case "_"
        valore = 63
      Case "`"
        valore = 64
      Case "a"
        valore = 65
      Case "b"
        valore = 66
      Case "c"
        valore = 67
      Case "d"
        valore = 68
      Case "e"
        valore = 69
      Case "f"
        valore = 70
      Case "g"
        valore = 71
      Case "h"
        valore = 72
      Case "i"
        valore = 73
      Case "j"
        valore = 74
      Case "k"
        valore = 75
      Case "l"
        valore = 76
      Case "m"
        valore = 77
      Case "n"
        valore = 78
      Case "o"
        valore = 79
      Case "p"
        valore = 80
      Case "q"
        valore = 81
      Case "r"
        valore = 82
      Case "s"
        valore = 83
      Case "t"
        valore = 84
      Case "u"
        valore = 85
      Case "v"
        valore = 86
      Case "w"
        valore = 87
      Case "x"
        valore = 88
      Case "y"
        valore = 89
      Case "z"
        valore = 90
      Case "{"
        valore = 91
      Case "|"
        valore = 92
      Case "}"
        valore = 93
      Case "~"
        valore = 94
    End Select
    If code = "N" Then
      check = check + 100 * peso
      peso = peso + 1
      code = "A"
    End If
    check = check + valore * peso
    peso = peso + 1
  End If
  If Mid$(Image, i, 1) = "N" Then
    numerici = numerici + 1
    If numerici Mod 2 = 0 Then
      If code = "A" Then
        check = check + 99 * peso
        peso = peso + 1
        code = "N"
      End If
      cifra = Val(Mid$(barcode, i - 1, 2))
      check = check + cifra * peso
      peso = peso + 1
    End If
  End If
Next i
check = check Mod 103
If Left$(Image, 1) = "A" Then
  code = "A"
  image2 = "211214"
Else
  code = "N"
  image2 = "211232"
End If
numerici = 0
For i = 1 To length
  If Mid$(Image, i, 1) = "A" Then
    numerici = 0
    Select Case Mid$(barcode, i, 1)
      Case " "
        carattere = "212222"
      Case "!"
        carattere = "222122"
      Case Chr$(34)
        carattere = "222221"
      Case "#"
        carattere = "121223"
      Case "$"
        carattere = "121322"
      Case "%"
        carattere = "131222"
      Case "&"
        carattere = "122213"
      Case "'"
        carattere = "122312"
      Case "("
        carattere = "132212"
      Case ")"
        carattere = "221213"
      Case "*"
        carattere = "221312"
      Case "+"
        carattere = "231212"
      Case ","
        carattere = "112232"
      Case "-"
        carattere = "122132"
      Case "."
        carattere = "122231"
      Case "/"
        carattere = "113222"
      Case "0"
        carattere = "123122"
      Case "1"
        carattere = "123221"
      Case "2"
        carattere = "223211"
      Case "3"
        carattere = "221132"
      Case "4"
        carattere = "221231"
      Case "5"
        carattere = "213212"
      Case "6"
        carattere = "223112"
      Case "7"
        carattere = "312131"
      Case "8"
        carattere = "311222"
      Case "9"
        carattere = "321122"
      Case ":"
        carattere = "321221"
      Case ";"
        carattere = "312212"
      Case "<"
        carattere = "322112"
      Case "="
        carattere = "322211"
      Case ">"
        carattere = "212123"
      Case "?"
        carattere = "212321"
      Case "@"
        carattere = "232121"
      Case "A"
        carattere = "111323"
      Case "B"
        carattere = "131123"
      Case "C"
        carattere = "131321"
      Case "D"
        carattere = "112313"
      Case "E"
        carattere = "132113"
      Case "F"
        carattere = "132311"
      Case "G"
        carattere = "211313"
      Case "H"
        carattere = "231113"
      Case "I"
        carattere = "231311"
      Case "J"
        carattere = "112133"
      Case "K"
        carattere = "112331"
      Case "L"
        carattere = "132131"
      Case "M"
        carattere = "113123"
      Case "N"
        carattere = "113321"
      Case "O"
        carattere = "133121"
      Case "P"
        carattere = "313121"
      Case "Q"
        carattere = "211331"
      Case "R"
        carattere = "231131"
      Case "S"
        carattere = "213113"
      Case "T"
        carattere = "213311"
      Case "U"
        carattere = "213131"
      Case "V"
        carattere = "311123"
      Case "W"
        carattere = "311321"
      Case "X"
        carattere = "331121"
      Case "Y"
        carattere = "312113"
      Case "Z"
        carattere = "312311"
      Case "["
        carattere = "332111"
      Case "\"
        carattere = "314111"
      Case "]"
        carattere = "221411"
      Case "^"
        carattere = "431111"
      Case "_"
        carattere = "111224"
      Case "`"
        carattere = "111422"
      Case "a"
        carattere = "121124"
      Case "b"
        carattere = "121421"
      Case "c"
        carattere = "141122"
      Case "d"
        carattere = "141221"
      Case "e"
        carattere = "112214"
      Case "f"
        carattere = "112412"
      Case "g"
        carattere = "122114"
      Case "h"
        carattere = "122411"
      Case "i"
        carattere = "142112"
      Case "j"
        carattere = "142211"
      Case "k"
        carattere = "241211"
      Case "l"
        carattere = "221114"
      Case "m"
        carattere = "413111"
      Case "n"
        carattere = "241112"
      Case "o"
        carattere = "134111"
      Case "p"
        carattere = "111242"
      Case "q"
        carattere = "121142"
      Case "r"
        carattere = "121241"
      Case "s"
        carattere = "114212"
      Case "t"
        carattere = "124112"
      Case "u"
        carattere = "124211"
      Case "v"
        carattere = "411212"
      Case "w"
        carattere = "421112"
      Case "x"
        carattere = "421211"
      Case "y"
        carattere = "212141"
      Case "z"
        carattere = "214121"
      Case "{"
        carattere = "412121"
      Case "|"
        carattere = "111143"
      Case "}"
        carattere = "111341"
      Case "~"
        carattere = "131141"
    End Select
    If code = "N" Then
      image2 = image2 & "114131"
      code = "A"
    End If
    image2 = image2 & carattere
  End If
  If Mid$(Image, i, 1) = "N" Then
    numerici = numerici + 1
    If numerici Mod 2 = 0 Then
      cifra = Val(Mid$(barcode, i - 1, 2))
      Select Case cifra
        Case 0
          carattere = "212222"
        Case 1
          carattere = "222122"
        Case 2
          carattere = "222221"
        Case 3
          carattere = "121223"
        Case 4
          carattere = "121322"
        Case 5
          carattere = "131222"
        Case 6
          carattere = "122213"
        Case 7
          carattere = "122312"
        Case 8
          carattere = "132212"
        Case 9
          carattere = "221213"
        Case 10
          carattere = "221312"
        Case 11
          carattere = "231212"
        Case 12
          carattere = "112232"
        Case 13
          carattere = "122132"
        Case 14
          carattere = "122231"
        Case 15
          carattere = "113222"
        Case 16
          carattere = "123122"
        Case 17
          carattere = "123221"
        Case 18
          carattere = "223211"
        Case 19
          carattere = "221132"
        Case 20
          carattere = "221231"
        Case 21
          carattere = "213212"
        Case 22
          carattere = "323112"
        Case 23
          carattere = "312131"
        Case 24
          carattere = "311222"
        Case 25
          carattere = "321122"
        Case 26
          carattere = "321221"
        Case 27
          carattere = "312212"
        Case 28
          carattere = "322112"
        Case 29
          carattere = "322211"
        Case 30
          carattere = "212123"
        Case 31
          carattere = "212321"
        Case 32
          carattere = "232121"
        Case 33
          carattere = "111323"
        Case 34
          carattere = "131123"
        Case 35
          carattere = "131321"
        Case 36
          carattere = "112313"
        Case 37
          carattere = "132113"
        Case 38
          carattere = "132311"
        Case 39
          carattere = "211313"
        Case 40
          carattere = "231113"
        Case 41
          carattere = "231311"
        Case 42
          carattere = "112133"
        Case 43
          carattere = "112331"
        Case 44
          carattere = "132131"
        Case 45
          carattere = "113123"
        Case 46
          carattere = "113321"
        Case 47
          carattere = "133121"
        Case 48
          carattere = "313121"
        Case 49
          carattere = "211331"
        Case 50
          carattere = "231131"
        Case 51
          carattere = "213113"
        Case 52
          carattere = "213311"
        Case 53
          carattere = "213131"
        Case 54
          carattere = "311123"
        Case 55
          carattere = "311321"
        Case 56
          carattere = "331121"
        Case 57
          carattere = "312113"
        Case 58
          carattere = "312311"
        Case 59
          carattere = "332111"
        Case 60
          carattere = "314111"
        Case 61
          carattere = "221411"
        Case 62
          carattere = "431111"
        Case 63
          carattere = "111224"
        Case 64
          carattere = "111422"
        Case 65
          carattere = "121124"
        Case 66
          carattere = "121421"
        Case 67
          carattere = "141122"
        Case 68
          carattere = "141221"
        Case 69
          carattere = "112214"
        Case 70
          carattere = "112412"
        Case 71
          carattere = "122114"
        Case 72
          carattere = "122411"
        Case 73
          carattere = "142112"
        Case 74
          carattere = "142211"
        Case 75
          carattere = "241211"
        Case 76
          carattere = "221114"
        Case 77
          carattere = "413111"
        Case 78
          carattere = "241112"
        Case 79
          carattere = "134111"
        Case 80
          carattere = "111242"
        Case 81
          carattere = "121142"
        Case 82
          carattere = "121241"
        Case 83
          carattere = "114212"
        Case 84
          carattere = "124112"
        Case 85
          carattere = "124211"
        Case 86
          carattere = "411212"
        Case 87
          carattere = "421112"
        Case 88
          carattere = "421211"
        Case 89
          carattere = "212141"
        Case 90
          carattere = "214121"
        Case 91
          carattere = "412121"
        Case 92
          carattere = "111143"
        Case 93
          carattere = "111341"
        Case 94
          carattere = "131141"
        Case 95
          carattere = "114113"
        Case 96
          carattere = "114311"
        Case 97
          carattere = "411113"
        Case 98
          carattere = "411311"
        Case 99
          carattere = "113141"
      End Select
      If code = "A" Then
       image2 = image2 & "113141"
        code = "N"
      End If
      image2 = image2 & carattere
    End If
  End If
Next i
'inserisco il check digit e lo stop
Select Case Val(check)
  Case 0
    carattere = "212222"
  Case 1
    carattere = "222122"
  Case 2
    carattere = "222221"
  Case 3
    carattere = "121223"
  Case 4
    carattere = "121322"
  Case 5
    carattere = "131222"
  Case 6
    carattere = "122213"
  Case 7
    carattere = "122312"
  Case 8
    carattere = "132212"
  Case 9
    carattere = "221213"
  Case 10
    carattere = "221312"
  Case 11
    carattere = "231212"
  Case 12
    carattere = "112232"
  Case 13
    carattere = "122132"
  Case 14
    carattere = "122231"
  Case 15
    carattere = "113222"
  Case 16
    carattere = "123122"
  Case 17
    carattere = "123221"
  Case 18
    carattere = "223211"
  Case 19
    carattere = "221132"
  Case 20
    carattere = "221231"
  Case 21
    carattere = "213212"
  Case 22
    carattere = "323112"
  Case 23
    carattere = "312131"
  Case 24
    carattere = "311222"
  Case 25
    carattere = "321122"
  Case 26
    carattere = "321221"
  Case 27
    carattere = "312212"
  Case 28
    carattere = "322112"
  Case 29
    carattere = "322211"
  Case 30
    carattere = "212123"
  Case 31
    carattere = "212321"
  Case 32
    carattere = "232121"
  Case 33
    carattere = "111323"
  Case 34
    carattere = "131123"
  Case 35
    carattere = "131321"
  Case 36
    carattere = "112313"
  Case 37
    carattere = "132113"
  Case 38
    carattere = "132311"
  Case 39
    carattere = "211313"
  Case 40
    carattere = "231113"
  Case 41
    carattere = "231311"
  Case 42
    carattere = "112133"
  Case 43
    carattere = "112331"
  Case 44
    carattere = "132131"
  Case 45
    carattere = "113123"
  Case 46
    carattere = "113321"
  Case 47
    carattere = "133121"
  Case 48
    carattere = "313121"
  Case 49
    carattere = "211331"
  Case 50
    carattere = "231131"
  Case 51
    carattere = "213113"
  Case 52
    carattere = "213311"
  Case 53
    carattere = "213131"
  Case 54
    carattere = "311123"
  Case 55
    carattere = "311321"
  Case 56
    carattere = "331121"
  Case 57
    carattere = "312113"
  Case 58
    carattere = "312311"
  Case 59
    carattere = "332111"
  Case 60
    carattere = "314111"
  Case 61
    carattere = "221411"
  Case 62
    carattere = "431111"
  Case 63
    carattere = "111224"
  Case 64
    carattere = "111422"
  Case 65
    carattere = "121124"
  Case 66
    carattere = "121421"
  Case 67
    carattere = "141122"
  Case 68
    carattere = "141221"
  Case 69
    carattere = "112214"
  Case 70
    carattere = "112412"
  Case 71
    carattere = "122114"
  Case 72
    carattere = "122411"
  Case 73
    carattere = "142112"
  Case 74
    carattere = "142211"
  Case 75
    carattere = "241211"
  Case 76
    carattere = "221114"
  Case 77
    carattere = "413111"
  Case 78
    carattere = "241112"
  Case 79
    carattere = "134111"
  Case 80
    carattere = "111242"
  Case 81
    carattere = "121142"
  Case 82
    carattere = "121241"
  Case 83
    carattere = "114212"
  Case 84
    carattere = "124112"
  Case 85
    carattere = "124211"
  Case 86
    carattere = "411212"
  Case 87
    carattere = "421112"
  Case 88
    carattere = "421211"
  Case 89
    carattere = "212141"
  Case 90
    carattere = "214121"
  Case 91
    carattere = "412121"
  Case 92
    carattere = "111143"
  Case 93
    carattere = "111341"
  Case 94
    carattere = "131141"
  Case 95
    carattere = "114113"
  Case 96
    carattere = "114311"
  Case 97
    carattere = "411113"
  Case 98
    carattere = "411311"
  Case 99
    carattere = "113141"
  Case 100
    carattere = "114131"
  Case 101
    carattere = "311141"
  Case 102
    carattere = "411131"
End Select
image2 = image2 & carattere & "2331112"
'Determinazione della larghezza del modulo
mod_width = mx / (Int(Len(image2) / 6) * 11 + 2)
'Stampa della codifica
StartPoint = sx
For i = 1 To Len(image2)
  bar_width = mod_width * Val(Mid$(image2, i, 1))
  Select Case i Mod 2
    Case 0
      Color = 16777215
    Case 1
      Color = 0
  End Select
  Printer.Line (StartPoint, sy)-Step(bar_width, my), Color, BF
  StartPoint = StartPoint + bar_width
Next i
End Function

 come devo fare a farlo funzionare ?
A parte il fatto che i codici a barre li generi in un terzo del tempo
con i font, ma credi davvero che qualcuno si mettera' a spulciare un
migliaio di righe di codice per rispondere?
Cia' 
Max De Poli

 ha scritto nel messaggio
news:c2f1e49e.0203...@posting.google.com...

Permettimi di dissentire. Il codabar 128 non lo generi con i font.
Al limite puoi generare il Code 39.
E' probabile che nessuno si metterà a spulciare il codice.
Forse lo farò io più tardi, se ho tempo..
Giorgio

 ha scritto nel
messaggio news:a6pok8$k1c$1...@pinco.nettuno.it...

c'e' un ActiveX fantastico per fare tutti e dico tutti i tipi di barcode si
chiama Creabar  (
www.compuart.it
) e costa una fischiata, nella demo e'
funzionante l' EAN se mi ricordo bene.
Ciao


Il mio problema è quello che devo generare un codice a barre di questo tipo:
" AA00016526996 0 "  lo 0 è il check-digit
Ora  ho un codice che mi chrea un CodeBar13  ma non me lo fa con le lettere
e tantomento digitando 13 caratteri che poi successivamente debba creare il
check-digit.
Spero di essermi spiegato, magari se c'è chi è a conoscenza di un semplice
ocx e dove posso reperirlo magari lo provo.
Grazie Max

 ha scritto nel messaggio
news:W0_j8.14875$1S3.4...@twister1.libero.it...

Da quello che so io, il CodaBar non accetta altro che cifre.
Se hai bisogno di inserire cifre e caratteri alfabetici, credo che tu debba
usare il Code39, sai?
Giorgio.

 
Per generare dei codici a barre hai bisogno di un font e, in alcuni
casi, di una funzione di codifica.
I font vanno installati come qualsiasi altro font, prima di poter essere
usati.
Per i codici alfanumerici (tipo Code 3 of 9, anche detto Code39) basta
il font. Ad una casella di testo assegni la "string" che vuoi
rappresentare in barre e imposti la proprietą font con il nome del font
che userai.
Per i codici pretamente numerici(2 of 5, vari EAN, ecc.) oppure
"interleaved" (numerici o alfanumerici che siano), la stringa/numero che
si vuole rappresentare deve subire una elaborazione prima di poter
essere convertita in barre. Allora devi assegnare alla solita casella di
testo l'output della funzione di codifica ed impostare la proprietą font
con il font necessario.
Cioč:
form1.c_barre = func_Codifica_Codice_a_Barre( strMyString )
Nel tuo caso specifico, se intendevi chiedere che cosa sono i parametri
della funzione MB_128, scoprirlo vuol dire analizzare il codice ed
essere abbastanza esperto di codici a barre per conoscere questo in
particolare. Non credo che in questo n.g. troverai persone con ENTRAMBE
le caratterische.
Saluti,
Gilberto
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in message
news:W0_j8.14875$1S3.4...@twister1.libero.it...

io uso un ocx con cui mi trovo molto bene...
non so se fa al caso tuo, cmq l'indirizzo è:
www.tec-it.co.at
la valutazione non ha limiti d tempo, solo che se non registrato t da
barcode con una riga trasversale...
se sono abba grossi, non t serve registrare ;-))
scherzi a parte, non costa un'esagerazione e stampa qualsiasi tipo d
barcode.
ciao!
    paolo


L'analisi sommaria del codice che ho fatto sembra portare alla conclusione
che la funzione generi un barcode in fase di stampa utilizzando l'oggetto
printer di VisualBasic, stampando alle coordinate (sx,sy).
Pracicamente viene generato al volo, utilizzando delle linee a spessore
variabile, il barcode corrispondente alla stringa passata come primo
parametro.
Non essendo disponibile l'oggetto printer in Access, il codice non č
utilizzabile, anche se il sorgente potrebbe essere modificato per disegnare
in un report dei rettangoli con opportuno spessore.
Magari nel fine settimana lo vedo meglio.
Giorgio