dukester: auswahlfeld in der Datenbank abfragen

Hallo,
hab folgendes Problem:
Ich habe in einer Datenbank für die Mitarbeiternamen auswahlfelder genommen!
Nun ich möchte aber diese felder über eien Aspseite abfragen, aber die aspseite zeigt mir immer nur "nichts" an!!

Wie frage ich den auswahlfelder in der datenbank ab??

  1. Halihallo dukester

    Ich habe in einer Datenbank für die Mitarbeiternamen auswahlfelder genommen!

    Was ist ein Auswahlfeld? - Erinnert mich das an Access?

    Nun ich möchte aber diese felder über eien Aspseite abfragen, aber die aspseite zeigt mir immer nur "nichts" an!!

    Eine ASP Seite soll auch nichts anzeigen, der generierte HTML-Code (oder was auch immer)
    wird nur vom Browser interpretiert.

    Wenn du uns also bitte etwas Code zeigen würdest, wären wir eventuell in der Lage einige
    Lösungstipps zu geben.

    Viele Grüsse

    Philipp

    1. Datenbank:
      1 Tabelle mit Mitarbeiternamen
      1 Tabelle mit den einnahmen der Mitarbeiter

      Das Feld Mitarbeiter in der Tabelle mit den Einnahmen ist verknüpft mit der Namentabelle und man kann mittels drop down Feld die namen auswählen!!

      Code (asp) :
      <!-- #include file="adovbs.inc" -->
      <%
      searchfor= TRIM( Request( "searchfor" ) )
      name = TRIM( Request( "name" ) )
      %>
      <%
      set con2 = server.createobject( "adodb.connection" )
      con2.open "Umsatz"
      sqlstring2 = "SELECT * " &_
        "FROM T_Umsatz_STA_Duisburg " &_
        "where ( Datum LIKE '%" & searchfor & "%' ) " &_
        "AND ( Mitarbeiter LIKE '%" & name & "%' ) " &_
        "ORDER BY ID "
      set rs2 = Con2.Execute( sqlString2 )
       IF RS2.EOF THEN
      %>
      <%
       ELSE
       gesamt = 0
       %>
        <%
        WHILE NOT RS2.EOF
       gesamt = gesamt + (rs2( "gesamt" ) * 1 )
       %>

      <%
       RS2.MoveNext
       WEND

      %>
       <font type="Arial" size="2"><b><%=( gesamt )%> </b></font>
       <% END IF %>

      ------------------------

      die seite soll nur die gesammtsumme von einem gewählten Mitarbeiter zu einem Bestimmten Datum anzeigen!!!
      Aber da das Mitarbeiter Feld in der Einnahmentabelle so ein drop down menu ist kann das meine aspseite wohl nicht korrekt abfragen!!

      1. Halihallo dukester

        Das Feld Mitarbeiter in der Tabelle mit den Einnahmen ist verknüpft mit der Namentabelle und man kann mittels drop down Feld die namen auswählen!!

        Du musst vom Denken von Access wegkommen. Hier geht es um SQL und nicht um Access.
        Nomenklaturen wie "drop down Feld" gibt es in SQL nicht. Was du suchst ist ein
        Query, der einen Join zwischen der Tabelle "Mitarbeiternamen" und "Mitarbeitereinnahmen"
        und dann die Summe aller Einnahmen des korrespondierenden Mitarbeiters berechnet.

        Beispiel:

        Tabelle "Mitarbeiternamen":
        ---------------------------

        id (Autowert)
        name
        vorname
        strasse
        ...

        Tabelle "Mitarbeitereinnahmen":
        -------------------------------

        mitarbeiter_id : Primärschlüssel
        datum : Primärschlüssel
        einnahme : Nummer

        der Query würde dann etwa so aussehen:

        SELECT
              Mitarbeiternamen.name,
              SUM(Mitarbeitereinnahmen.einnahme)
           FROM
              Mitarbeiternamen,
              Mitarbeitereinnahmen
           WHERE
               Mitarbeitereinnahmen.datum <= #<datum# AND
               Mitarbeiternamen.id = Mitarbeitereinnahmen.mitarbeiter_id
           GROUP BY
              Mitarbeitereinnahmen.mitarbeiter_id

        würde dann etwa folgendes ausgeben:

        name              SUM(einnahmen)
        --------------------------------

        Mitarbeiter1        234
        Mitarbeiter2        9872
        Mitarbeiter3        387

        Aber da das Mitarbeiter Feld in der Einnahmentabelle so ein drop down menu ist kann das meine aspseite wohl nicht korrekt abfragen!!

        Du musst davon ausgehen, was in der Datenbank für Wertetypen angegeben sind, nicht
        wie Access das darstellt. Für ASP ist die Darstellung von z. B. Access völlig irrelevant!

        Also: Was steht in der Entwurfsansicht der entsprechenden Tabellen?
        Verwendest du überhaupt Access oder eine andere Klicki-Bunti-0815-Datenbank?

        Viele Grüsse

        Philipp

        1. Access!!!

          Aber davon mal ab ich bin nicht dafür verantwortlich darf mich nur damit rumkloppen!!!

          1. Halihallo dukester

            Da ich mir keine möglichen Fehlerursachen ausdenken kann, solltest du mal folgendes
            versuchen:

            Geb dir testweise mal alle Tabelleninhalte von beiden Tabellen aus und schau mal nach,
            was unter dem gewünschten Feld (das drop-down) alles steht. Ist es eine Zahl, oder Text?
            Ich kann mir nicht vorstellen, dass Access hier Probleme macht.
            Zudem würde mich mal wunder nehmen, was dein zuvorgepostetes Script denn ausgibt. Was
            heisst hier "Probleme machen"? - Kommt eine Fehlermeldung? - Was wird falsch ausgegeben?

            Viele Grüsse

            Philipp

            1. Ich hab ja versucht mir den Tabelenihnhalt ausgeben zu lassen aber das lässt er mir aus!!1

              Keine Zahl keine Buchstaben keine fehlermeldung!!!

              Lösch ich das feld aber raus aus der Tabelle und setz dafür ein textfeld ein und tipp den namen von hand dann geht es

              1. Halihallo dukester

                Ich hab ja versucht mir den Tabelenihnhalt ausgeben zu lassen aber das lässt er mir aus!!

                Welchen Query hast du verwendet?

                SELECT * FROM <dein-Tabellenname>

                Keine Zahl keine Buchstaben keine fehlermeldung!!!

                Ich folgere: Keine Datensätze gefunden. Vielleicht hilft auch die Ausgabe der Anzahl aus
                Test/Debug-Zwecken.

                Lösch ich das feld aber raus aus der Tabelle und setz dafür ein textfeld ein und tipp den namen von hand dann geht es

                OK, das ist doch schon was. Was hindert dich daran, das Feld auf textfeld zu ändern?
                Muss die Datenbank über ASP sowie über Access einsehbar sein?

                Viele Grüsse

                Philipp

                1. Hoi Phillip!!!

                  Naja leider schon und ich vertrau dem Volk hier nicht, daß die Namen alle richtig tippen!!!

                  Ach ja in der entwurfsansicht hat das die spalte Mitarbeiter die bezeichnung ID2 wenn ich mir nun per <%=rs("ID2")%> das mal ausgeben lassen dann kommt das raus :
                  571033438377447118251221174101188110331118811121823173555711110211
                  naja was ist das????

                  1. Halihallo dukester

                    Naja leider schon und ich vertrau dem Volk hier nicht, daß die Namen alle richtig tippen!!!

                    Bitte was? - Von was redest du bitte? - Wo wir schon dabei sind: du hast meinen falsch
                    geschrieben ;)  -  Absicht oder Zufall, das ist hier die Frage...

                    Ach ja in der entwurfsansicht hat das die spalte Mitarbeiter die bezeichnung ID2 wenn ich mir nun per <%=rs("ID2")%> das mal ausgeben lassen dann kommt das raus :
                    571033438377447118251221174101188110331118811121823173555711110211
                    naja was ist das????

                    Aha... Das ist der verzweifelte versuch seitens Access die Programmierer zu verärgern...
                    Also, dein "drop-down-Ding", was immer das auch sein mag, speichert nicht die
                    eigentlichen Namen als Text, sondern repräsentiert sie als nummerischen Wert, der bezogen
                    auf das "System/Tabelle" eindeutig ist. Ich kenne leider keine Möglichkeit diese Werte
                    wieder in Namen aufzulösen, würde jedoch glauben und für dich hoffen, dass dies über
                    Access möglich sein müsste. Ich sehe keine andere Lösung, als dass du die Spalte auf
                    Text änderst (wie schon vorgeschlagen; aber du schweigst dich ja gerne aus...); oder
                    etwas Redundanz in dein Tabellenschema bringst, indem du zwei Spalten mit selben Inhalt
                    (eben einmal Text und einmal drop-down) speicherst... Aber Vorsicht: Bei jedem Ändern
                    müsstest du die entsprechenden Felder aktualisieren. Wahlweise eine neue Relation/Tabelle
                    erstellen, wo du beide Felder speicherst, aber verknüpf die Tabellen, wie üblich, über
                    einen Autowert-Primary.

                    Viele Grüsse

                    Philipp

                    1. hy Philipp,

                      neee war nur so nen beispiel wie leicht das passiert!!!
                      Das Volk naja damit meine ich meine Kollegen ich fange garntiert nicht die leute hier zu beleidigen!!!

                      Ich hau doch keinem in die fresse der mir helfen will!!

                      Ich plätte die datenbank und mach ne asp Eingabemaske die beschränk ich dann auf die Ip eines rechners sodass nur noch dieser rechner auf die maske zugreifen kann!!!

                      Und dann mach ich ne neue Datenbank!!

                      1. Halihallo dukester

                        neee war nur so nen beispiel wie leicht das passiert!!!
                        Das Volk naja damit meine ich meine Kollegen ich fange garntiert nicht die leute hier zu beleidigen!!!

                        Ich hau doch keinem in die fresse der mir helfen will!!

                        Das ist schon ratsam, ja ;)

                        Ich plätte die datenbank und mach ne asp Eingabemaske die beschränk ich dann auf die Ip eines rechners sodass nur noch dieser rechner auf die maske zugreifen kann!!!

                        Im Inter- oder Intranet? - In beiden Fällen must du dir bewusst sein, dass die IP
                        keinesfalls eindeutig einem Computer zugewiesen werden kann! - Du solltest andere
                        Authentication-Möglichkeiten in Betracht ziehen.

                        Und dann mach ich ne neue Datenbank!!

                        Ratsam. Das habe ich in den letzten Postings vergessen zu sagen:
                        Du solltest darum bemüht sein, eine gute Basis zu erstellen. Die Datenbank ist die
                        grundlegende Datenstruktur, falls diese schon nicht "korrekt/gut" ist, kann es auch kein
                        Programm mehr sein, welches darauf zugreift.
                        Mit anderen Worten: Für eine Verwendung der DB mit ASP, solltest du ein Datenbankschema
                        im herkommlichen Sinne (also ohne solches Design-WYSIWYG-Zeug von Access) erstellen.
                        Da, wie du bereits bemerkt hast, dies zu Problemen führen kann, wenn die Access über
                        SQL angesprochen werden soll.

                        Viele Grüsse

                        Philipp

  2. Hi, hallo

    Hallo,
    hab folgendes Problem:
    Ich habe in einer Datenbank für die Mitarbeiternamen auswahlfelder genommen!
    Nun ich möchte aber diese felder über eien Aspseite abfragen, aber die aspseite zeigt mir immer nur "nichts" an!!

    Wie frage ich den auswahlfelder in der datenbank ab??

    du meinst, du hast Felder in deiner Tabelle als "Nachschlagefelder" (osä) per Wizard  definiert?
    so ähnlich hört sich das an. (von solchen Späßchen sollte man eigentlich die Finger lassen)

    dann müssen die Mitarbeiterdaten (Name etc) ja irgendwo in irgendeiner Tabelle stehen... und diese haben dann auch so eine schöne lange ID-Nummer

    schau mal in der Entwurfsansicht der Tabelle Umsätze_STA (oder wie die hieß) nach, was da bei der entsprechenden Spalte unter dem Kartenreiter "Nachschlagen" oder "lookup" steht... da bekommst du dann auch einen Hinweis auf die referenzierte Tabelle, wo die Mitarbeiterdaten stehen.

    Um die Umsätze und Werte zusammen anzuzeigen mußt du ein Query über diese beiden Tabellen erstellen.
    So wie Philipp das schön in einem seiner Postings vorgeschlagen hat.

    Tschau, tschüß,
    Frank