Zweites Formular aufrufen mit Bedingung einer SQL Where Anweisung

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Heavy.

    Zweites Formular aufrufen mit Bedingung einer SQL Where Anweisung

    Hallo,

    ich hoffe ihr könnt mir weiterhelfen. Hab ein Programm geschrieben in VBA muss es jetzt aber in VB übertragen.

    Kurz das Programm beschrieben, ich hab eine Suchmaske mit Comboboxen und Checkboxen daraus forme ich ein WHERE Anweisung. In VBA gab es die möglichkeit mit

    DoCmd.OpenForm("Result", acNormal, , chk, acFormReadOnly, acWindowNormal)

    ein zweites Form aufzurufen und die Where Anweisung gleich mitzugeben. Jetzt arbeite ich aber in VB 2008 und hab mit VB davor noch nichts zu tun gehabt. Gibt es die möglichkeit entweder per Aufruf in der Art von OpenForm oder in der OnLoad Sub vom Ergebniss die Daten zu filtern. Ich arbeite auf einer .mdb.

    Ich hoffe ihr könnt mir weiterhelfen.



    Gruß

    Heavy
    Du kannst einfach auf andere Formulare zugreifen, z.B.:

    VB.NET-Quellcode

    1. frmHaupt.ComboBox1.Text


    Das setzt natürlich voraus, dass das Formular noch geöffnet ist. Ansonsten kannst du den Wert der ComboBox auch in ne Variable speichern.
    Hallo Danke für die schnelle Antwort, das problem ist aber das ich im Ergebniss ca. 40 Felder und Checkboxen hab. Wollte mir da die Arbeit dann halt sparen alles von Hand zu zuweisen. Ist ein Kundentabelle wo eben alle Infos über die Firma drin ist.

    Es gibt dann wohl keinen weg der dem in VBA entspricht.

    Heavy schrieb:

    ein zweites Form aufzurufen und die Where Anweisung gleich mitzugeben


    Du kannst auch hier im ersten Formular den kompletten Select oder auch nur die Where-Bedingungen in nem String abspeichern und den dann vom zweiten Formular aus aufrufen. Im ersten Formular einfach direkt unter:

    VB.NET-Quellcode

    1. Public Class frmHaupt
    als öffentliche Variable deklarieren

    VB.NET-Quellcode

    1. Public SQLSelect As String
    . Dann kannst du von anderen Formularen aus drauf zugreifen.

    Zweite Möglichkeit: In der My.Settings abspeichern, dann sparst du dir die Public-Deklaration.
    Das geht ja echt flott hier das ist echt super.

    Gut soweit hab ichs also das ich den select bzw. den Where teil in nen Public String geschrieben habe. Mein Problem ist dann nur wie ich den Aufruf im Onload vom zweiten Formular machen. Hab halt echt keine Erfahrung mit VB und bis jetzt die meisten Code Schnippsel aus Netz nur modifiziert.

    So sieht das gerade bei mir aus wenn das zweite Formular aufgerufen wird. Das klappt aber nicht so wirklich weil ich eben nur die möglichkeit kenne das Ergebniss der SQL in eine Variable bzw. in nen String zu schreiben.

    VB.NET-Quellcode

    1. Me.BodyBuilderTableAdapter.Fill(Me.Db1DataSet1.DB)Dim SQLComand As New OleDb.OleDbCommand("Select * from DB Where " + Search.Chk, Me.Connection)
    2. Me.Connection.Open()Dim RS As OleDb.OleDbDataReader = SQLComand.ExecuteReader


    Wie wäre denn der richtige Aufruf das der "Fokus" bzw. das Form2 nur den gefilterten Teil der Datenbank sieht.



    Gruß

    Heavy