Announcement

Collapse
No announcement yet.

DBLookupComboBox1->ListFieldIndex

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

  • DBLookupComboBox1->ListFieldIndex

    Wie bekomme ich es hin, daß bei einer Zuweisung

    DBLookupComboBox1->ListFieldIndex=0;

    der entsprechende Eintrag angezeigt wird ? Bei mir bleibt das Feld immer leer, ich kann nur manuell Einträge auswählen ! Oder ist ListFieldIndex nicht dafür zuständig ?

    Danke - Günther
    Günther

  • #2
    setzte das feld der datenbank auf den ersten datenfeld in der combobox
    wenn du einen neuen datensatz erstellst

    table2->First(); // zum ersten Datensatz springen von der comboliste

    table1->Append();
    table1->FieldByName("LFNR_Table2")->AsInteger = table2->FieldByName("LFNR")->AsInteger;
    table1.Post();

    und siehe da das dbcombo zeigt den ersten datensatz a

    Comment


    • #3
      <html>

      <head>
      <meta http-equiv="Content-Type"
      content="text/html; charset=iso-8859-1">
      <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
      <title>DBLookupCombobox</title>
      </head>

      <body bgcolor="#FFFFFF">

      <p>Hallo, Danke für die späte Hilfe, aber irgendwie verstehe
      ich das nicht. Ich möchte keinen neuen Datensatz erstellen, um
      den Eintrag der Combobox anzuzeigen...</p>

      <p>Ich habe eine Tabelle mit dem Primärindex &quot;Nummer&quot;.
      Dann kommt ein Feld &quot;Name&quot;. Ich achte selbst darauf,
      daß jeder Name nur einmal vorkommt. Die Tabelle enthält nur 24
      Datensätze, da bleibt das noch überschaubar. Das Feld
      &quot;Nummer&quot; enthält die Einträge 0 bis 23. In einem
      Formular plaziere ich ein DBGrid und eine DBLookupCombobox.
      ListSource und DBGrid verbinde ich mit meiner Tabelle, ListField
      und KeyField verbinde ich mit &quot;Name&quot;, DataSource und
      DataField bleiben bei der Combobox unausgefüllt. Wenn ich mein
      Programm starte, zeigt das DBGrid den ersten Datensatz der
      Tabelle an, das sichtbare Feld der Combobox bleibt leer. Wenn ich
      die Combobox aufklappe, sehe ich dort alle Einträge meiner
      Tabelle. Wenn ich einen Eintrag auswähle, springt das DBGrid auf
      diesen Datensatz. Wenn ich im DBGrid auf einen anderen Datensatz
      gehe, bleibt die Combobox unverändert. Ich möchte aber
      erreichen, daß die ComboBox den jeweils aktuellen Namen anzeigt.
      Deshalb schreibe ich in die Ereignis-Methode zu OnDataChange der
      Tabelle: <font color="#0000FF">&lt;b&gt;
      DBLookupComboBox1-&gt;ListFieldIndex=Table-&gt;FieldByName(&quot;Nummer&quot-&gt;AsInteger;
      &lt;/b&gt; </font>Aber genau das funktioniert nicht. Der
      Hintergrund, warum ich das so machen möchte: Ich hab noch eine
      andere - größere - Tabelle, die ein Feld für die laufende
      Nummer des Namens hat. Ich möchte im Programm aber nicht diese
      Nummer, und auch nicht das DBGrid mit allen Namen sehen, weil
      dort der aktuelle Name nur schwer zu erkennen ist. Wenn ich ein
      DBText (oder DBEdit) verwende, sehe ich zwar den aktuellen Namen,
      kann ihn aber nicht verändern. Für solche Fälle ist eine
      ComboBox die ideale Komponente.</p>

      <p>Gruß - Günther</p>
      </body>
      </html&gt
      Günther

      Comment


      • #4
        DataSource und DataField bleiben beim DBLookupCombobox unausgefüllt !!<BR>
        warum nimmst es es dann, benutz halt nur ein normales Combobox<BR>
        und ändere nur den ListIndex der ComboBox.<br>
        Der Sinn einer DBLookupCombobox ist nun mal eine Table/Query mit einen anderen Table/Query zu verbinden!

        Comment


        • #5
          Hallo, Der Sinn der RAD-Programmierung ist doch, daß man dasselbe nicht noch einmal neu erfinden muß. Wenn ich eine normale Combobox nehme, muß ich mich um deren Inhalt selber kümmern, bei der DBLookupComboBox macht das die VCL für mich. Übrigens sind DataField und DataSource in meiner Combobox leer, ich habs doch genau beschrieben ! Gruß - Günthe
          Günther

          Comment


          • #6
            Wenn du meinst das die ein Raid Programmierumgebung das Programmieren im Bausteinesystem macht, ohne selbst noch handanzulegen kauf dir dann lieber ein Autorensystem oder Lego<BR>

            Hier ein Beispiel damit du die ComboBox selbst füllen kannst!<BR><BR>
            Table1->First();<BR>
            while (Table1->Eof())<BR>
            {<BR>
            ComboBox1->Items->Add(Table1->FieldByName("Name")->AsString);<BR>
            Table->Next();<BR>
            }<BR&gt

            Comment


            • #7
              Danke für das Beispiel, sicherlich für einige Mitleser interessant. Übrigens programmiere ich 95% mit Borland C++ und Windows API und nur 5% mit dem Builder, ich brauch also kein Lego. Gruß - Günthe
              Günther

              Comment


              • #8
                Du sollst den dicksten haben !,<BR>
                <BR>
                Nur eine Frage nebenbei, wieso benutzt du das Forum wenn du schlaubi wiso das ganze C++, SDK und API's kannst, und nicht auf Hilfe angewiessen bist ?<BR>
                <BR>
                Wenn du alles weißt ich hab dein ein problem, bitte schreib mir mal auf wie ich eine Datei über ein Stream in ein Datenbank Blob Feld schreibe ?<BR>
                <BR> Für eine Lösung währe ich dir sehr dankbar!<BR><BR>
                MfG<BR>
                Schol

                Comment


                • #9
                  Ob ich den Dicksten habe sei mal dahingestellt, das hat jedenfalls hier im Forum nichts verloren.

                  Du scheinst ja neu zu sein hier im Forum. Jedenfalls ist mir Dein Name zuvor nie aufgefallen. Es wäre eine gute Idee, wenn Du Dir die Zeit nimmst, die bisherigen Diskussionen einmal durchzulesen. Dann wirst Du feststellen, daß ich nicht alles weiß, sondern viele Fragen habe. Von diesen Fragen ist übrigens ein großer Teil immer noch unbeantwortet. Trotzdem benutze ich das Forum, weil ich immer wieder auf Hilfe hoffe. Ich habe nie behauptet daß ich das ganze C++ SDK und API beherrsche. Ich benutze das Forum auch um anderen zu helfen, sofern ich es kann. Ich benutze das Forum NICHT, um Streit mit anderen Leuten zu suchen oder diese zu provozieren. Du solltest Dir die Frage zu dieser Diskussion noch einmal genau ansehen: Ich habe gefragt, wie man den ListFieldIndex der DBLookupComboBox setzen kann und NICHT, wie ich eine normale ComboBox mit Daten füllen kann oder wie man eine Tabelle durchscannt. Deine erste Antwort ging am Thema vorbei und steht im Widerspruch zu Deinen späteren Antworten. Wenn das bei der DBComboBox nicht geht, kannst Du das ja auch sofort sagen.

                  Zu Deinem Problem: Wenn jemand eine neue Frage hat, sollte er damit eine neue Diskussion eröffnen, und die Frage nicht an eine bestehende Diskussion anhängen. Wie gesagt, ich weiß nicht alles und habe auch noch nie Blob-Felder benutzt. Aber ich würde es mal mit den Methoden ReadFromBlob und WriteToBlob oder DbiGetBlob und DbiPutBlob versuchen.

                  Nix für ungut - Günthe
                  Günther

                  Comment


                  • #10
                    Stimmt ich bin neu in diesem Forum, weil ich normalerweise mich in den Newsgroups von borland.public.cppbuilder aufhalte (aber dies sollte nicht von belang sein !)<BR>
                    <BR>
                    Ich wollte dich nur darüber informieren (in den Antworten) das es nicht geht den ListIndex eines DBLookupComboBox anzeigen zu lassen ohne es vorher mit einen Datenbankfeld zu verknüpfen. Der Sinn dieser DBLookupComboBox ist zwei Table/Query miteinander zu verbinden (Relationale Datenbank)<BR>
                    Deshalb habe ich die Lösung mit der ComboBox gebracht, bzw. als erstes das mit dem Datenbankfeld selbst zu beschreiben (in diesen Moment wusste ich nicht das du die Felder DataSource und DataField nicht ausgefüllt hast bzw. nicht benutzt, deshalb habe ich auch Ausrufezeichen in meiner Antwort "DataSource und DataField bleiben beim DBLookupCombobox unausgefüllt !!") geschrieben, und da kam nur noch die ComboBox in Frage (und da wollte ich dich bestimmt nicht nerven sondern helfen).<BR>
                    <BR>
                    PS:<BR>
                    habe die Frage mit dem Blob schon vorher geposted gehabt, nur auf Antworten kann man in diesen Foren lange darauf warten (borland.public.cppbuilder ist besser), deshalb habe ich dich direkt angesprochen, da ich gedacht habe, du kannst mit helfen, da du schon mit Datenbanken zu tun hattest (denn ich bin auch kein schlaubi).<BR><BR>
                    ich sag jetzt auch, nix für ungut<BR>
                    Marku

                    Comment


                    • #11
                      Na bitte, es geht doch ! Zwischen den Zeilen Deiner letzten Antwort habe ich die Lösung herausgelesen:

                      In meiner DBLookupComboBox verbinde ich nun ListSource mit meiner kleinen Auswahltabelle, ListField mit "Name" und KeyField mit "Nummer". DataSource ist nun mit der Haupttabelle verbunden, und DataField wieder mit "Nummer". Und siehe da, ohne eine einzige Zeile Programmcode macht die DBLookupComboBox genau das, was ich von ihr erwartet habe.

                      Meine Fragestellung "DBLookupComboBox1->ListFieldIndex" war also falsch.

                      Gruß - Günthe
                      Günther

                      Comment

                      Working...
                      X