Announcement

Collapse
No announcement yet.

DBGrid

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

  • DBGrid

    Hallo an alle,

    ich habe folgendes Problem und finde zur Zeit keinen Lösungsansatz,

    mit folgendem Aufruf übernehme ich eine Tabelle aus einer Listbox.

    procedure TfrmStart.ListBox1Click(Sender: TObject);
    begin
    if ADOTable1.Active = True then ADOTable1.Active := false;
    ADOTable1.TableName := '';
    ADOTable1.TableName := ListBox1.Items.Text;
    ListBox1.Clear;
    if ADOTable1.Active = False Then ADOTable1.Active := True;
    end;

    Nun habe ich das Problem das wenn ich auf den nächsten Listbox Eintrag klicke verändert sich das Grid nicht obwohl ich ja mit dem Aufruf Listbox1.Clear die Listbox zurücksetze und per Button aufruf wieder neu fülle.

    Bin für jede Anregung Dankbar

    Bis dennne Michael

  • #2
    Hallo an alle,

    ich habe alles noch einmal geprüft, so wie es aussieht nimmt er nur den ersten Eintrag aus der Listbox. Es stellt sich mir die Frage wie kann ich alles so umbauen das ich den korrekten Index Abfragen kann.

    Bin für jede Hilfe dankbar habe einen großen Knoten im Hir

    Comment


    • #3
      Hallo,

      versuchs mal damit:

      for i := 0 to (ListBox1.Items.Count - 1) do begin
      try
      if ListBox1.Selected[i] then
      begin
      ... listBox1.Items[i].text;....

      damit sollte es besser gehen.

      Grüße

      Juli

      Comment


      • #4
        Hallo,

        irgentwie bekomme ich jetzt einen ganzen Kollaps habe es bei mir eingebaut:

        procedure TfrmStart.ListBox1Click(Sender: TObject);
        var
        i: Integer;
        begin

        if ADOTableSachkonten.Active = True then ADOTableSachkonten.Active := false;
        ADOTableSachkonten.TableName := '';
        ADOTableSachkonten.TableName := ListBox1.Items.Text;
        for i := 0 to (ListBox1.Items.Count - 1) do begin
        try
        if ListBox1.Selected[i] then
        begin
        ADOTableSachkonten.TableName := listBox1.Items[i];
        if ADOTableSachkonten.Active = False then ADOTableSachkonten.Active := True;
        end;
        end;

        aber es funktioniert immer noch nicht.

        Wo mache ich den Fehler sorry bin noch frisch am lernen.

        Michae

        Comment


        • #5
          Hallo,

          ich würde es so machen, ich denke so ist es am einfachsten:

          procedure TfrmStart.ListBox1Click(Sender: TObject);
          begin

          if ADOTableSachkonten.Active = True then ADOTableSachkonten.Active := false;

          ADOTableSachkonten.TableName := ListBox1.Items[ListBox1.ItemIndex];

          if ADOTableSachkonten.Active = False then ADOTableSachkonten.Active := True;

          end

          Comment


          • #6
            Hallo

            besten Dank für deine Antwort, sie war ein voller erfolg. Jetzt habe ich nur noch ein Problem er füllt das Grid nicht mit den Tabellen die ich auswähle. Kennt jemand eine Möglichkeit dieses dynmisch zurealsieren.

            bis denne

            Michae

            Comment


            • #7
              Hallo!

              Erstmal weg mit den If's es werden hier eh Properties angesprochen...

              Dann Fehler eingrenzen.

              Entweder den Debugger bemühen oder:

              ADOTableSachkonten.Active := false;
              //Ist es die richtige Tabelle?
              showmessage ( ListBox1.Items[ListBox1.ItemIndex] );
              ADOTableSachkonten.Tablename := ListBox1.Items[ListBox1.ItemIndex];
              try
              ADOTableSachkonten.Active := true;
              except
              on e:exception do begin
              showmessage ( 'BANG!!!' +#13+ e.message );
              end;
              end;

              und was passiert?

              BYE BERN

              Comment


              • #8
                Hallo

                jetzt bekomme ich Listenindex überschreitet das Maximum (-1)

                und ADOTbaleSachkonten: Eigenschaften TableName fehlt auch kommt die Meldung ungültige Variant-Typenumwandlung.

                Irgentwie stehe ich da auf dem Schlauch.

                Vielen Dank für eure Hilfe

                bis denne Michae

                Comment


                • #9
                  Hallo!

                  Bitte etwas genauer WANN kommen die Fehlermeldungen. Vielleicht ist jetzt auch ein guter Zeitpunkt sich mit dem Debugger zu beschäftigen. Breakpoints setzen und mal die beteiligten Variablen anzeigen lassen...

                  Wahrscheinlich ist:
                  Der Itemindex scheint nicht gesetzt zu sein.
                  Bevor Du irgendetwas machst solltest Du überprüfen, ob ListBox1.ItemIndex = -1 ist dann ist nichts ausgewählt UND ob ListBox1.Items.count = 0 ist, dann sind keine Elemente in der Listbox.

                  BYE BERN

                  Comment


                  • #10
                    Hallo Bernd,

                    ich habe es so gemacht wie du gesagt hast, jetzt taucht das Problem nur
                    noch auf wenn ich Syntax prüfen auswähle in dem erstellten Programm
                    läuft alles sauber durch.

                    Vielen Dank für deine (eure) Hilfe

                    Michae

                    Comment

                    Working...
                    X