Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
I - Introduction..............................................................................................................................................................3 II - Gnralits............................................................................................................................................................. 3 II-A - Les codes-barres................................................................................................................................................3 II-B - Lecture des codes-barres...................................................................................................................................4 III - Le code-barres 128...............................................................................................................................................4 III-A - Les diffrents caractres du code............................................................................................................... 4 III-B - La stucture du code..................................................................................................................................... 5 III-C - Les modules.................................................................................................................................................5 III-D - Optimisation du code................................................................................................................................... 6 III-E - Le caractre de contrle..............................................................................................................................7 III-F - Les spcifications......................................................................................................................................... 7 III-F-1 - Lgende du code-barres..................................................................................................................... 8 III-F-2 - Largeur des modules et du code-barre...............................................................................................8 III-F-3 - Hauteur des modules.......................................................................................................................... 8 III-F-4 - Specifications de vos propres codes-barres....................................................................................... 8 IV - L'application de cration de code-barres............................................................................................................. 9 IV-A - Table.............................................................................................................................................................9 IV-B - Formulaire.................................................................................................................................................. 10 IV-C - Etat.............................................................................................................................................................11 IV-D - Modules de code....................................................................................................................................... 12 IV-D-1 - Le module du formulaire...................................................................................................................12 IV-D-2 - Le module de l'tat........................................................................................................................... 15 IV-D-3 - Les fonctions de codage et de dessin du code-barres.................................................................... 16 V - Conclusion........................................................................................................................................................... 21 VI - Remerciements................................................................................................................................................... 21 VII - Liens...................................................................................................................................................................21 VIII - Tlchargement................................................................................................................................................ 21 IX - Annexe - composition des tables du code 128..................................................................................................22
-2Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
I - Introduction
Les questions touchant la cration de codes-barres sont relativement frquentes sur le forum Access. Bien que plusieurs rponses aient t donnes, nombre de discussions demeurent non rsolues. Dans la plupart des cas, ce n'est pas faute d'une bonne solution, mais plutt l'absence de dtails et de prcisions qui ont fait que beaucoup de membres ont abandonn cette ide. Cet article a pour but de vous expliquer comment crer des codes-barres, sans utiliser un contrle ActiveX spcifique ni de police de caractres spciale, mais uniquement avec Visual Basic. Pour atteindre cet objectif, de bonnes connaissances en Visual Basic sont ncessaires, ce qui rserve plutt cet article des utilisateurs ayant dj quelque exprience de la programmation avec ce language.
II - Gnralits
Le premier systme de codes-barres a t brevet en 1952. Il concernait un code ligne verticale, mais aussi de forme concentrique (en forme de cible) ainsi que le systme de lecture des donnes. Leur premire utilisation a t l'tiquetage des wagons de train, sans que le succs commercial ne soit toutefois au rendez-vous. Il faudra attendre le dbut des annes 1970 et l'invention du code UCP, Universal Product Code ou CUP en franais, utilis dans la grande distribution, pour que leur usage se gnralise. Aujourd'hui, ils sont utiliss dans de nombreux domaines d'activit, par exemple : code 11 : tlcommunications ; code 39 : industrie automobile, pharmacode France, arme amricaine ; code 128 : transports, sant, pices dtaches pour le secteur automobile.
Code-barres 128
Code-barres Aztec
-3Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Stylo optique
Douchette
Scanner
-4Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Contenu des tables : 128A : les chiffres, les lettres majuscules, des caractres de ponctuations, des codes de contrle et des codes spciaux ; 128B : les chiffres, les lettres majuscules et minuscules, des caractres de ponctuations et des codes spciaux ; 128C : des paires de chiffres, permettant de doubler la densit des caractres numriques, et des codes spciaux.
La table reprsentant les 3 ensembles de caractres du code est disponible en annexe. Dans cet article, nous nous limiterons l'usage des ensembles de caractres B et C.
Les marges ou "quiet zone" gauche et droite du code doivent avoir au moins 10 modules d'paisseur ; le caractre de dmarrage dtermine la table utilise au dpart ; le caractre, ou cl, de contrle est obligatoire. Le dtail du calcul est expos ci-aprs ; le caractre d'arrt est identique, quelque soit les ensembles de caractres utiliss.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
En effet, dans le premier cas, on commence en effet utiliser l'ensemble C, puis on utilise 1 caractre de permutation pour passer l'ensemble B pour coder la suite des donnes si ncessaire. Dans le deuxime cas, on commence par l'ensemble B, puis 1 caractre est utilis pour passer vers l'ensemble C. Enfin, dans le troisime cas de figure, 2 caractres sont ncessaires pour passer de l'ensemble B vers l'ensemble C, puis nouveau vers l'ensemble B. A titre d'exemple, essayons de crer le code pour la donne ABC2011, tout d'abord sans optimisation de l'encodage, c'est--dire en ayant recours uniquement l'ensemble de caractres B. Le rsultat obtenu est le suivant : Caractre ASCII Caractre Valeur Start B 104 A A 33 B B 34 C C 35 2 2 18 0 0 16 1 1 17 1 1 17
Reprenons la mme donne, en optimisant le code cette fois-ci, c'est--dire en ayant recours aux ensembles de caractres B et C. Le rsultat est naturellement diffrent, les 4 caractres numriques tant cods avec 2 caractres uniquement : Caractre ASCII Caractre Valeur Start B 104 A A 33 B B 34 C C 35 Table C 99 4 20 20 + 11 11
On voit bien l'intrt d'optimiser l'encodage, le recours ce procd permettant de produire des codes trs denses s'agissant de donnes numriques. Dans les deux exemples ci-dessus, le caractre de contrle et le caractre d'arrt ne sont pas encore compris.
-6Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Le rsultat de l'addition des produits, 872 dans cet exemple, est divis par 103, le reste de la division tant la valeur du caractre de contrle, soit 48. Ensuite, cette valeur doit tre convertie en caractre ASCII en appliquant la mthode suivante : si elle est comprise entre 0 et 94, on ajoute 32 ; si elle est suprieure 94, on ajoute 105.
Ici, la valeur tant infrieure 95, nous ajoutons 32. Le rsultat, soit 80, donne le caractre ASCII "P". Il ne reste alors plus qu' ajouter ce caractre de contrle et le caractre d'arrt pour complter le code : Caractre ASCII Caractre Start B A A B B C C Table C 4 20 + 11 P P Stop
Nous connaissons maintenant l'intgralit des caractres ASCII que nous devons convertir en barres et espaces pour obtenir le code-barres de la donne ABC2011.
-7Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
-8Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
IV-A - Table
On commence par crer une table tblCodesBarres avec 3 champs :
IdCodesBarres, de type NumroAuto, qui est la cl primaire de la table ; CodesBarres, de type Mmo, pour recevoir les modules du code-barres ; Libelle, de type Texte (taille 50), pour le libell du code. Si vous vous tes certains que le nombre de modules constituant vos codes-barres sera toujours gal ou infrieur 255, vous pouvez bien sr utiliser un champ de type Texte pour le champ CodesBarres.
-9Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
IV-B - Formulaire
On peut ensuite passer la cration du formulaire frmCodeBarres et modifier les proprits qui nous intressent.
On notera principalement qu'il est indpendant, qu'il n'a pas de barres de dfilement, ni de slecteur et de diviseurs d'enregistrements. Les boutons ne sont galement pas affichs. On y place 4 zones de texte, indpendantes elles aussi : txtChaineCaractere va nous permettre de saisir la donne du code-barres ; txtEtiquetteDebut indique la position de la 1re tiquette imprimer. La proprit Valeur par dfaut de cette zone de texte est fixe 1 ; txtNbEtiquettes dfinit le nombre d'tiquettes dsirs. La proprit Valeur par dfaut de cette zone de texte est fixe 16 ; txtLargeurModules fixe la dimension X ou largeur des modules, exprime en twips. La proprit Valeur par dfaut de cette zone de texte est fixe 12.
Puis on ajoute 2 images et un bouton avec sa proprit Tranparent Oui, qu'on superpose les uns sur les autres dans cet ordre, en commenant par l'arrire-plan : imgTracageVertical ; imgTracageHorizontal ; cmdTracage.
Ces 3 trois lments vont nous permettre, sur clic du bouton cmdTracage, de slectionner le mode de Traage des tiquettes. Enfin, on rajoute 2 boutons : cmdApercuImpression ouvre l'tat rptEtiquettes en mode Aperu avant impression ; cmdFermer ferme le formulaire.
- 10 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
IV-C - Etat
Enfin, on cre un tat rptEtiquettes. Il ne prsente pas de particularit et on peut sans autre utiliser l'Assistant tiquettes en slectionnant la table tblCodesBarres comme Source. Pour l'application, le choix s'est port sur un modle de 2 tiquettes de front. Aprs ajustement manuel des dimensions, celles-ci sont d'environ 94 x 34 mm, soit 16 tiquettes au total. On y insre ensuite les champs CodeBarres et Libelle. Si le champ CodeBarres et de type Mmo, il est possible que celui ne soit pas propos par l'assistant. Il est donc ncessaire de l'ajouter manuellement par la suite en modifiant votre tat. Ensuite que quoi nous renommons les deux zones de texte, respectivement txtCodeBarres et txtLibelle. Aperu de l'tat en mode Cration :
- 11 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Il est utile de commenter 2 proprits de la zone de texte txtCodeBarres. Tout d'abord, celle-ci n'est pas visible. En effet, on ne va pas tracer le code-barres dans la zone de texte, mais bien par-dessus celle-ci, en utilisant le coin suprieur gauche comme point d'origine. La proprit Visible est fixe Non. D'autre part, il est possible de tracer des codes-barres de hauteur proportionnelle la longueur du code ou de taille fixe. Cette dernire option implique que les proprits Auto extensible et Auto rductible soient fixes Non galement. Proprits de la zone de texte :
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Code
Private Sub cmdTracage_Click() On Error GoTo GestionErreurs 'Modification du mode de traage des tiquettes avec affichage de l'image correspondante If lngTracageColonne = 1953 Then Me.imgTracageVertical.Visible = True Me.imgTracageHorizontal.Visible = False Me.lblTracageColonnes.Caption = "Vers le bas, ensuite vers la droite" lngTracageColonne = 1954 Else Me.imgTracageHorizontal.Visible = True Me.imgTracageVertical.Visible = False Me.lblTracageColonnes.Caption = "Vers la droite, ensuite vers le bas" lngTracageColonne = 1953 End If 'Sortie de la procdure Exit Sub GestionErreurs: 'Affichage d'un message MsgBox "Une erreur inattendue s'est produite !" & vbNewLine & "Erreur no : " _ & Err.Number & vbNewLine & Err.Description, vbCritical, "Erreur !" End Sub
Code
Private Sub cmdApercuImpression_Click() 'Dclaration des objets et des variables Dim db As DAO.Database Dim rst As DAO.Recordset Set db = CurrentDb Set rst = db.OpenRecordset("select * from tblCodesBarres") Dim Dim Dim Dim Dim strChaine As String strCaractere As String strBarres strCodeBarres As String i As Long
On Error GoTo GestionErreurs 'La largeur des modules est assigne la variable lngTailleModule lngTailleModule = Me.txtLargeurModules 'Suppression des enregistrements de la table tblCodesBarres CurrentDb.Execute "DELETE tblCodesBarres.CodeBarres FROM tblCodesBarres;", dbFailOnError 'Codage des donnes strChaine = Code128(Me.txtChaineCaractere) For i = 1 To Len(strChaine) strCaractere = Mid(strChaine, i, 1) strBarres = MotifCodeBarres128(strCaractere) strCodeBarres = strCodeBarres & strBarres Next i 'Calcul de la hauteur des modules par rapport la largeur du code-barres lngLargeurCodeBarres = Len(strCodeBarres) * Me.txtLargeurModules Select Case lngLargeurCodeBarres '15 % de la longueur excde 567 twips (1 cm) Case Is > 3780 'Hauteur maximale des modules gale 567 twips lngHauteurModule = 567 '15 % de la longeur est infrieur 340 twips (0.6 cm) - 13 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Code
Case Is < 2268 'Hauteur minimale des modules, 340 twips lngHauteurModule = 340 Case Else 'La hauteur des modules est gale 15 % de la longueur du code-barres lngHauteurModule = Int((lngLargeurCodeBarres / 100 * 15) + 1 * 0.5) End Select MsgBox lngHauteurModule 'Ajout des "Quiet zone" en dbut et en fin du code-barres strCodeBarres = "00000000000" & strCodeBarres & "00000000000" 'Largeur du code-barres, "Quiet zone" comprises lngLargeurCodeBarres = Len(strCodeBarres) * Me.txtLargeurModules i = 0 'Ajout d'enregistrements vides en fonction de l'tiquette de dbut slectionne For i = 1 To Me.txtEtiquetteDebut - 1 rst.AddNew rst("CodeBarres") = Null rst("Libelle") = Null rst.Update Next i 'Ajout du nombre d'enregistrements correspondants au nombre d'tiquettes dsires i = 0 For i = 1 To Me.txtNbEtiquettes rst.AddNew rst("CodeBarres") = strCodeBarres rst("Libelle") = Me.txtChaineCaractere rst.Update Next i 'Ouverture de l'tat rptEtiquettes en le maximisant et en l'ajustant la fentre Access DoCmd.OpenReport "rptEtiquettes", acViewPreview DoCmd.Maximize DoCmd.RunCommand acCmdFitToWindow
SortieApercuImpression: 'Libration des objets rst.Close db.Close Set rst = Nothing Set db = Nothing 'Sortie de la procdure Exit Sub GestionErreurs: Select Case Err.Number 'L'ouverture de l'tat t annule Case 2501 'Sortie de la procdure Resume SortieApercuImpression 'La chane de caractre est nulle Case 513 'Affichage d'un message MsgBox "La chane de caractres n'est pas valide (Null) !" & vbNewLine & vbNewLine & _ "Veuillez vrifiez votre saisie.", vbCritical, "Erreur !" 'Sortie de la procdure Resume SortieApercuImpression 'Le code contient des caractres n'appartenant pas la table ASCII de base Case 514 'Affichage d'un message MsgBox "La chane de caractres n'est pas valide !" & vbNewLine & vbNewLine & _ "Elle contient des caractres n'appartenant pas la table" & vbNewLine & _ - 14 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Code
"ASCII de base, par exemple des caractres accentus.", vbCritical, "Erreur !" 'Sortie de la procdure Resume SortieApercuImpression Case Else 'Affichage d'un message MsgBox "Une erreur inattendue s'est produite !" & vbNewLine & vbNewLine & _ "Source : " & Err.Source & vbNewLine & _ "Erreur no : " & Err.Number & vbNewLine & _ "Description : " & Err.Description, vbCritical, "Erreur !" 'Sortie de la procdure Resume SortieApercuImpression End Select
End Sub
Code
Private Sub cmdFermer_Click() On Error GoTo GestionErreurs 'Fermeture du formulaire DoCmd.Close 'Sortie de la procdure Exit Sub GestionErreurs: 'Affichage d'un message MsgBox "Une erreur inattendue s'est produite !" & vbNewLine & "Erreur no : " _ & Err.Number & vbNewLine & Err.Description, vbCritical, "Erreur !" End Sub
- 15 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Code Code
End Sub
Private Sub Detail_Format(cancel As Integer, FormatCount As Integer) On Error GoTo GestionErreurs 'Appel de la fonction de traage des codes-barres TracerMotifCodeBarres128 Me.txtCodeBarres, Me 'Sortie de la procdure Exit Sub GestionErreurs: 'Affichage d'un message MsgBox "Une erreur inattendue s'est produite !" & vbNewLine & "Erreur no : " _ & Err.Number & vbNewLine & Err.Description, vbCritical, "Erreur !" End Sub
Code
Public Function Code128(strChaine) 'Dclaration des variables Dim i As Long Dim lngCaractereControle As Long Dim strMini As String Dim strDummy As String Dim blnTableB As Boolean On Error GoTo GestionErreurs 'Provoque une erreur transmise la procdure appelante si la chane est nulle If IsNull(strChaine) Then Err.Raise 513 'Calculer la chaine de code en optimisant l'usage des tables B et C Code128 = Null blnTableB = True - 16 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Code
i = 1 'i devient l'index sur la chane Do While i <= Len(strChaine) If blnTableB Then 'Voir si intressant de passer en table C 'Oui pour 4 chiffres au dbut ou la fin, sinon pour 6 chiffres strMini = IIf(i = 1 Or i + 3 = Len(strChaine), 4, 6) GoSub TestNum If strMini < 0 Then 'Choix table C If i = 1 Then 'Dbuter sur table C Code128 = Chr(210) Else 'Commuter sur table C Code128 = Code128 & Chr(204) End If blnTableB = False Else If i = 1 Then Code128 = Chr(209) 'Dbuter sur table B End If End If If Not blnTableB Then 'On est sur la table C, essayer de traiter 2 chiffres strMini = 2 GoSub TestNum If strMini < 0 Then 'OK pour 2 chiffres, les traiter strDummy = Val(Mid(strChaine, i, 2)) strDummy = IIf(strDummy < 95, strDummy + 32, strDummy + 105) Code128 = Code128 & Chr(strDummy) i = i + 2 Else 'On n'a pas 2 chiffres, repasser en table B Code128 = Code128 & Chr(205) blnTableB = True End If End If If blnTableB Then 'Traiter 1 caractre en table B Code128 = Code128 & Mid$(strChaine, i, 1) i = i + 1 End If Loop 'Calcul de la cl de contrle For i = 1 To Len(Code128) strDummy = Asc(Mid(Code128, i, 1)) strDummy = IIf(strDummy < 127, strDummy - 32, strDummy - 105) If i = 1 Then lngCaractereControle = strDummy lngCaractereControle = (lngCaractereControle + (i - 1) * strDummy) Mod 103 Next 'Calcul du code ASCII de la cl lngCaractereControle = IIf(lngCaractereControle < 95, lngCaractereControle + 32, lngCaractereControle + 105) 'Ajout de la cl et du STOP Code128 = Code128 & Chr(lngCaractereControle) & Chr(211) 'Sortie de la fonction Exit Function TestNum: 'Si les strMini caractres partir de i sont numriques, alors strMini=0 strMini = strMini - 1 If i + strMini <= Len(strChaine) Then Do While strMini >= 0 If Asc(Mid$(strChaine, i + strMini, 1)) < 48 Or Asc(Mid$(strChaine, i + strMini, 1)) > 57 Then Exit Do strMini = strMini - 1 Loop End If Return GestionErreurs: 'Transmet l'erreur la procdure appelante - 17 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Code
End Function
Code
Public Function MotifCodeBarres128(strChaine As String) As String On Error GoTo GestionErreurs Select Case Asc(strChaine) Case 32: MotifCodeBarres128 = "11011001100" Case 33: MotifCodeBarres128 Case 34: MotifCodeBarres128 Case 35: MotifCodeBarres128 Case 36: MotifCodeBarres128 Case 37: MotifCodeBarres128 Case 38: MotifCodeBarres128 Case 39: MotifCodeBarres128 Case 40: MotifCodeBarres128 Case 41: MotifCodeBarres128 Case 42: MotifCodeBarres128 Case 43: MotifCodeBarres128 Case 44: MotifCodeBarres128 Case 45: MotifCodeBarres128 Case 46: MotifCodeBarres128 Case 47: MotifCodeBarres128 Case 48: MotifCodeBarres128 Case 49: MotifCodeBarres128 Case 50: MotifCodeBarres128 Case 51: MotifCodeBarres128 Case 52: MotifCodeBarres128 Case 53: MotifCodeBarres128 Case 54: MotifCodeBarres128 Case 55: MotifCodeBarres128 Case 56: MotifCodeBarres128 Case 57: MotifCodeBarres128 Case 58: MotifCodeBarres128 Case 59: MotifCodeBarres128 Case 60: MotifCodeBarres128 Case 61: MotifCodeBarres128 Case 62: MotifCodeBarres128 Case 63: MotifCodeBarres128 Case 64: MotifCodeBarres128 Case 65: MotifCodeBarres128 Case 66: MotifCodeBarres128 Case 67: MotifCodeBarres128 Case 68: MotifCodeBarres128 Case 69: MotifCodeBarres128 Case 70: MotifCodeBarres128 Case 71: MotifCodeBarres128 Case 72: MotifCodeBarres128 Case 73: MotifCodeBarres128 Case 74: MotifCodeBarres128 Case 75: MotifCodeBarres128 Case 76: MotifCodeBarres128 Case 77: MotifCodeBarres128 Case 78: MotifCodeBarres128 Case 79: MotifCodeBarres128 Case 80: MotifCodeBarres128 Case 81: MotifCodeBarres128 Case 82: MotifCodeBarres128 Case 83: MotifCodeBarres128 Case 84: MotifCodeBarres128 Case 85: MotifCodeBarres128 Case 86: MotifCodeBarres128 Case 87: MotifCodeBarres128
' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Caractre = Espace / Table B = Espace "11001101100" ' Caractre = ! / Table "11001100110" ' Caractre = " / Table "10010011000" ' Caractre = # / Table "10010001100" ' Caractre = $ / Table "10001001100" ' Caractre = % / Table "10011001000" ' Caractre = & / Table "10011000100" ' Caractre = ' / Table "10001100100" ' Caractre = ( / Table "11001001000" ' Caractre = ) / Table "11001000100" ' Caractre = * / Table "11000100100" ' Caractre = + / Table "10110011100" ' Caractre = , / Table "10011011100" ' Caractre = - / Table "10011001110" ' Caractre = . / Table "10111001100" ' Caractre = / / Table "10011101100" ' Caractre = 0 / Table "10011100110" ' Caractre = 1 / Table "11001110010" ' Caractre = 2 / Table "11001011100" ' Caractre = 3 / Table "11001001110" ' Caractre = 4 / Table "11011100100" ' Caractre = 5 / Table "11001110100" ' Caractre = 6 / Table "11101101110" ' Caractre = 7 / Table "11101001100" ' Caractre = 8 / Table "11100101100" ' Caractre = 9 / Table "11100100110" ' Caractre = : / Table "11101100100" ' Caractre = ; / Table "11100110100" ' Caractre = < / Table "11100110010" ' Caractre = = / Table "11011011000" ' Caractre = > / Table "11011000110" ' Caractre = ? / Table "11000110110" ' Caractre = @ / Table "10100011000" ' Caractre = A / Table "10001011000" ' Caractre = B / Table "10001000110" ' Caractre = C / Table "10110001000" ' Caractre = D / Table "10001101000" ' Caractre = E / Table "10001100010" ' Caractre = F / Table "11010001000" ' Caractre = G / Table "11000101000" ' Caractre = H / Table "11000100010" ' Caractre = I / Table "10110111000" ' Caractre = J / Table "10110001110" ' Caractre = K / Table "10001101110" ' Caractre = L / Table "10111011000" ' Caractre = M / Table "10111000110" ' Caractre = N / Table "10001110110" ' Caractre = O / Table "11101110110" ' Caractre = P / Table "11010001110" ' Caractre = Q / Table "11000101110" ' Caractre = R / Table "11011101000" ' Caractre = S / Table "11011100010" ' Caractre = T / Table "11011101110" ' Caractre = U / Table "11101011000" ' Caractre = V / Table "11101000110" ' Caractre = W / Table
/ B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B
C = 00 Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C Table C
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
- 18 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Code
Case 88: MotifCodeBarres128 = "11100010110" ' Caractre = X / Table B = X / Table C = 56 Case 89: MotifCodeBarres128 = "11101101000" ' Caractre = Y / Table B = Y / Table C = 57 Case 90: MotifCodeBarres128 = "11101100010" ' Caractre = Z / Table B = Z / Table C = 58 Case 91: MotifCodeBarres128 = "11100011010" ' Caractre = [ / Table B = [ / Table C = 59 Case 92: MotifCodeBarres128 = "11101111010" ' Caractre = \ / Table B = \ / Table C = 60 Case 93: MotifCodeBarres128 = "11001000010" ' Caractre = ] / Table B = ] / Table C = 61 Case 94: MotifCodeBarres128 = "11110001010" ' Caractre = ^ / Table B = ^ / Table C = 62 Case 95: MotifCodeBarres128 = "10100110000" ' Caractre = _ / Table B = _ / Table C = 63 Case 96: MotifCodeBarres128 = "10100001100" ' Caractre = ` / Table B = ` / Table C = 64 Case 97: MotifCodeBarres128 = "10010110000" ' Caractre = a / Table B = a / Table C = 65 Case 98: MotifCodeBarres128 = "10010000110" ' Caractre = b / Table B = b / Table C = 66 Case 99: MotifCodeBarres128 = "10000101100" ' Caractre = c / Table B = c / Table C = 67 Case 100: MotifCodeBarres128 = "10000100110" ' Caractre = d / Table B = d / Table C = 68 Case 101: MotifCodeBarres128 = "10110010000" ' Caractre = e / Table B = e / Table C = 69 Case 102: MotifCodeBarres128 = "10110000100" ' Caractre = f / Table B = f / Table C = 70 Case 103: MotifCodeBarres128 = "10011010000" ' Caractre = g / Table B = g / Table C = 71 Case 104: MotifCodeBarres128 = "10011000010" ' Caractre = h / Table B = h / Table C = 72 Case 105: MotifCodeBarres128 = "10000110100" ' Caractre = i / Table B = i / Table C = 73 Case 106: MotifCodeBarres128 = "10000110010" ' Caractre = j / Table B = j / Table C = 74 Case 107: MotifCodeBarres128 = "11000010010" ' Caractre = k / Table B = k / Table C = 75 Case 108: MotifCodeBarres128 = "11001010000" ' Caractre = l / Table B = l / Table C = 76 Case 109: MotifCodeBarres128 = "11110111010" ' Caractre = m / Table B = m / Table C = 77 Case 110: MotifCodeBarres128 = "11000010100" ' Caractre = n / Table B = n / Table C = 78 Case 111: MotifCodeBarres128 = "10001111010" ' Caractre = o / Table B = o / Table C = 79 Case 112: MotifCodeBarres128 = "10100111100" ' Caractre = p / Table B = p / Table C = 80 Case 113: MotifCodeBarres128 = "10010111100" ' Caractre = q / Table B = q / Table C = 81 Case 114: MotifCodeBarres128 = "10010011110" ' Caractre = r / Table B = r / Table C = 82 Case 115: MotifCodeBarres128 = "10111100100" ' Caractre = s / Table B = s / Table C = 83 Case 116: MotifCodeBarres128 = "10011110100" ' Caractre = t / Table B = t / Table C = 84 Case 117: MotifCodeBarres128 = "10011110010" ' Caractre = u / Table B = u / Table C = 85 Case 118: MotifCodeBarres128 = "11110100100" ' Caractre = v / Table B = v / Table C = 86 Case 119: MotifCodeBarres128 = "11110010100" ' Caractre = w / Table B = w / Table C = 87 Case 120: MotifCodeBarres128 = "11110010010" ' Caractre = x / Table B = x / Table C = 88 Case 121: MotifCodeBarres128 = "11011011110" ' Caractre = y / Table B = y / Table C = 89 Case 122: MotifCodeBarres128 = "11011110110" ' Caractre = z / Table B = z / Table C = 90 Case 123: MotifCodeBarres128 = "11110110110" ' Caractre = { / Table B = { / Table C = 91 Case 124: MotifCodeBarres128 = "10101111000" ' Caractre = | / Table B = | / Table C = 92 Case 125: MotifCodeBarres128 = "10100011110" ' Caractre = } / Table B = } / Table C = 93 Case 126: MotifCodeBarres128 = "10001011110" ' Caractre = ~ / Table B = ~ / Table C = 94 Case 200: MotifCodeBarres128 = "10111101000" ' Caractre = - Table B = Del / Table C = 95 Case 201: MotifCodeBarres128 = "10111100010" ' Caractre = / Table B = Fnc 3 / Table C = 96 Case 202: MotifCodeBarres128 = "11110101000" ' Caractre = / Table B = Fnc 2 / Table C = 97 Case 203: MotifCodeBarres128 = "11110100010" ' Caractre = / Table B = Shift / Table C = 98 Case 204: MotifCodeBarres128 = "10111011110" ' Caractre = - Table B = Table C / Table C = 99 Case 205: MotifCodeBarres128 = "10111101110" ' Caractre = - Table B = Fnc 4 / Table C = Table B Case 206: MotifCodeBarres128 = "11101011110" ' Caractre = - Table B = Table A / Table C = Table A Case 207: MotifCodeBarres128 = "11110101110" ' Caractre = - Table B = Fnc 1 / Table C = Fnc 1 Case 208: MotifCodeBarres128 = "11010000100" ' Caractre = - Table B = Start A / Table C = Start A Case 209: MotifCodeBarres128 = "11010010000" ' Caractre = - Table B = Start B / Table C = Start B Case 210: MotifCodeBarres128 = "11010011100" ' Caractre = - Table B = Start C / Table C = Start C Case 211: MotifCodeBarres128 = "1100011101011" ' Caractre = - Table B = Stop / Table C = Stop Case Else: Err.Raise 514 End Select 'Sortie de la fonction Exit Function
- 19 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Code Code
End Function
Public Function TracerMotifCodeBarres128(Ctrl As Control, rpt As Report) 'Dclaration des variables 'Chane complte des modules du code-barres Dim strCodeBarres As String 'Type d'un module : 1 = barre / 0 = espace Dim strTypeModule As String 'Variable de compteur Dim i As Long 'Largeur de la zone de texte Dim sngLargeurZoneTexte As Single 'Valeur de la marge gauche (pour centrage) en twips Dim sngMargeGauche As Single 'Coordonne (X1) du point de dpart des barres et des espaces Dim sngX1 As Single 'Coordonne (X2) du point de dpart des barres et des espaces Dim sngY1 As Single 'Coordonne (Y2) du point d'arrive des barres et des espaces Dim sngY2 As Single On Error GoTo GestionErreurs 'Assignation de la chane de caractres du code-barres la variable If Not IsNull(Ctrl) Then strCodeBarres = Ctrl Else Exit Function End If 'Initialisation des coordonnes X1, Y1, Y2 sngX1 = Ctrl.Left sngY1 = Ctrl.Top 'La hauteur des modules est dfinie par la hauteur de la zone de texte txtCodeBarres sngY2 = Ctrl.Height 'La hauteur des modules est calcule en fonction de la largeur du code-barres 'sngY2 = lngHauteurModule 'Calcul de la valeur de la marge appliquer gauche pour le centrage du code-barres sngLargeurZoneTexte = Ctrl.Width sngMargeGauche = Int((sngLargeurZoneTexte - (Len(strCodeBarres) * lngTailleModule)) / 2) 'Dcalage de la valeur de la coordonne X1 pour le centrage du code-barres sngX1 = sngX1 + sngMargeGauche 'Traage du code-barres For i = 1 To Len(strCodeBarres) 'Type de module, barre ou espace, tracer strTypeModule = Mid(strCodeBarres, i, 1) Select Case strTypeModule Case "1" 'Traage d'une barre rpt.Line (sngX1, sngY1)-Step(lngTailleModule, sngY2), CouleurBarre, BF sngX1 = sngX1 + lngTailleModule Case "0" 'Traage d'un espace rpt.Line (sngX1, sngY1)-Step(lngTailleModule, sngY2), CouleurEspace, BF sngX1 = sngX1 + lngTailleModule End Select Next i 'Sortie de la fonction Exit Function GestionErreurs:
- 20 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Code
'Affichage d'un message MsgBox "Une erreur inattendue s'est produite !" & vbNewLine & "Erreur no : " _ & Err.Number & vbNewLine & Err.Description, vbCritical, "Erreur !" End Function
V - Conclusion
Il ne s'avre donc pas trs compliqu de crer des codes-barres sans avoir recours des composants externes, que ce soit une police de caractres ou un contrle ActiveX. Les nombreux tests effectus sur ces codes-barres conus uniquement en utilisant Visual Basic ont dmontr qu'ils sont parfaitement lisibles et soutiennent aisment la comparaison avec des codes-barres imprims au moyen de police de caractres spciales. Cette solution offre en outre l'avantage de pouvoir calculer trs prcisemment la largeur et la hauteur de chaque module si ncessaire.
VI - Remerciements
Je tiens remercier tous les membres de l'quipe Office pour leurs conseils aviss. Remerciements tout particuliers GAYOT pour ses nombreux tests de lecture des codes-barres, ainsi qu' xxx pour la relecture attentive de cet article.
VII - Liens
Wikipdia, code-barres 128 Code original de la cration de codes-barres 39 avec Visual Basic Code d'optimisation des codes-barres 128
VIII - Tlchargement
Base exemple (format Access 2000) (Miroir HTTP)
- 21 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Valeur 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
Table C 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
ASCII 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 0070 0071 0072 0073 0074 0075 0076 0077 0078
Motif 11011001100 11001101100 11001100110 10010011000 10010001100 10001001100 10011001000 10011000100 10001100100 11001001000 11001000100 11000100100 10110011100 10011011100 10011001110 10111001100 10011101100 10011100110 11001110010 11001011100 11001001110 11011100100 11001110100 11101101110 11101001100 11100101100 11100100110 11101100100 11100110100 11100110010 11011011000 11011000110 11000110110 10100011000 10001011000 10001000110 10110001000 10001101000 10001100010 11010001000 11000101000 11000100010 10110111000 10110001110 10001101110 10111011000 10111000110
- 22 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Valeur 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
Table A O P Q R S T U V W X Y Z [ \ ] ^ _ NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US Fnc 3 Fnc 2
Table C 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
ASCII 0079 0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 0100 0101 0102 0103 0104 0105 0106 0107 0108 0109 0110 0111 0112 0113 0114 0115 0116 0117 0118 0119 0120 0121 0122 0123 0124 0125 0126 0200 0201 0202
Caractre O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
Motif 10001110110 11101110110 11010001110 11000101110 11011101000 11011100010 11011101110 11101011000 11101000110 11100010110 11101101000 11101100010 11100011010 11101111010 11001000010 11110001010 10100110000 10100001100 10010110000 10010000110 10000101100 10000100110 10110010000 10110000100 10011010000 10011000010 10000110100 10000110010 11000010010 11001010000 11110111010 11000010100 10001111010 10100111100 10010111100 10010011110 10111100100 10011110100 10011110010 11110100100 11110010100 11110010010 11011011110 11011110110 11110110110 10101111000 10100011110 10001011110 10111101000 10111100010 11110101000
- 23 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.
Access : crer des codes-barres avec Visual Basic par Dominique KIRCHHOFER (http://domi2.developpez.com/)
Table A Shift Table C Table B Fnc 4 Fnc 1 Start A Start B Start C Stop
Table B Shift Table C Fnc 4 Table A Fnc 1 Start A Start B Start C Stop
ASCII 0203 0204 0205 0206 0207 0208 0209 0210 0211
Caractre
Motif 11110100010 10111011110 10111101110 11101011110 11110101110 11010000100 11010010000 11010011100 1100011101011
- 24 Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2010 - - Kirchhofer Dominique. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.