Modul Artikel import nach oxartextends aus Access

Servus,

ich hab mir was zum import der oxartextends gebastelt. Ich kann damit eine Tabelle mit zwei Spalten als HTML ausgeben. Evtl. kanns ja einer brauchen und aufbohren;)

Als Eingabetabell hab ich dies Struktur
strTable = "Bez_hersteller"
Die Spaltennamen sind die Bezeichnungen bei der Ausgabe der Tabelle linke Spalte
Die Werte stehen als ergebnis jeweils in einer Zeile in Spalte 2.

Die Tabelle mit den Bezeichnungen kann belibig viele Spalten haben. Wenn bei der Ausgabe mehr als zwei Spalten bnötigt werden, muss das in <colgroup> angegeben werden.

bsp. Bez_hersteller
oxid Durchmesser in mm Einbautiefe in mm Länge Breite Höhe Gewicht
oxid_isoled_111064 0 0 115 50 31 250 Kunststoff 24 0


'<div><table border="1">
'  <colgroup>
'    <col width="180">
 '   <col width="580">
 '   </colgroup>
'  <tr>
'    <td>Bez1</td>
'    <td>Wert1</td>
'    </tr>
'  <!-- usw. andere Zeilen der Tabelle -->
'</table></div>
Function OXLONGDESC_html()
    Dim feld As String
    Dim rs As DAO.Recordset
    Dim strSql As String
    Dim tdfCur As DAO.TableDef ' für Felder
    Dim rs_neu As DAO.Recordset
    Dim i As Integer
    Dim strTable As String
    Dim strTable1 As String 'OXID
    Dim feld_inhalt As String
    Set dbsCur = CurrentDb
    Dim td_def_1 As String 'html Anfang
    Dim td_def_2 As String
    Dim td_def_3 As String
    Dim td_def_4 As String 'html Ende
    
    td_def_1 = "<div><table><colgroup><col width=180><col width=480></colgroup>"
    td_def_2 = "<tr>"
    td_def_4 = "</table></div>"
    strTable = "Bez_hersteller"
    strTable1 = "oxartextends"
    Set tdfCur = dbsCur.TableDefs(strTable)
    strSql = "SELECT  * FROM " & strTable & ";"
    Set rs = DBEngine(0)(0).OpenRecordset(strSql)
    Set rs_neu = DBEngine(0)(0).OpenRecordset(strTable1)
    Do While Not rs.EOF
    rs_neu.AddNew
    feld_inhalt = ""
    For i = 1 To rs.Fields.Count - 1 ' For i = 1 damit OXID(Feld = 0) nicht berücksichtigt wird
        If rs.Fields(i) = "0" Then
        feld = "-"
        Else
        feld = Nz(rs.Fields(i), "-")
        End If
        feld_inhalt = feld_inhalt & "<tr><td>" & rs.Fields(i).Name & ":" & "</td>" & "<td>" & feld & "</td></tr>"
        Next i
        rs_neu!OXID = rs!OXID
        rs_neu!OXLONGDESC = td_def_1 & feld_inhalt & td_def_4
        rs_neu!OXLONGDESC_1 = td_def_1 & feld_inhalt & td_def_4
        rs.MoveNext
        rs_neu.Update
    Loop
    
    rs.Close
    Set rs = Nothing
End Function

viel spass damit

lg
Alex

Danke für deine Teilhabe, das ist aber doch VB und kein php …

Hallo,

ja das ist VB. php muss ich erst noch lehrnen. Ich hab den Code nur mit der PHP funktion hier im Forum eingegeben damit es mit der Darstellung klappt.Mit hilfe dieser Access VBA Funktion kann man eben eine Tabelle in welcher die einzelnen Spaltennamen auch gleichzeitig die Bezeichnung für den dazugehörigen Wert sind, als html Code in die Tabelle oxartextend-OXLONGDESC usw. schreiben. Als Ergebnis erhält man ein schön formatierte Tabelle mit zwei Spalten in der Beschreibung.:slight_smile: Die Funktion kann natürlich auf belibig viele Ausgabespalten erweitert werden.

Evtl hat kanns ja einer brauchen.

lg
Alex