как я могу снова задать вопрос о qr-коде в access и Windows 7

#ms-access #qr-code #windows-7-x64

#ms-access #qr-код #windows-7-x64

Вопрос:

мой последний вопрос был удален. тем не менее, люди ответили, спасибо, и я последовал их советам. Я нашел время, чтобы сделать это из-за праздников и Covid. У меня все еще есть одна проблема, которую я хотел бы изложить.

с помощью библиотеки QRCodeLib.xlam я создаю безупречный qr-код… к сожалению, я не могу вызвать его из Access. смотрите Код доступа ниже :

     Public Sub GenQRCode()


Dim gxlApp      As Excel.Application
Dim gxlWB       As Workbook
Dim PAYLOAD_1   As String   ' chaîne de caractères à coder
Dim strFile     As String

strFile = "D:QRCodeLibVBA-masterQRCodeLibDemo.xlsm"
PAYLOAD_1 = "SPC" amp; vbCrLf amp; _
        "0200" amp; vbCrLf amp; _
        "1" amp; vbCrLf amp; _
        "CH4431999123000889012" amp; vbCrLf amp; _
        "S" amp; vbCrLf amp; _
        "Robert Schneider AG" amp; vbCrLf amp; _
        "Via Casa Postale" amp; vbCrLf amp; "1268" amp; vbCrLf amp; _
        "2501" amp; vbCrLf amp; "Biel" amp; vbCrLf amp; _
        "CH" amp; vbCrLf amp; _
        vbCrLf amp; vbCrLf amp; vbCrLf amp; vbCrLf amp; vbCrLf amp; vbCrLf amp; vbCrLf amp; _
        "123949.75" amp; vbCrLf amp; _
        "CHF" amp; vbCrLf amp; _
        "S" amp; vbCrLf amp; _
        "Pia-Maria Rutschmann-Schnyder" amp; vbCrLf amp; _
        "Grosse Marktgasse" amp; vbCrLf amp; "28/5" amp; vbCrLf amp; _
        "9400" amp; vbCrLf amp; "Rorschach" amp; vbCrLf amp; _
        "CH" amp; vbCrLf amp; _
        "QRR" amp; vbCrLf amp; "210000000003139471430009017" amp; vbCrLf amp; _
        "Beachten sie unsere Sonderangebotswoche bis 23.02.2017!" amp; vbCrLf amp; _
        "EPD" amp; vbCrLf amp; "//S1/10/10201409/11/181105/40/0:30" amp; vbCrLf amp; _
        "eBill/B/41010560425610173"
        
Set gxlApp = CreateObject("Excel.Application")
gxlApp.Visible = True
Set gxlWB = gxlApp.Workbooks.Open(strFile, False, False)
With gxlWB
    .gettxt (PAYLOAD_1)
    .qrCode
End With
If Not (gxlWB Is Nothing) Then
    gxlWB.Close False
End If
If Not (gxlApp Is Nothing) Then
    gxlApp.Quit
End If
Set gxlWB = Nothing
Set gxlApp = Nothing

    End Sub
 

