Tichy: HTML-generierung mit ms access 97

huhu,

was ist die beste methode html von access 97 aus zu generieren?

ich kenne mich mit xml zwar noch wenig aus, aber ich stelle mir vor, dass ich ein html mit variablen habe und ein parser, der in access integriert ist oder nur davon gesteuert wird dann das/die endgueltige html-file(s) inkl. der daten erstellt.

schoen waere es, wenn es mit access alleine geht, bei einer loesung mit z.b. perl muesste der benutzer dann perl installiert haben. c/c++ waere dann wieder praktischer.
kann jemand bestimmte perl-scripts empfehlen, bzw. gibt es schon leicht anpassbare c/c++ loesungen?

die loesung soll dafuer da sein z.b. woechentlich eine kleine preisliste im web upzudaten.

leider kommen sql-db, asp, oder server-seitige scripts nicht in frage.

bin fuer jeden tip sehr dankbar:)

cu, tichy

  1. Hallo Tichy,

    kann jemand bestimmte perl-scripts empfehlen, bzw. gibt es schon leicht anpassbare c/c++ loesungen?

    wie wäre es mit diesem Beispiel (Perl liest eine MDB-Access-Tabelle)

    ---cut--->

    use Win32::ODBC; # Modul einbinden
    print "Content-Type: text/html\n\n" ;
    print "
    <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 3.2 Final//EN'>
    <HTML>
    <HEAD>
    <TITLE>Adressen über ODBC</TITLE>
    </HEAD>
    <BODY bgcolor='white'>";
    print "<h1>Privatadressen</h1><hr>";

    die i.f. zu öffnende MDB hat 1 Tabelle: adres

    $db = new Win32::ODBC('ADR') ; # Objekt anlegen

    $db->Sql("
    SELECT NAME, VORNAME, STRASSE, PLZ, ORT, TELEFON FROM adres
    WHERE NAME like 'B%'
    ORDER BY NAME
    ");

    @FelderNamen = $db->FieldNames() ;

    Spaltenanzahl ermitteln

    $spalten=$#FelderNamen+1 ;

    print "<h3>Alle Namen mit 'B'</h3>";

    Ausgabe der Daten in eine HTML-Tabelle

    print "<table border=1 cellspacing=0>\n";
    print "<tr>\n";
    for (@FelderNamen)
    {
    print "<td>", $_, "</td>\n";  # Die Feldüberschriften nicht vergessen
    }
    print "</tr>\n";
    while ($db->FetchRow())
    {
    print "<tr>\n";
    undef %Daten ;
    %Daten = $db->DataHash();
    for ($i = 0; $i < $spalten; $i++)
    {
      if ($Daten{$FelderNamen[$i]} gt '')
      {
       print "<td>", $Daten{$FelderNamen[$i]}, "</td>\n";
      }
      else
      {
       print "<td><font color='#ff8040'>Nicht Angegeben</font></td>\n";
      }
    }
    print "</tr>\n";
    }
    print "</table>\n";

    print "<hr>";

    print "<h3>Alle Namen mit 'R'</h3>";

    $db->Sql("
    SELECT NAME, VORNAME, STRASSE, PLZ, ORT, TELEFON FROM adres
    WHERE NAME like 'R%'
    ORDER BY NAME
    ");

    print "<table border=1 cellspacing=0>\n";
    print "<tr>\n";
    for (@FelderNamen)
    {
    print "<td>", $_, "</td>\n";  # Die Feldüberschriften nicht vergessen
    }
    print "</tr>\n";
    while ($db->FetchRow())
    {
    print "<tr>\n";
    undef %Daten ;
    %Daten = $db->DataHash();
    for ($i = 0; $i < $spalten; $i++)
    {
      if ($Daten{$FelderNamen[$i]} gt '')
      {
       print "<td>", $Daten{$FelderNamen[$i]}, "</td>\n";
      }
      else
      {
       print "<td><font color='#ff8040'>Nicht Angegeben</font></td>\n";
      }
    }
    print "</tr>\n";
    }
    print "</table>\n";

    $db->Close() ;

    print "</BODY></HTML>";
    <---cut---<

    Quelle:

    <a href=""></a>

    Viele Grüße, Rolf

    1. Sorry,

      der Link... zu meiner Quelle:

      http://www.perl-archiv.de/perl/index.shtml

      Hier findest Du eine erstklassige Beschreibung wie mit Perl auf MDBs zugegriffen werden kann (nur lesen).

      Viele Grüße, Rolf

  2. Moin Tichy,

    da Du ja scheinbar nur "statische" HTML's generieren  und nicht online auf die Datenbank zugreifen willst, kannst Du in Access 97 einen Report erstellen und diesen dann über den Menupunkt "Datei exportieren / Als HTML speichern" in eine HTML-Datei exportieren.

    Für das ganze "Drumherum", also das Layout und Kopf-/Fußzeilen, Hintergrundbild etc. kannst Du eine HTML-Vorlagendatei erstellen, in die Access dann die Daten einbindet.

    Gruß
    Dirk