QR Code

Créer dynamiquement des QR Codes en image...

Désolé, pas de code VBA pour créer directement des QR Codes… En effet, il existe de nombreux web services qui font ça très bien et j’avais un peu la flemme de réinventer la roue !

Le principe est de passer les paramètres du QR Code dans l’URL du web service. celui-ci retourne l’image du QR Code correspondant qui sera enregistrée localement.

Le code VBA qui réalise ces actions :

'Voir tutoriel d'arkham46
Public Function DownloadHTTP(ByVal URL As String, ByVal Destination As String) As Boolean
   On Error GoTo catch
   Dim oWinHTTP As Object
   Dim fic As Integer
   Dim buffer() As Byte

   Set oWinHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
   oWinHTTP.Open "GET", URL, False
   oWinHTTP.send

   If oWinHTTP.Status = 200 Then
      fic = FreeFile
      Open Destination For Binary Lock Read Write As #fic
      buffer = oWinHTTP.ResponseBody
      Put #fic, , buffer

      Close #fic
      DownloadHTTP = True
   Else
      MsgBox "Statut retourné par le service : " & oWinHTTP.Status & vbCrLf & _
             "Description : " & oWinHTTP.StatusText, vbExclamation, "DownloadHTTP()..."
   End If

finally:
   Erase buffer
   Set oWinHTTP = Nothing
   Exit Function
catch:
   MsgBox "Erreur n°" & Err.Number & vbCrLf & "Description : " & Err.Description, vbExclamation, "DownloadHTTP()..."
   Close   'ferme tous les descripteurs ouverts
  Resume finally
End Function

Ci-joint, le lien du web service qui me permet de créer le QR Code. La page explique les différents paramètres à transmettre.

Exemple
Coller la ligne suivante dans la fenêtre Exécution de VBE, placer le curseur sur la ligne collée puis appuyer sur ‘Entrée’ pour créer le QR Code.

?downloadhttp("http://qrickit.com/api/qr?d=Créer dynamiquement des QR Codes en image...&addtext=Test&txtcolor=fb660a&fgdcolor=fb660a&bgdcolor=000000&qrsize=300&t=p&e=m",CurrentProject.Path &"\QRCode.png")
'---

Si tout ce passe bien la fonction doit retourner ‘Vrai’ et l’image ‘QRCode.png’ est créée dans le répertoire de votre base de données.
 
Remarque
On peut encoder en UTF-8 le texte du QR Code avant de le passer dans l’URL pour éviter tout problème avec les caractères interdits. Voir le billet ici.

@+

Philippe

Laisser un commentaire