с сайтом https://api.qrserver.com/v1/create-qr-code /, Мне удается создать qr-код в Access… но все разрывы строк удаляются из результата. см. Код формы доступа ниже. Я создаю форму для создания qr-кода и отчета для его отображения.

     Private Sub btnCode2_Click()
         Call GetQRCode(Me.txtToCode, 150, 150)
    End Sub

    Sub GetQRCode(Content As String, Width As Integer, Height As Integer)
        Dim ByteData() As Byte
        Dim XmlHttp As Object
        Dim HttpReq As String
        Dim ReturnContent As String
        Dim EncContent As String
        Dim QRImage As String
        EncContent = EncodeURL(Content)

        HttpReq = "https://api.qrserver.com/v1/create-qr-code/?data=" amp; EncContent amp; "amp;size=" amp; Width amp; "x" amp; Height amp; ""

        Set XmlHttp = CreateObject("MSXML2.XmlHttp")
        XmlHttp.Open "GET", HttpReq, False
        XmlHttp.Send
        ByteData = XmlHttp.responseBody
        Set XmlHttp = Nothing

        ReturnContent = StrConv(ByteData, vbUnicode)
        Call ExportImage(ReturnContent)
    End Sub

    Sub ExportImage(image As String)

        On Error GoTo NoSave    
        m_FilePath = Application.CurrentProject.Path amp; "qr.png"
        Open m_FilePath For Binary As #1
        Put #1, 1, image
        Close #1
       ' Build Export Path
       DoCmd.OpenReport "Table1", acViewPreview

    Exit Sub
   NoSave:
     MsgBox "Could not save the QR Code Image! Reason: " amp; Err.Description, vbCritical, "File Save Error"
    End Sub

    Private Function EncodeURL(str As String)
        Dim ScriptEngine As Object
        Dim encoded As String
        Dim Temp As String

        Temp = Replace(str, " ", " ")
        Temp = Replace(Temp, "#", "#")
        EncodeURL = Temp
    End Function

    Private Sub Form_Load()
        Me.txtToCode.Value = "SPC" amp; vbCrLf amp; _
            "0200" amp; vbCrLf amp; _
            "1" amp; vbCrLf amp; _
            "CH4431999123000889012" amp; vbCrLf amp; _
            "S" amp; vbCrLf amp; _
            "Robert Schneider AG" amp; vbCrLf amp; _
            "Via Casa Postale" amp; vbCrLf amp; "1268" amp; vbCrLf amp; _
            "2501" amp; vbCrLf amp; "Biel" amp; vbCrLf amp; _
            "CH" amp; vbCrLf amp; _
            vbCrLf amp; vbCrLf amp; vbCrLf amp; vbCrLf amp; vbCrLf amp; vbCrLf amp; vbCrLf amp; _
            "123949.75" amp; vbCrLf amp; _
            "CHF" amp; vbCrLf amp; _
            "S" amp; vbCrLf amp; _
            "Pia-Maria Rutschmann-Schnyder" amp; vbCrLf amp; _
            "Grosse Marktgasse" amp; vbCrLf amp; "28/5" amp; vbCrLf amp; _
            "9400" amp; vbCrLf amp; "Rorschach" amp; vbCrLf amp; _
            "CH" amp; vbCrLf amp; _
            "QRR" amp; vbCrLf amp; "210000000003139471430009017" amp; vbCrLf amp; _
            "Beachten sie unsere Sonderangebotswoche bis 23.02.2017!" amp; vbCrLf amp; _
            "EPD" amp; vbCrLf amp; "//S1/10/10201409/11/181105/40/0:30" amp; vbCrLf amp; _
            "eBill/B/41010560425610173"
    End Sub
 

может кто-нибудь мне помочь?

Комментарии:

1. Ссылка в вашем вопросе не работает. Обзор access-programmers.co.uk/forums/threads /…

Ответ №1:

Я думаю, вам также нужно преобразовать разрывы строк, например:

 Temp = Replace(Temp, vbCrLf, "
")
 

Комментарии:

1. большое спасибо, Густав, это работает. теперь я должен наложить швейцарский крест в центре qr-кода. как это сделать в VBA?

2. Я не могу найти, как прикрепить файлы изображений

3. Насколько я понимаю, это только по специальному запросу: QR-коды с логотипом , за отдельную плату и даже за каждый код. Кроме того, в какой-то степени это зависит от исправления ошибок .

4. Я должен наложить швейцарский крест на qr-код каждого счета. разве это невозможно сделать программированием?

5. Я нашел, как наложить два моих изображения: при создании отчета я помещаю два наложенных изображения, затем заполняю большее qr-кодом, а меньшее — швейцарским крестом. это работает!