[Delphi/Interbase]Automatyczne wyszukiwanie i dodawa danych

0

Mam sobie małą baze i w niej pare tabel, wszystko ładnie połączyłem itd, stworzyłem sobie małą aplikacje
do dodawania danych do tabel i pojawił sie problem:
mam kilka Editów -i jak mam to wszystko poustawiać żeby po wpisaniu czegoś w np:w Edit1 i naciśnieciu Entera odwoływał sie do danej kolumny z mojej bazy i sprawdzał czy jest w danej kolumnie wpis taki jaki wpisałem w Edit1, jeśli jest to niech uzupełnią sie kolejne Edity automatycznie wedłud danego rekordu.
np.
mam edit1 z kodem poczt, i edit2 z miejscowościa, jezeli wpisze w edit1 np: 26-200 i wcisnę Enter to automatycznie w Edicie2 pojawi sie nazwa miejscowości(np.Ruda). Oczywiście tabela w bazie bedzie skłądała sie z dwóch kolumn-kod_poczt i miejscowość.
Oczywiscie jeśli nie znajdzie takiego kodu w bazie to użytkownik wpisze sobie i kod i miejscowość i wtedy doda do bazy.
Pozdrawiam :-)

0

w edit1 (kod) keydown

if Key = #13 then
begin
  with IBQuery, SQL do
  begin
    Clear;
    ADD('SELECT miejscowosc FROM miasta WHERE kod = :kod');
    ParamByName('kod').AsString := Edit1.Text;
    Open;
    if not EoF then
      Edit2.Text := FieldByName('miejscowosc').AsString;
  end;
end;

i tak samo dla edit2 (miejscowość)

0

Wielkie dzięki za zainteresowanie, tylko że jest mały błąd:
Podczas kompilacji pojawia sie błedzik:
w tej linijce kodu:
if Key=#13 then
o treści:
[Error] Unit2.pas(184): Incompatible types

Rozumiem ze #13 to enter, więc dlaczego nie zgadza sie typ?

Gdybyś mógł mi cos podpowiedzieć, byłbym bardzo wdzięczny.
Pozdrawiam :-)

0

Jeżeli chcesz użyć OnKeyDown to

if key=VK_RETURN then

a jeżeli OnKeyPress to

if key=#13

różnica polega na tym że w OnKeyDown klawisz zwracany jest jako Word a w OnKeyPress jako char.

0

DZIEKUJE!!! [browar]
Wszystko już hula, aż miło.

POZDRAWIAM :-)

0

W miarę jedzenia apetyt rośnie, więc pojawił się problem otóż:
Analogicznie do przykładu z kodem i miejscowścia mam teraz imie i nazwisko, i tu mam takie pytanie:
Jak oprogramować zdarzenie np onkeydown, lub podobne w ten sposób aby po wyświetleniu pierwszego rekordu(po wyszukaniu) np Kowalski Jan, wciskajać strzałke w dół lub góre przeszukiwać nazwisko Kowalski w bazie i w edicie2 wyswietlać imie przyporządkowane do danego Kowalskiego.
Próbowałem zrobić to tak ale nawet nie chce wyszukać kolejnego rekordu w tabeli;

If key=VK_DOWN then
table1.next;
end;
Z góry dziękuje za pomoc.
Pozdrawiam :-)

0

<font size="3">Nie pisz nowego postu tylko edytuj poprzedni.</span>

Jeśli chodzi o problem twój to:
Daj na formę komponent DBEdit i ustaw go na pole z Imie.
Będzie się wyświetlać w nim imię Kowalskiego z aktualnie zaznaczonego rekordu strzałką V lub /.

0

Redbak, trochę nie kumam naciskam "odpowiedz" i pisze swój problem, następnie naciskam "publikuj". Nie wiem co takego robie źle??? Ale chętnie się dowiem. Wiec jak możesz to napisz jak powinno sie zamieszczać odpowiedzi lub kolejne wątki dotyczace danego tematu.

Pozdrawiam :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1