Carsten Wilke: A97, Bei verschiedenen DS Name1 den Namen nur einmal anzeigen

HAllo,

ich habe eine Abfrage, die mir z.B. folgendes Ergebnis liefert:

Name1       Monat
Carsten     Mai
Carsten     Juni
Carsten     Juli
Wilke       Mai
Wilke       Juni
Wilke       Juli

Das Ergebnis lasse ich mir in einem Form anzeigen, ich möchte
aber, das das Form so aussieht:

Carsten     Mai
            Juni
            Juli
Wilke       Mai
            Juni
            Juli

Also sobald im vorhergehenden DS Name1=Name1 des aktuellen
DS ist, soll er mir den Namen nicht mehr anzeigen. Wie geht das?
Vielen Dank für eure Ideen,

Carsten

  1. Hallo Carsten!

    Einfach mal weiter unten gucken!
    Hatte nämlich dasselbe Problem!

    http://www.teamone.de/selfaktuell/forum/messages/103340.html

    Bis dann
    Alex

    1. Hallo Carsten!

      Einfach mal weiter unten gucken!
      Hatte nämlich dasselbe Problem!

      http://www.teamone.de/selfaktuell/forum/messages/103340.html

      Bis dann
      Alex

      Hi Alex,

      leider nicht ganz. Hatte das Posting schon gesehen, aber es nicht ganz mein Problem. Nur eine Spalte gruppieren is ja mit group by möglich, geht aber nur, wenn die DS-Inhalte gleich sind. Wenn ich bei mir group by anwende, bekomme ich die gleichen Inhalte wie vorher:
      Carsten Mai
      Carsten Juni
      Carsten Juli

      Is ja klar, da er ja auch nach Monat gruppiert.
      Trotzdem Danke, Carsten

      1. Hallo Carsten!

        Stimmt, da hab ich wohl etwas zu schnell gedacht.
        Im Moment weiss ich dafür aber auch keine Lösung.
        Sorry

        Bis dann
        Alex!

  2. Hallo,

    Eine reine Datenbank/SQL-Lösung kommt für dein Problem IMHO nicht in Betracht.

    Sicherlich kannst du aber bei der Ausgabe der Daten per Skriptsprache (Perl, PHP, ASP) eine entsprechende Formatierung vornehmen.

    z.B.:
    Einfach den zuletzt ausgebenen Namen zwischenspeichern und bei Ausgabe des nächsten Datensatzes vergleichen, ob der Name dort mit dem gespeicherten übereinstimmt.

    Wenn ja dann einen leeren String ausgeben, wenn nein den Namen ausgeben.

    Sollte IMHO kein großes Problem darstellen.

    Gruß,
    kerki

    1. Einfach den zuletzt ausgebenen Namen zwischenspeichern und bei Ausgabe des nächsten Datensatzes vergleichen, ob der Name dort mit dem gespeicherten übereinstimmt.

      Wenn ja dann einen leeren String ausgeben, wenn nein den Namen ausgeben.

      Sollte IMHO kein großes Problem darstellen.

      Gruß,
      kerki

      Hi, ne, das habe ich schon (fürs web) so gemacht.
      if ($alterds!=$row[name1])
         {
          echo"$row[name1]$row[monat]<br>\n";
         }
      else
         {
          echo"$row[monat]<br>\n";
         }
      $alterds=row[name1];
      uns so weiter...

      Aber ich möchte es schon in Access so darstellen, damit man sich ein Bild machen kann, wies später aussieht! Gibts denn in access keine Möglichkeit, die Datensatznr anzusprechen?
      etwa so: if name1 von aktuellemDS = name1 von aktuellemDS-1

      Geht das?

      Thx, Carsten

      1. Hallo nochmal!

        Ausser einem 'Bericht', der diese Möglichkeit (über Assistent!) bietet, fällt mir dazu wenig ein. :-(

        Irgendwie hat das Ganze aber mit HTML & Co. auch nichts mehr zu tun.

        Vielleicht weiß jemand in einem speziellen Access-Forum mehr? :

        http://www.spotlight.de/foren/msa/forum_msa.htm
        oder:
        http://www.accessusergroup.com/ulf/

        Gruß,
        kerki

  3. Hallo Carsten,

    Das Ergebnis lasse ich mir in einem Form anzeigen, ich möchte
    aber, das das Form so aussieht:

    Carsten     Mai

    »»             Juni
    »»             Juli

    Wilke       Mai

    »»             Juni
    »»             Juli
    »»

    Also sobald im vorhergehenden DS Name1=Name1 des aktuellen
    DS ist, soll er mir den Namen nicht mehr anzeigen. Wie geht das?
    Vielen Dank für eure Ideen,

    das kann man mit folgendem Code erledigen (ist ASP, da es aber mehr
    auf die Programmlogik ankommt, laesst sich das auch einfach auf
    andere Scriptsprachen übertragen).

    <%
    Dim strSpaltenwert
        strSpaltenwert = ""
    Dim SQL
        SQL = "SELECT <spalte1>, <spalte2> FROM <tabelle> ORDER BY <spalte1>"
    Set objRS = Server.CreateObject("ADODB.Recordset")
        objRS.Open SQL, objConn, 3, 3

    Do While Not objRS.EOF
           If strSpaltenwert <> objRS.Fields("<spalte1>") Then
               strSpaltenwert = objRS.Fields("<spalte1>")
               Response.Write "<br><b>" & objRS.Fields("<spalte1>") & "</b><br>"
           End if
           Response.Write objRS.Fields("<spalte2>") & "<br>"
           objRS.MoveNext
        Loop
        objRS.Close
    Set objRS = Nothing
    %>

    Das erzeugt in etwa folgende Ausgabe:
    Carsten
    Mai
    Juni
    Juli

    Wilke
    Mai
    Juni
    Juli

    Tschau, Stefan