Announcement

Collapse
No announcement yet.

Wie kann ich mit einem Formular auf eine Tabbelle auf einem SQL Server zugreifen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann ich mit einem Formular auf eine Tabbelle auf einem SQL Server zugreifen?

    Guten Morgen,

    ich soll mit Hilfe eines Formulares auf eine Tabelle eines SQL Server zugreifen.
    Ich benutze Access 2003 und den SQL Server 2008.

    Das Formular enthält zwei Textfelder für eine Eingabe und einen Button.
    Jetzt soll, wenn der Button geklickt wird, das Ergebnis erscheinen.
    Das was in den Textfelder steht soll in die Where-Bedingung.

    Code:
    SELECT * FROM [Tabellenname] WHERE "Tabellenspalte1" = [Wert aus Textfeld1] AND "Tabellenspalte2" = [Wert aus Textfeld2]
    Da ich aber mit VBA bis heute noch nichts am Hut hatte, bin ich mehr oder weniger total aufgeschmissen.

    Wäre sehr dankbar, wenn mir da jemand helfen könnte!

    MfG
    Zuletzt editiert von heartxcore; 11.08.2009, 11:32.

  • #2
    Vorschlag

    Hallo,

    Offenbar möchtest Du eine Datenmenge anzeigen und diese soll nach zwei Werten gefiltert werden.

    Access bietet hierfür bereits Standard-Mechanismen an.

    1. Man kann bspw. eine Tabelle über ODBC einbinden (verknüpfen).
    2. Diese Tabelle kann man danach als Grundlage für ein Formular benutzen. Der Formularassistent kann dabei helfen.
    3. Zum Filtern bietet Access verschiedenen Möglichkeiten, z.B.
    • Formular- und andere -Filter
    • Abfragen (anstelle der Tabelle im Formular zu verwenden), die auf der eingebundenen Tabelle basieren
    • Pass-Through-Abfragen, die auch per VBA neu erstellt werden können. Diese können auch Aufrufe gespeicherter Prozeduren vom SQL-Server enthalten
    • Angabe einer (selbst) angepaßten Datenherkunft, die eine ähnliche, wie die von Dir angegegebene Klausel enthalten kann.



    Beispiele für die Änderung der Datenherkunft per VBA
    • Me.RecordSource = "select * from Tabelle where [Feld] like '*Wert*'"
    • Me.RecordSource = "select * from Tabelle where [Feld1] like '*" & Me!Text1 & "*' and [Feld2] like '*" & Me!Text2 & "*'"


    Wenn man eine genaue Suche will, muß man like durch = ersetzen und die Sterne weglassen.

    Viele Grüße,
    tAgedObject
    Zuletzt editiert von tAgedObject; 11.08.2009, 14:33.
    darkness is a state of mind

    Comment


    • #3
      Also das scheint genau das zu sein was suche, aber wie bau ich das ein, dass das auf Knopfdruck ausgeführt wird? Muss ja dann bei den Eigenschaften des Buttons "Beim Klicken" auswälen und dann wähle ich [Ereignisprozedur]. Im Anschluss öffnet sich ja dann das neue Fenster mit dem Code. Das ganz muss also dann zwischen "Private Sub Suchen_Click()" und "End Sub".
      Das ist alles was ich weiß...

      Meine Frage ist jetzt, wie bau ich das ein?

      Comment


      • #4
        DazwischenMischen ;-)

        Hallo,

        Wenn Du im Formular eine Ereignisprozedur erzeugt hast,
        dann entsteht eine leere Prozedur im Formularmodul.

        Der Text muß zwischen "Private Sub Suchen_Click()" und "End Sub" geschrieben werden.
        Das Ausführen der Prozedur übernimmt Access automatisch, wenn Du auf den Knopf klickst.

        Beispiel :
        Private Sub Suchen_Click()
        Me.RecordSource = "select * from Tabelle where [Feld1] like '*" & Me!Text1 & "*' and [Feld2] like '*" & Me!Text2 & "*'"
        End Sub

        "Me" bezeichnet in diesem Fall einen Verweis auf das Formular, in welchem die Prozedur ist.

        Viele Grüße,
        tAgedObject
        darkness is a state of mind

        Comment


        • #5
          Scheint zu Funktoniern, es tut sich jedenfalls etwas, nur wie bekomm ich das Ergebniss angezeigt?

          Comment


          • #6
            Gebundene Felder

            Hallo,

            Damit ein Formular überhaupt Daten anzeigt,
            müssen (normalerweise) im Detailbereich Felder vorhanden sein,
            welche an Spalten gebunden sind.

            Um diese Bindung einzurichten,
            kann man im Entwurf des Formulares
            die Datenherkunft angeben
            (also z.B. die eingebundene Tabelle).

            Danach kann man per Drag&Drop aus der
            Feldliste Felder aus der Datenmenge in den
            Detailbereich des Formulares ziehen.

            Viele Grüße,
            tAgedObject
            darkness is a state of mind

            Comment


            • #7
              Hab jetz auch gebunden Felder im Detailbereich, aber beim Klicken auf den Button passiert weiterhin nichts. Es werden nur einfach alle Daten angezeigt die in der Tabelle stehen.. Muss ich da noch irgendwas verknüpfen?

              EDIT: Hab's nochmal versucht und nun is alles verschwunden!?

              Comment


              • #8
                Ereignisprozedur

                Hallo,

                Kannst Du evt. mal Deine Ereignisprozedur posten...?
                Vielleicht kommt dasnn Licht in's Dunkle ;-)

                Grüße,
                tAgedObject
                darkness is a state of mind

                Comment


                • #9
                  Hier die Prozedur

                  Code:
                  Private Sub Suchen_Click()
                  
                  Me.RecordSource = "SELECT * FROM tblSESecurePointDaten Where [Benutzername] = '*" & Me!Benutzername & "*'"AND [Zeitstempel] BETWEEN '*" & Me!DatumVon & "*'AND '*" & Me!DatumBis & "*'"
                  
                  End Sub
                  Ich will nochmal anmerken, dass das ich heute das erste mal mit VBA und Berührung kam.

                  Comment


                  • #10
                    Zu viele Sterne ;-)

                    Hallo,

                    Die Sterne benötigt man in Access nur, wenn man mit Like respektive Wie arbeitet.
                    Versuch's mal damit :

                    Private Sub Suchen_Click()
                    Me.RecordSource = "SELECT * FROM tblSESecurePointDaten Where [Benutzername] = '" & Me!Benutzername & "' AND [Zeitstempel] BETWEEN '" & Me!DatumVon & "' AND '" & Me!DatumBis & "'"

                    End Sub

                    (ich hoffe, ich habe alle Hochkommas richtig kopiert ;-)

                    Viele Grüße,
                    tAgedObject
                    darkness is a state of mind

                    Comment


                    • #11
                      Hat funktioniert!!! Ahh.. jetz hab ich es verstanden: Wildcard, das was beim SQL Server das Prozentzeichen ist, ist bei Access das Sternchen.. da hätte ich auch selbst drauf kommen können.

                      Vielen vielen danke für die Hilfe!! <3

                      Comment

                      Working...
                      X