Qr Code con Google Charts API

di il
9 risposte

Qr Code con Google Charts API

Slave, ho il seguente problema: voglio che cliccando un bottone in una maschera mi genera in un report un codice qr utilizzando google charts api. Per adesso sono riuscito a fare questo:
Private Sub btn_creaqr_Click()

Dim Size As Integer
Dim Text As String
Dim URL As String
Size = 200
Text = Me.txt_qr
Text = Replace(Text, " ", "%20")
URL = "http://chart.apis.google.com/chart?chs=" & Size & "x" & Size & "&cht=qr&chld=H|0&chl=" & Text
shell ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe " & URL)
'Esempio link: http://chart.apis.google.com/chart?chs=200x200&cht=qr&chld=H|0&chl=Ciao%20come%20va

End Sub
Con questo codice riesco a creare il qr ma riesco a visualizzarlo solamente aprendo la pagina internet, mentre io vorrei che l'immagine che si apre andasse a finire nel mio report. Come posso fare?
Grazie mille in anticipo!

9 Risposte

  • Re: Qr Code con Google Charts API

    Simone_Urba ha scritto:


    ...voglio che cliccando un bottone in una maschera mi genera in un report un codice qr utilizzando google charts api. ...
    riesco a creare il qr ma riesco a visualizzarlo solamente aprendo la pagina internet, mentre io vorrei che l'immagine che si apre andasse a finire nel mio report.
    Secondo me devi usare un controllo web browser nella maschera e nel report, senza aprire il browser (IE, Chrome che usar si voglia) con Shell.
    Oppure... devi salvare l'immagine e caricarla in un controllo immagine. Sto andando a memoria ma mi sembra che in stampa i controlli web browser risultino totalmente neri.
    Intervento poco utile, scusa [Simone_Urba] e Forum.

    Non scopro certo io l'acqua calda (i motori di ricerca li sanno usare anche gli altri) ma se qualche esperto tosto sa adattare questo
    Generate QR code with google chart API using UDF in Excel ad Access magari si fa qualche passo avanti.
  • Re: Qr Code con Google Charts API

    Ok, adesso sono riuscito a fare il download dell'immagine e salvarla in locale. Poi ho fatto una tabella con id e percorso della foto ma quando tento di inserire un immagine nella PictureBox da codice mi dice immagine non valida. Se la inserisco manualmente invece funziona. Cosa sbaglio?
    Me.Immagine6.Picture = LoadPicture("C:\Documenti Simone\1_Stage\Immagini\" + CStr(rst!IDMatricola) + ".png")
    rst è un recordset che scorre tutta la tabella con i percorsi delle immagini ed IDMatricola è un numero (1, 2, 3, 4, ...)
  • Re: Qr Code con Google Charts API

    Simone_Urba ha scritto:


    Me.Immagine6.Picture = LoadPicture("C:\Documenti Simone\1_Stage\Immagini\" + CStr(rst!IDMatricola) + ".png")
    Da dove spunta LoadPicture?
    E' sufficiente assegnare alla proprietà Picture il percorso dell'immagine, non serve alcuna funzione particolare.

    Nota a margine: non è sbagliato concatenare con il [+] ma si preferisce usare [&]. E' importante conoscerne le peculiarità e la principale è il diverso comportamento in presenza di Null. Ma, ripeto, non è questo il caso. Infatti è una nota a margine.
  • Re: Qr Code con Google Charts API

    Philcattivocarattere ha scritto:


    Simone_Urba ha scritto:


    Me.Immagine6.Picture = LoadPicture("C:\Documenti Simone\1_Stage\Immagini\" + CStr(rst!IDMatricola) + ".png")
    Da dove spunta LoadPicture?
    E' sufficiente assegnare alla proprietà Picture il percorso dell'immagine, non serve alcuna funzione particolare.

    Nota a margine: non è sbagliato concatenare con il [+] ma si preferisce usare [&]. E' importante conoscerne le peculiarità e la principale è il diverso comportamento in presenza di Null. Ma, ripeto, non è questo il caso. Infatti è una nota a margine.
    Eccezionale! Grazie mille!

    Ma i problemi non finiscono mai.
    Ora mi fa vedere su tutti l'immagine dell'ultimo record... come mai?
    Private Sub Comando5_Click()
    
    Dim Size As Integer 'Dimensione immagine
    Dim Text As String 'Valore del Qr
    Dim URL As String 'URl Google Charts API per la creazione del codice
    Size = 200
    
    Dim db As DAO.Database
    Dim rst As Recordset
    
    Set db = CurrentDb
    Set rst = db.OpenRecordset("TbMatricole", dbOpenDynaset)
    
    DoCmd.SetWarnings (False)
    
    Do While Not rst.EOF
        Text = CStr(rst!IDMatricola)
        Text = Replace(Text, " ", "%20") 'Nel caso di spazi
        URL = "http://chart.apis.google.com/chart?chs=" & Size & "x" & Size & "&cht=qr&chld=H|0&chl=" & Text
        If DownloadFile(URL, "C:\Documenti Simone\1_Stage\Immagini\" & CStr(rst!IDMatricola) & ".png") Then 'mia funzione per il download
            strSQL = "UPDATE TbMatricole SET TbMatricole.PathCodiciQr = 'C:\Documenti Simone\1_Stage\Immagini\" & CStr(rst!IDMatricola) & ".png' WHERE TbMatricole.IDMatricola = " & rst!IDMatricola & ";"
            Debug.Print strSQL
            DoCmd.RunSQL strSQL
            Me.Immagine6.Picture = "C:\Documenti Simone\1_Stage\Immagini\" & CStr(rst!IDMatricola) & ".png"
        End If
        rst.MoveNext
    Loop
    
    End Sub
  • Re: Qr Code con Google Charts API

    Simone_Urba ha scritto:


    ...
    Ma i problemi non finiscono mai.
    Ora mi fa vedere su tutti l'immagine dell'ultimo record... come mai?
    A cosa serve il codice che hai postato, quello della query di update? Lo esegui "una tantum"?
    Se sei in maschera continua non funziona la visualizzazione di ogni immagine per ogni record: ogni volta in tutti i record visualizzerà la stessa immagine. Non significa che nella tabella ci sono dati sbagliati ma è una caratteristica delle maschere continue. Prova a passare in visualizzazione maschera singola.
  • Re: Qr Code con Google Charts API

    Philcattivocarattere ha scritto:


    Simone_Urba ha scritto:


    ...
    Ma i problemi non finiscono mai.
    Ora mi fa vedere su tutti l'immagine dell'ultimo record... come mai?
    A cosa serve il codice che hai postato, quello della query di update? Lo esegui "una tantum"?
    Se sei in maschera continua non funziona la visualizzazione di ogni immagine per ogni record: ogni volta in tutti i record visualizzerà la stessa immagine. Non significa che nella tabella ci sono dati sbagliati ma è una caratteristica delle maschere continue. Prova a passare in visualizzazione maschera singola.
    OK grazie!
  • Re: Qr Code con Google Charts API

    Simone_Urba ha scritto:


    OK grazie!
    A posto così? avevo già messo in discussione la mia stessa interpretazione del codice. Significa che mi faccio troppo domande (o tu hai già trovato le risposte e non le scrivi nemmeno, giustamente)
  • Re: Qr Code con Google Charts API

    Philcattivocarattere ha scritto:


    Simone_Urba ha scritto:


    OK grazie!
    A posto così? avevo già messo in discussione la mia stessa interpretazione del codice. Significa che mi faccio troppo domande (o tu hai già trovato le risposte e non le scrivi nemmeno, giustamente)
    No è che per altre esigenze ho dovuto fare un campo allegato senza la PictureBox. Comunque l'Update mi serve perché data la matricola mi faccio i download dell'immagine del codice qr e aggiorno il campo del percorso.
    A proposito: sai come posso inserire un'immagine in locale in un campo allegato da codice?
  • Re: Qr Code con Google Charts API

    Attenzione che questa è una cosa ASSAI pericolosa... mi spiego meglio.
    Per incorporare un Immagine in un controllo OLE, si può fare in 2 modi ma il più comodo è questo, l'altro metodo devi usare il Recordset ed un controllo Immagine...:
    Devi avere un Controllo OLE Associato al Campo OLE... quindi su qualche evento Click o quello che vuoi...
    
                With Me.NomeControlloAssociatoOLE
                    .Enabled = True
                    .Locked = False
                    .OLETypeAllowed = acOLEEmbedded
                    .SourceDoc = "C:\Percorso\NomeFile.BMP"
                    .Action = acOLECreateEmbed
                    DoCmd.RunCommand acCmdSaveRecord
                    .Enabled = False
                    .Locked = False
                End With
    Suggerisco di Bloccarli e non renderli Abilitati in quanto si può generare un errore inutile... che andrebbe gestito.

    PROBLEMA:
    Questi metodi BYPASSANO i Filtri di Conversione... quindi si possono caricare SOLO BMP.
Devi accedere o registrarti per scrivere nel forum
9 risposte