![]() |
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Problem mit checkboxen
Hallo
Ich möchte über ein paar checkboxen eine Datenbank abfrage machen. Ich versuche es mal zu erklären. Die Tabelle sieht so aus: name datum text test 24.7.67 1,2,3,4 test2 12.7.98 1,2,3 test3 32.7.45 1 Nun habe ich verschiedene checkboxen. Anzahl ist egal. Beispiel checkbox: checkbox 1 wert: 1 checkbox 2 wert: 2 checkbox 3 wert: 3 checkbox 4 wert: 4 Nehmen wir jetzt mal an checkbox 1,2,3 wären angekreuzt. Dann drücken ich unten auf den Button suchen und werden die Datensätze in einem dbgrid ausgeben die den text 1,2,3 haben(das können durchaus mehrere sein). Nicht die anderen obwohl die auch die werte teilweise haben. Noch ein Beispiel: Alle Chekcboxen(1,2,3,4) sind ausgewählt. Dann müsste dieser Datensatz ausgegeben werden: test 24.7.67 1,2,3,4 Natürlich können auch dies wieder mehrere sein. Wie fange ich das am besten an? Ich hoffe ich konnte das Problem verständlich rüberbringen. |
Re: Problem mit checkboxen
Mir scheint, Deine DB ist nicht normalisiert. Selbst, wenn man nun ad hoc eine Lösung zu diesem konkreten Problem findet, wird es nicht lange dauern, bis das nächste Problem auftritt.
|
Re: Problem mit checkboxen
Hi,
wenn du kannst, dann ändere die Speicherung der CheckBox-Zustände von TEXT auf INTEGER und speichere die Zustände als Bit-Vektor. Wenn du über deine CheckBoxen iterierst, dann könntest du im Tag-Property der CheckBox die BitPosition angeben und so deinen Bit-Vektor in einer Variable vom Typ Cardinal (oder Word oder Byte) per SHL zusammenschieben. Grüße vom marabu |
Re: Problem mit checkboxen
Zitat:
Zitat:
|
Re: Problem mit checkboxen
Zitat:
![]() |
Re: Problem mit checkboxen
sorry da habe ich wohl etwas falsch erklärt. Das sollen eigentlich nur Wörter sein. Keine zahlen.
statt 1 hallo und so weiter war nur ein beispiel. |
Re: Problem mit checkboxen
Also in etwa so?
Zitat:
|
Re: Problem mit checkboxen
Ja genau so.
test 24.7.67 "Dies ist ein Text" dann hat checkbox 1 den wert "dies" u.s.w. Wenn man nur checkbox 1 ausgewählt hat dürfte nur der datensatz wenn vorhanden: test 24.7.67 "Dies" ich hoffe das ist jetzt klar. |
Re: Problem mit checkboxen
Hmm... obwohl ich Dein Konzept nicht verstanden habe, hier eine Möglichkeit:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Boxes: array[0..3] of TCheckbox; //Array definieren sText: string; i: integer; begin //Array belegen Boxes[0] := CheckBox1; Boxes[1] := CheckBox2; Boxes[2] := CheckBox3; Boxes[3] := CheckBox4; //String initialisieren sText := ''; //Anhand des Zustandes String zusammenbauen mit Leerzeichen als Trenner for i := Low(Boxes) to High(Boxes) do if Boxes[i].Checked then sText := sText + Boxes[i].Caption + #32; //letztes Leerzeichen löschen if Length(sText) > 0 then Delete(sText,Length(sText),1); //nur zum Testen, ggf. in SQL-Statement einfügen ShowMessage(sText); end; |
Re: Problem mit checkboxen
Ok danke das hilft mir schon mal sehr viel weiter. Nur wie bekomme ich das dann aus der Datenbank abgefragt? Und welche Checkbox muss ich dazu nehmen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz