Produktdaten über eine Website auslesen.

Moderator: ModerationP

Produktdaten über eine Website auslesen.

Beitragvon MrZOrtrax » 03. Mai 2021, 20:37

Hi zusammen,

ich habe früher bereits eine Anwendung mit dieser Funktion gehabt. Leider geht diese nicht mehr. Habe sie aber auch Jahre nicht genutzt. Sehr wahrscheinlich ist über die Jahre etwas an der Website geändert worden.

Da ich das Script auch nur übernommen habe und mich im Detail nicht mit entsprechenden Anpassungen auskenne muss ich leider mal fragen, ob es aktuell bessere Methoden gibt.

Aufgabe. Ich möchte den Barcode eines gängigen Produktes per Handscanner einlesen. Eine entsprechende Website soll mir dann sagen, welches Produkt es ist. Mir reicht die Bezeichnung aus.

Bisherigen Code den ich noch habe.

Code: Alles auswählen
   ' =============================================================================
   ' Projekt:  Über 'www.codecheck.info' den zu einem Artikelcode
   '           gehörenden Produktnamen ermitteln (MS Access VBA-Code)
   '
   ' Autor:    Peter Punkt
   '
   ' Version:  01 - 19.04.2015
   '
   ' HINWEIS 1:
   ' Über Extras folgende Verweise einbinden:
   '     Microsoft Internet Controls
   '     Microsoft HTML Object Library
   '
   ' HINWEIS 2:
   ' Microsoft Internet Controls enthält u.a. SHDocVw
   ' Microsoft HTML Object Library wird wegen HTML benötigt
   ' =============================================================================
 
   Option Compare Database
   Option Explicit
 
   Private Const ArtikelNr1 As String = "4005808123773"      ' Nivea
   Private Const ArtikelNr2 As String = "0000000000000"      ' Fehlerhaft (Nr. gibt es nicht)
   Private Const ArtikelNr3 As String = "4006381333627"      ' STABILO BOSS Original gelb
 
   Public Const WebAdresse As String = "https://www.codecheck.info"
   Public Barcode As String
   
   
   
   
 
   Public Sub START()
      Dim ArtikelBezeichnung As String
 
      ArtikelBezeichnung = IELadenUndAuslesen(WebAdresse, ArtikelNr1)
      Debug.Print ArtikelBezeichnung
      Debug.Print "------------------------------"    ' <-- FÜR TESTZWECKE
      MsgBox ArtikelBezeichnung
 
      ArtikelBezeichnung = IELadenUndAuslesen(WebAdresse, ArtikelNr2)
      Debug.Print ArtikelBezeichnung
      MsgBox ArtikelBezeichnung
      Debug.Print "------------------------------"    ' <-- FÜR TESTZWECKE
 
      ArtikelBezeichnung = IELadenUndAuslesen(WebAdresse, ArtikelNr3)
      Debug.Print ArtikelBezeichnung
      MsgBox ArtikelBezeichnung
      Debug.Print "------------------------------"    ' <-- FÜR TESTZWECKE
 
   End Sub
 
   ' *****************************************************************************
 
   Public Function IELadenUndAuslesen(WebAdresse As String, Artikelcode As String)
   On Error GoTo Error:
 
      Dim appIE As SHDocVw.InternetExplorer
      Dim AnzahlForms As Integer
      Dim Titel As String
      Dim Position As Integer
      Dim ev As Integer
 
      Set appIE = New SHDocVw.InternetExplorer        ' Instanz bilden
      appIE.Visible = False                           ' IE nicht sichtbar
 
      appIE.Navigate WebAdresse                       ' Webseite aufrufen
      Do                                              ' Verzögerungsschleife bis IE bereit
         ev = DoEvents()
      Loop Until appIE.Busy = False
      Debug.Print "Webseite geladen"                  ' <-- FÜR TESTZWECKE
      Debug.Print "Webseitentitel: " & appIE.Document.Title   ' <-- FÜR TESTZWECKE
 
      AnzahlForms = appIE.Document.Forms.Length       ' Anzahl der Forms auf der Webseite
 
      If AnzahlForms > 0 Then                         ' Wenn Forms vorhanden
         appIE.Document.Forms(0).elements("q").Value = Artikelcode   ' q ist der Feldname
         Debug.Print "ArtikelNr übergeben"            ' <-- FÜR TESTZWECKE
 
         appIE.Document.Forms(0).submit
         Debug.Print "Nach Submit"                    ' <-- FÜR TESTZWECKE
 
         Do                                           ' Verzögerungsschleife bis IE bereit
            ev = DoEvents()
         Loop Until appIE.Busy = False
 
         Titel = appIE.Document.Title
         Debug.Print Titel                            ' <-- FÜR TESTZWECKE
         
         If Titel = "Produkt erfassen (Schritt 1 von 2) – | ||| | || CODECHECK.INFO" Then
         Titel = ""
         Else
         '      Gefundenen Titel ggf. noch nachbearbeiten!!
               Position = InStr(1, Titel, Barcode)
         '      Debug.Print Position
               Titel = Trim(Left(Titel, Position - 3))
         '      Debug.Print Titel
        End If
       
         IELadenUndAuslesen = Titel                   ' Gefundenen Titel zurückgeben
 
      End If
 
      appIE.Quit                                      ' IE beenden
      Set appIE = Nothing                             ' Instanz freigeben
      Exit Function
     
Error:
If Err.Number = 5 Then
Titel = ""
Resume Next
End If
    MsgBox Err.Number & " " & Err.Description

   End Function

MrZOrtrax
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 271
Registriert: 21. Aug 2016, 12:21

Re: Produktdaten über eine Website auslesen.

Beitragvon Bitsqueezer » 03. Mai 2021, 20:57

Hallo,

der Anbieter bietet auch einen API-Zugang zu seiner Website, die Du vermutlich dazu nutzen mußt. Ich gehe davon aus, daß das nicht kostenfrei ist:

https://codecheck-app.com/de/business/api/

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Produktdaten über eine Website auslesen.

Beitragvon MrZOrtrax » 04. Mai 2021, 19:38

Hm ok alles klar danke.
MrZOrtrax
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 271
Registriert: 21. Aug 2016, 12:21


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Beaker s.a. und 5 Gäste