Mam pytanie jak do komponentu DBComboBox wstawic gane z bazy danych MS Access, i jeszcze jak sortować pliki z bazy w DbGrid i wyszukiwać w DbGrid?
jeśli chodzi o DBComboBox to ustaw właściwość DataSource na odpowiedni komponent DataSource który umieściłeś na formularzu i ustaw właściwość DataField, na atrybut który ma być wyświetlany w DBComboBox (oczywiście muszą być dane w tabeli żeby się coś wyświetliło w kontrolce)
Jeśli chodzi o sortowanie to, po pierwsze - w DBGrid nie sortue się plików tylko dane. Po drugie sortowanie danych można zrobić oprogramowując zdarzenie onTitleClick komponentu DBGrid
przykładowy kod robiący sortowanie tabeli Ksiazki
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var zapytanie:string;
begin
// w zależności od nagłówka, który został kliknięty budowane jest
//odpowiednie zapytanie SQL
if Column.Title.Caption='ISBN' then
zapytanie:='SELECT * FROM Ksiazki ORDER BY ISBN';
if Column.Title.Caption='TYTUL' then
zapytanie:='SELECT * FROM Ksiazki ORDER BY Tytul';
if Column.Title.Caption='PODTYTUL' then
zapytanie:='SELECT * FROM Ksiazki ORDER BY Podtytul';
if Column.Title.Caption='LICZBA_STRON' then
zapytanie:='SELECT * FROM Ksiazki ORDER BY Liczba_Stron';
if Column.Title.Caption='ID_KATEGORII' then
zapytanie:='SELECT * FROM Ksiazki ORDER BY ID_Kategorii';
if Column.Title.Caption='RECENZJA' then
zapytanie:='SELECT * FROM Ksiazki ORDER BY Recenzja';
Query1.Close; //zamknięcie komponentu
Query1.SQL.Clear; // wyczyszczenie zawartości zapytania SQL
Query1.SQL.Add(zapytanie); // dodanie nowego zapytania
Query1.Open; //wykonanie zapytania
end;
Jeśli chodzi o wyszukiwanie w komponencie DBGrid to tak naprawdę wyszukuje się w komponencie zbioru danych czyli np. w Table, Query. Możesz to zrobić za pomocą metod FindKey, FindNearest lub Locate. Przyład tej ostatniej zamieszczam poniżej
procedure TForm1.Button1Click(Sender: TObject);
begin
//jeśli wpisano tytuł w kontrolce Edit1
if Edit1.text<>'' then
//spróbuj znaleźć książkę o podanym tytule
if Table1.Locate('Tytul',VarArrayOf([Edit1.Text]),[loPartialKey])=False
then
//jeśli nie znaleziono książki o podanym tytule to wyświetl komunikat
showmessage('Nie znaleziono książki zawierającej taki tytuł');
end;
ok dzieki za podpowiedz, ale mi nie chodzilo o baze sql tylko o Access (.mdb), a z tym wyswietlaniem DBComboBox to nie dziala, nic mi sie nie pokazuje, chyba ze ustawie DataField na nazwe tabeli wtedy wyswietla mi ale tylko 1 wpis z tabeli, a jeszcze jak mam wstawic sama tabele .db np. jak bym mial wszystko w pojedynczych tabelach to jak to wstawic?
a jeszcze jedno, jak poslugiwac sie table, query, i jak zrobic zeby po kliknieciu na poszczegolne dane w grid otwieralo sie nowe okno, sorry ze tak duzo pytan ale w koncu po to sa fora.
Pozdrawiam wszystkich i z gory dzieki!!
zxcvbnm1 napisał(a)
a jeszcze jedno, jak poslugiwac sie table, query, i jak zrobic zeby po kliknieciu na poszczegolne dane w grid otwieralo sie nowe okno, sorry ze tak duzo pytan ale w koncu po to sa fora.
Pozdrawiam wszystkich i z gory dzieki!!
Nie - od takich pytań są kursy i książki. Forum to nie kurs jak krok po kroku zrobić aplikację. Fora są od odpowiedzi na konkretne pytania i na tyle trudne, że nie znajdzie się na nie odpowiedzi w każdym kursie
Napisalem taka procedutke jak wyzej bylo w przykladzie "Nazwa to jak rozumiem nazwa pola w tabeli a nie aliasu w DBgrid"
procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1.text<>'' then
if ADOQuery1.Locate('Nazwa',VarArrayOf([Edit1.Text]),[loPartialKey])=False
then showmessage('Nie znaleziono Firmy zawierającej taka Nazwe');
end;
wszystko sie kompiluje ale po wpisaniu danych w edit1 wywala mi blad, a mialo pokazac wynik w dbgrid, jesli dobrze rozumiem
ADOQuery1 jest polacozne z BGgrid oczywiscie i przyklad z sortowaniem po kolumnach dzila
a reszta nie..
prosze o pomoc